WebAV-Tech/WebAV

★ 2,088⑂ 0

A web-based Video Editing SDK built on WebCodecs. 基于 WebCodecs 构建的网页视频编辑 SDK。

About WebAV-Tech/WebAV

WebAV-Tech/WebAV is an open-source project on GitHub, mainly written in TypeScript. A web-based Video Editing SDK built on WebCodecs. 基于 WebCodecs 构建的网页视频编辑 SDK。 It currently holds 2,088 stars and 0 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).

Project Overview

AI Homed tracks it on the AI Video Projects board and on the AI AI Video Projects list.

GitHub Repository Details

Repository WebAV-Tech/WebAV · default branch - · size 0 KB · watchers 0 · source: GitHub REST API and repository README

README

WebAV

GitHub commit activity NPM downloads Release

English | 中文

WebAV is an SDK for creating/editing video files on the web platform, built on WebCodecs.

_Visit WebAV Pro for more advanced features. You can purchase Pro licenses or request custom outsourcing if needed, which also helps support the ongoing maintenance of this project._

Features

_Compatible with Chrome 102+_

Use Cases

DEMO

The WebAV project offers a variety of quick DEMO experiences. Visit the DEMO Homepage to check the compatibility of your current device, or click here to experience Pro advanced features online.

_Tip: The test video resources are hosted on GitHub Pages. Starting a DEMO may require some network loading time._

Here are some feature demos you might be interested in:

Packages Introduction

av-cliper

av-cliper is the foundational SDK for audio and video data processing. It provides basic classes and functions to help developers quickly achieve their target functionalities.

Here is a brief introduction to the core API of av-cliper:

Code Demo: Add a Moving Semi-transparent Watermark to a Video

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( 'Watermark', 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 relies on the basic capabilities of av-cliper and provides a canvas that responds to user operations on Sprites (dragging, scaling, rotating), enabling quick implementation of products like video editing and live streaming workstations.

Code Demo: Add Video and Text to the Canvas
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);

// Export user-edited materials into a video // (await avCvs.createCombinator()).output()

// Capture stream from the canvas (MediaStream) for live streaming or video recording // avCvs.captureStream()

av-recorder

av-recorder records MediaStream and outputs the video file stream in MP4 format.

Code Demo: Record Camera and Microphone, Output MP4 File Stream
import { AVRecorder } from '@webav/av-recorder';
const mediaStream = await navigator.mediaDevices.getUserMedia({
  video: true,
  audio: true,
});

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

Contributing

Running the Project

1. Clone the current project locally 2. Execute pnpm install && pnpm build in the root directory 3. Change directory to the specific package (e.g., av-cliper) and run pnpm dev 4. The path is the filename in the DEMO directory, such as concat-media.html 5. Open the DEMO URL in the browser, such as http://localhost:6066/concat-media.html 6. Run unit tests for the package with pnpm test

Running the WebAV Site

1. Clone the current project locally 2. Execute pnpm install && pnpm build in the root directory 3. Change directory to doc-site and run pnpm dev 4. Follow the terminal prompts to visit the specified URL

If you are a beginner in the field of web audio and video, you can start by learning the basics:

Articles by the Author Web Audio and Video Knowledge Graph

Sponsor Author

If this project has been helpful to you, please sponsor the author to a milk tea :)

Paypal.me

Sponsors

We would like to thank our GitHub sponsors who support the development of WebAV:

https://github.com/WebAV-Tech/WebAV/blob/HEAD/425776024 https://github.com/WebAV-Tech/WebAV/blob/HEAD/CheckCoder https://github.com/WebAV-Tech/WebAV/blob/HEAD/chunpu https://github.com/WebAV-Tech/WebAV/blob/HEAD/jundaychan

Your support helps us continue to improve and maintain this project!

GitHub Stars & Activity

2,088Stars
0Forks
0Open issues
TypeScriptLanguage

GitHub Popularity

GitHub stars2,088
Forks0
Open issues0
Primary languageTypeScript
License-
Stars gained today0
Created-
Last pushed-

Trending History

Trending statusnot on today's boards

Related AI Projects

1

HBAI-Ltd / Toonflow-app

TypeScript★ 15,649⑂ 0
2

waooAI / waoowaoo

TypeScript★ 14,099⑂ 0
3

Vincentwei1021 / video-shotcraft

TypeScript★ 8,712⑂ 0
4

promptslab / Awesome-Prompt-Engineering

TypeScript★ 6,333⑂ 0
5

hypit-ai / hypit

TypeScript★ 4,347⑂ 0
6

tmoroney / auto-subs

TypeScript★ 4,218⑂ 0
7

getopenscreen / openscreen

TypeScript★ 2,953⑂ 0
8

trykimu / videoeditor

TypeScript★ 2,217⑂ 0

More AI Rankings