Volver al ranking

etro-js/etro

TypeScriptetrojs.dev

Typescript video-editing library for the browser

video-editingjavascriptvideoaudioblobvideo-manipulationbrowsertypescriptetrohacktoberfestvideo-processingjavascript-library
Crecimiento de estrellas
Estrellas
1.1k
Forks
94
Crecimiento semanal
Issues
68
5001k
sept 2019dic 2021abr 2024jul 2026
Artefactosnpmnpm 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.

Repositorios 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