Voltar ao ranking

etro-js/etro

TypeScriptetrojs.dev

Typescript video-editing library for the browser

video-editingjavascriptvideoaudioblobvideo-manipulationbrowsertypescriptetrohacktoberfestvideo-processingjavascript-library
Crescimento de estrelas
Estrelas
1.1k
Forks
94
Crescimento semanal
Issues
68
5001k
set. de 2019dez. de 2021abr. de 2024jul. de 2026
Artefatosnpmnpm install etro
README

Etro

Build Status Discord

Etro is a framework-agnostic TypeScript library for programmatically editing videos. It lets you composite layers and add filters. Etro includes text, video, audio and image layers, along with a variety of GLSL filters. You can also define your own layers and filters with TypeScript and GLSL.

Features

  • Composite video and audio layers
  • Use built-in hardware accelerated effects
  • Write your own effects in JavaScript and GLSL
  • Manipulate audio with the web audio API (audio effects coming soon)
  • Define layer and effect parameters as keyframes or custom functions
  • Render to a blob in realtime (offline rendering coming soon)
  • Serialize session to JSON and deserialize it back
  • UI framework agnostic

Installation

npm i etro

Basic Usage

Let's look at an example:

import etro from 'etro'

var movie = new etro.Movie({ canvas: outputCanvas })
var layer = new etro.layer.Video({ startTime: 0, source: videoElement })  // the layer starts at 0s
movie.addLayer(layer)

movie.record({ frameRate: 24 })  // or just `play` if you don't need to save it
    .then(blob => ...)

The blob could then be downloaded as a video file or displayed using a <video> element.

See the documentation for a list of all built-in layers.

Effects

Effects can transform the output of a layer or movie:

var layer = new etro.layer.Video({ startTime: 0, source: videoElement })
    .addEffect(new etro.effect.Brightness({ brightness: +100) }))

See the documentation for a list of all built-in effects.

Dynamic Properties

Most properties also support keyframes and functions:

// Keyframes
layer.effects[0].brightness = new etro.KeyFrame(
  [0, -75],  // brightness == -75 at 0 seconds
  [2, +75]  // +75 at 2 seconds
)

// Function
layer.effects[0].brightness = () => 100 * Math.random() - 50

See the documentation for more info.

Using in Node

To use Etro in Node, see the wrapper:

Running the Examples

Start the development server (used for convenience during development; Etro does not require a server):

npm i
npm run build
npm start

Now you can open any example (such as http://127.0.0.1:8080/examples/introduction/hello-world1.html).

Further Reading

Contributing

See the contributing guide

License

Distributed under GNU General Public License v3. See LICENSE for more information.

Repositórios relacionados
KlingAIResearch/LivePortrait

Bring portraits to life!

PythonPyPIOtherimage-animationvideo-editing
liveportrait.github.io
18.8k2k
Zulko/moviepy

Video editing with Python

PythonPyPIMIT Licensepythonvideo
zulko.github.io/moviepy/
14.8k2.1k
KwaiVGI/LivePortrait

Bring portraits to life!

PythonPyPIOtherimage-animationvideo-editing
liveportrait.github.io
14.3k1.5k
debpalash/OmniVoice-Studio

Local voice clone, video dubbing, dictation and audiobook maker. The open-source ElevenLabs alternative.

PythonPyPIGNU Affero General Public License v3.0ttsvoice-cloning
palash.dev/omnivoice
8.8k1.4k
nadermx/backgroundremover

Background Remover lets you Remove Background from images and video using AI with a simple command line interface that is free and open source.

PythonPyPIMIT Licensebackground-removerbackgroundremover
backgroundremoverai.com
8k647
RayVentura/ShortGPT

🚀🎬 ShortGPT - Experimental AI framework for youtube shorts / tiktok channel automation

PythonPyPIMIT Licenseaiartificial-intelligence
short-gpt-dcs.vercel.app
7.7k1.1k
OpenTalker/video-retalking

[SIGGRAPH Asia 2022] VideoReTalking: Audio-based Lip Synchronization for Talking Head Video Editing In the Wild

PythonPyPIApache License 2.0lip-synchronizationtalking-head-videos
opentalker.github.io/video-retalking/
7.3k1.1k
zhouxiaoka/autoclip

AutoClip : AI-powered video clipping and highlight generation · 一款智能高光提取与剪辑的二创工具

PythonPyPIMIT Licenseaiai-agents
zhouxiaoka.github.io/autoclip_intro/
6.2k1.2k
OpenShot/openshot-qt

OpenShot Video Editor is an award-winning free and open-source video editor for Linux, Mac, and Windows, and is dedicated to delivering high quality video editing and animation solutions to the world.

PythonPyPIOthervideo-editingvideo-production
openshot.org
6.1k738
modelscope/FunClip

FunASR-powered video transcription, subtitle generation, and LLM-assisted clipping tool with a local Gradio UI.

PythonPyPIMIT Licensespeech-recognitionvideo-subtitles
funasr.com
6k720
showlab/Awesome-Video-Diffusion

A curated list of recent diffusion models for video generation, editing, and various other applications.

awesomediffusion-models
5.7k368
WyattBlue/auto-editor

Effort free video editing!

NimThe Unlicensevideovideo-processing
auto-editor.com
4.6k575