All Projects → clabe45 → Vidar

clabe45 / Vidar

Licence: gpl-3.0
An extendable video-editing framework for the browser and Node

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Vidar

Optivideoeditor For Android
Native Video editor : Video trim, Audio, Video merge, Slow and fast motion, Text and image, etc...
Stars: ✭ 209 (+58.33%)
Mutual labels:  video-editing, video-editor
Webmgenerator
UI and Automation to cut, filter and join high quality webms, mp4s or gifs.
Stars: ✭ 103 (-21.97%)
Mutual labels:  video-editing, video-editor
Rdvideoeditsdk For Android
Android Video Editing SDK; Android Video Edit SDK: Video Cut, Video Join, Video Watermark, Video Subtitle, Video Rotate...
Stars: ✭ 343 (+159.85%)
Mutual labels:  video-editing, video-editor
Rdvideoeditsdk For Ios
iOS Video Edit SDK; iOS Video Edit SDK: Video Cut, Video Join, Video Watermark, Video Subtitle, Video Rotate...
Stars: ✭ 182 (+37.88%)
Mutual labels:  video-editing, video-editor
cinelerra-cve
NLE Video editor
Stars: ✭ 17 (-87.12%)
Mutual labels:  video-editing, video-editor
py-msa-kdenlive
Python script to load a Kdenlive (OSS NLE video editor) project file, and conform the edit on video or numpy arrays.
Stars: ✭ 25 (-81.06%)
Mutual labels:  video-editing, video-editor
Mp4composer Android
This library generate an Mp4 movie using Android MediaCodec API and apply filter, scale, trim, transcode, crop, timeScale, mute and rotate Mp4.
Stars: ✭ 674 (+410.61%)
Mutual labels:  video-editing, video-editor
Squareup
A sleek and modern startpage
Stars: ✭ 75 (-43.18%)
Mutual labels:  vanilla-javascript
Just Validate
Lightweight (~4,5kb gzip) form validation in Javascript Vanilla, without dependencies, with customizable rules (including remote validation), customizable messages and customizable submit form with ajax helper.
Stars: ✭ 74 (-43.94%)
Mutual labels:  vanilla-javascript
Webcomponents From Zero To Hero
An introduction to writing raw web components.
Stars: ✭ 70 (-46.97%)
Mutual labels:  vanilla-javascript
Ui Challenges
UI challenges by Semicolon, we accept challenges on twitter on #SemicolonChallenge
Stars: ✭ 69 (-47.73%)
Mutual labels:  vanilla-javascript
Halkabox.js
A simple and basic Javascript lightbox.
Stars: ✭ 75 (-43.18%)
Mutual labels:  vanilla-javascript
Router.js
Router.js is a simple and powerful javascript library to handle routing
Stars: ✭ 107 (-18.94%)
Mutual labels:  vanilla-javascript
Vanillajs Deck
A Vanilla.js Single Page App (SPA) slide deck for a presentation about Vanilla.js written with no frameworks.
Stars: ✭ 119 (-9.85%)
Mutual labels:  vanilla-javascript
The Glorious Startpage
a glorified startpage
Stars: ✭ 127 (-3.79%)
Mutual labels:  vanilla-javascript
Ksymediaeditorkit ios
金山云短视频编辑SDK iOS版本. Video editor SDK powered by KSYUN, which makes it easy to capture, create, view and share your clips and playback anywhere.
Stars: ✭ 116 (-12.12%)
Mutual labels:  video-editor
Datatable
Javascript Plugin for data tables creation
Stars: ✭ 97 (-26.52%)
Mutual labels:  vanilla-javascript
Bin
A tiny (<1kb) localStorage and sessionStorage helper library.
Stars: ✭ 70 (-46.97%)
Mutual labels:  vanilla-javascript
Vanilla Semantic Ui
Semantic UI component framework without jQuery
Stars: ✭ 97 (-26.52%)
Mutual labels:  vanilla-javascript
Rallax.js
Dead simple parallax scrolling.
Stars: ✭ 1,441 (+991.67%)
Mutual labels:  vanilla-javascript

Vidar

Build Status

Vidar is a JavaScript framework for programmatically editing videos. Similar to GUI-based video-editing software, it lets you layer media and other content on a timeline. Audio, image, video and other tracks are supported, along with powerful video effectts for existing tracks. Being very flexible and extendable, you can choose to only use the core components or define your own.

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
  • Define layer and effect properties as keyframes and functions
  • Export to a blob or file

Installation

npm i vidar

Usage

You can use CommonJS syntax:

import vd from 'vidar'

Or include it as a global vd:

<script src="node_modules/vidar/dist/vidar-iife.js"></script>

Let's look at an example:

var movie = new vd.Movie({ canvas: outputCanvas })
var layer = new vd.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 => ...)

This renders videoElement to a blob at 24 fps. This blob can then be downloaded as a video file.

Effects can transform the output of a layer or movie:

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

Using in Node

To use Vidar in Node, use the wrapper:

npm i vidar-node
var vidarNode = require('vidar-node')

vidarNode(() => {
  // You can access inputs as html elements and pass them to Vidar as usual.
  var image = document.getElementById('input1') // <img> element

  // Use vidar normally ...

  movie
    .exportRaw()
    .then(window.done)
// Tell Vidar Node what inputs to load with { id: path }
}, { input1: 'image.png' }, 'output.mp4')

vidarNode() takes an optional Puppeteer page argument, so you can run multiple Vidar scripts on the same movie (useful for servers). See the docs.

Running the Examples

First, download the assets for the examples:

npm run assets

Then, start the development server (only used for convience while developing; you don't need a server to use Vidar):

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].