Project Icon

WebAV

基于WebCodecs的Web视频处理SDK

WebAV是基于WebCodecs技术的Web视频处理SDK,支持跨平台运行且无需服务器。该SDK具有高性能、小体积、易扩展等特点,保护用户隐私。WebAV适用于视频编辑、直播、批量音视频处理等场景,为开发者提供丰富的功能和灵活的扩展性。

WebAV

GitHub提交活动 NPM下载量 发布

English | 中文

WebAV是一个基于WebCodecs构建的用于在Web平台上创建/编辑视频文件的SDK。

特性

  • 跨平台:支持在Edge和Chrome浏览器以及Electron中运行。
  • 零成本:充分利用客户端计算能力,无需服务器成本。
  • 隐私安全:无需上传用户数据。
  • 高性能:比ffmpeg.wasm快10到20倍。
  • 易于扩展:对Web开发者友好,可轻松与Canvas和WebAudio集成以实现自定义功能。
  • 体积小:约50KB(压缩并GZIP后,不包括树摇)。

兼容Chrome 102+

应用场景

  • 批量处理音视频文件,如添加水印、配音和嵌入字幕
  • 构建音视频相关产品,如视频编辑、直播和视频动画制作

演示

WebAV项目提供了多种快速演示体验。访问演示主页以检查您当前设备的兼容性。

注意:测试视频资源托管在GitHub页面上,因此启动演示可能需要一些网络加载时间。

以下是一些您可能感兴趣的功能演示:

包介绍

av-cliper

av-cliper是音视频数据处理的基础SDK。它提供了基本的类和函数,帮助开发者快速实现目标功能。

以下是av-cliper核心API的简要介绍:

  • IClip抽象了音视频素材,解析音视频、图像和字幕资源,并为其他模块提供数据。
  • Sprite<IClip>为素材附加空间和时间属性,允许控制素材中视频的空间位置和时间偏移,实现多素材协作、动画等功能。
  • Combinator可以添加多个Sprite,并根据它们的位置、图层和时间偏移合成输出为视频文件。
代码示例:为视频添加移动的半透明水印
import {
  ImgClip,
  MP4Clip,
  OffscreenSprite,
  renderTxt2ImgBitmap,
  Combinator,
} from '@webav/av-cliper';

const spr1 = new OffscreenSprite(
  new MP4Clip((await fetch('./video/bunny.mp4')).body),
);
const spr2 = new OffscreenSprite(
  new ImgClip(
    await renderTxt2ImgBitmap(
      '水印',
      `font-size:40px; color: white; text-shadow: 2px 2px 6px red;`,
    ),
  ),
);
spr2.time = { offset: 0, duration: 5e6 };
spr2.setAnimation(
  {
    '0%': { x: 0, y: 0 },
    '25%': { x: 1200, y: 680 },
    '50%': { x: 1200, y: 0 },
    '75%': { x: 0, y: 680 },
    '100%': { x: 0, y: 0 },
  },
  { duration: 4e6, iterCount: 1 },
);
spr2.zIndex = 10;
spr2.opacity = 0.5;

const com = new Combinator({
  width: 1280,
  height: 720,
});

await com.addSprite(spr1);
await com.addSprite(spr2);

com.output(); // => ReadableStream

av-canvas

av-canvas依赖于av-cliper的基本能力,提供了一个响应用户对Sprite操作(拖拽、缩放、旋转)的画布,可以快速实现视频编辑、直播工作台等产品。

代码示例:向画布添加视频和文字
import {
  ImgClip,
  MP4Clip,
  VisibleSprite,
  renderTxt2ImgBitmap,
} from '@webav/av-cliper';
import { AVCanvas } from '@webav/av-canvas';
const avCvs = new AVCanvas(document.querySelector('#app'), {
  width: 1280,
  height: 720,
});

const spr1 = new VisibleSprite(
  new MP4Clip((await fetch('./video/bunny.mp4')).body),
);
const spr2 = new VisibleSprite(
  new ImgClip(
    await renderTxt2ImgBitmap(
      'Watermark',
      `font-size:40px; color: white; text-shadow: 2px 2px 6px red;`,
    ),
  ),
);

await avCvs.add(spr1);
await avCvs.add(spr2);

// 导出用户编辑的素材为视频
// (await avCvs.createCombinator()).output()

// 从画布捕获流(MediaStream)用于直播或录制视频
// avCvs.captureStream()

av-recorder

av-recorder 用于录制 MediaStream,输出 MP4 格式的视频文件流。

代码示例:录制摄像头和麦克风,输出 MP4 文件流
import { AVRecorder } from '@webav/av-recorder';
const mediaStream = await navigator.mediaDevices.getUserMedia({
  video: true,
  audio: true,
});

const recorder = new AVRecorder(mediaStream);
recorder.start(); // => ReadableStream

贡献

运行项目

  1. 克隆当前项目到本地
  2. 在根目录执行 pnpm install && pnpm build
  3. 进入具体的包目录(如 av-cliper),运行 pnpm dev
  4. 路径为 DEMO 目录下的文件名,如 concat-media.html
  5. 在浏览器中打开 DEMO URL,如 http://localhost:6066/concat-media.html
  6. 运行包的单元测试 pnpm test

运行 WebAV 站点

  1. 克隆当前项目到本地
  2. 在根目录执行 pnpm install && pnpm build
  3. 进入 doc-site 目录,运行 pnpm dev
  4. 按照终端提示访问指定 URL

如果你是音视频领域的新手,可以从基础知识开始学习:

作者的文章
音视频知识图谱

赞助作者

如果这个项目对你有帮助,请给作者赞助一杯奶茶 :)

Paypal.me

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号