All Projects → jscodec → jsvpx

jscodec / jsvpx

Licence: MIT, BSD-3-Clause licenses found Licenses found MIT LICENSE BSD-3-Clause LICENSE-VP8
Full Javascript implementation of libvpx vp8 decoder.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to jsvpx

Peek
Peek makes it easy to create short screencasts of a screen area. It was built for the specific use case of recording screen areas, e.g. for easily showing UI features of your own apps or for showing a bug in bug reports. With Peek, you simply place the Peek window over the area you want to record and press "Record". Peek is optimized for generating animated GIFs, but you can also directly record to WebM or MP4 if you prefer.
Stars: ✭ 8,408 (+39938.1%)
Mutual labels:  webm
Vp8 Webm Javascript Decoder
hand ported version of vp8 webm javascript decoder
Stars: ✭ 101 (+380.95%)
Mutual labels:  webm
Recorder
html5 js 录音 mp3 wav ogg webm amr 格式,支持pc和Android、ios部分浏览器、和Hybrid App(提供Android IOS App源码),微信也是支持的,提供H5版语音通话聊天示例 和DTMF编解码
Stars: ✭ 2,891 (+13666.67%)
Mutual labels:  webm
Ar Gif
Easy to use augmented reality web components
Stars: ✭ 52 (+147.62%)
Mutual labels:  webm
Webm.py
🎞 Cross-platform command-line WebM converter
Stars: ✭ 93 (+342.86%)
Mutual labels:  webm
Webmgenerator
UI and Automation to cut, filter and join high quality webms, mp4s or gifs.
Stars: ✭ 103 (+390.48%)
Mutual labels:  webm
Scalajs Videojs
Scala.js bindings for Video.js
Stars: ✭ 7 (-66.67%)
Mutual labels:  webm
Webmcam
Capture frames in real-time and save them as WebM.
Stars: ✭ 238 (+1033.33%)
Mutual labels:  webm
Media Server
RTSP/RTP/RTMP/FLV/HLS/MPEG-TS/MPEG-PS/MPEG-DASH/MP4/fMP4/MKV/WebM
Stars: ✭ 1,363 (+6390.48%)
Mutual labels:  webm
Ffmpeg.js
Port of FFmpeg with Emscripten
Stars: ✭ 2,447 (+11552.38%)
Mutual labels:  webm
Srs
A WebM screen recorder.
Stars: ✭ 53 (+152.38%)
Mutual labels:  webm
Node Ebml
EBML parser
Stars: ✭ 66 (+214.29%)
Mutual labels:  webm
Youtubedownloader
Downloads videos and playlists from YouTube
Stars: ✭ 2,202 (+10385.71%)
Mutual labels:  webm
Yaxg
capture and record your screen with callbacks
Stars: ✭ 47 (+123.81%)
Mutual labels:  webm
Ccapture.js
A library to capture canvas-based animations at a fixed framerate
Stars: ✭ 2,836 (+13404.76%)
Mutual labels:  webm
Youtubedownloader
Android App for searching for videos on Youtube by keywords using YouTube Data API and download videos from YouTube in different formats.
Stars: ✭ 25 (+19.05%)
Mutual labels:  webm
Vue Howler
[UNMAINTAINED] A Howler.js mixin for Vue 2 that makes it easy to create custom audio player components
Stars: ✭ 103 (+390.48%)
Mutual labels:  webm
Swiftffmpeg
A Swift wrapper for the FFmpeg API
Stars: ✭ 243 (+1057.14%)
Mutual labels:  webm
Mpv Webm
Simple WebM maker for mpv, with no external dependencies.
Stars: ✭ 234 (+1014.29%)
Mutual labels:  webm
Opus Media Recorder
MediaRecorder polyfill for Opus recording using WebAssembly
Stars: ✭ 159 (+657.14%)
Mutual labels:  webm

jsvpx

jsvpx is a full implementation of libvpx in Javascript. In contrast to other crosscompiled decoders, jsvpx is fully written in Javascript.

The reason for a full reimplementation as opposed to a simple cross compile, is because video decoding computation is very repetative, and as of now, cross compiled modules can only be single threaded. The project is still in early stages, but now ready to expore multithreading options including WebWorkers or WebGL, possible SIMD, even though it may only work for FireFox (at least for the near future).

Project Status

Vp8 is now working! Still in experimental stages. Output hashes finally match the vp8 test vectors. Now working on figuring out a few speed issues.

Works best in Safari.

Check out a running demo on ogv.js: http://jscodec.com/ogv-example/#file=Curiosity's_Seven_Minutes_of_Terror.ogv&size=360p.webm

Based of code from John Koleszar's dixie libvpx branch : https://github.com/webmproject/libvpx/tree/dixie/vpx , and Dominik Homberger's : https://github.com/dominikhlbg/vp8-webm-javascript-decoder.

Currently moving towards the direction of the main branch.

Looking to try some interesting things with webworkers, or perhaps some GPU.

ChangeLog

Current TODO

  • Figure out whats causing the slow parts, (Probably splitmode prediction)
  • Start testing out some webworkers
  • Lots of code cleaning to do

Future Planned Work

  • Frame corruption/interpolation for missing frames
  • Vp9
  • Finish filling this out...

Usage

Installation

Make sure to have npm, and git installed. Clone repository, then use:

For npm modules:

npm install

To pull all git modules: git submodule update --init

To Build simply use: npm run-script build

Validation

To validate, use

npm run-script test

API

The main api is written to closely resemble the C style api of the original libvpx library. In the build-templates folder, you can find various templates for other API's and builds.

jsvpx api

This is the simplest most, most user friendly api. It's usage is more like the traditional javascript api.

var decoder = new jsvpx();
var rawFrame = decoder.decode(compressedFrame);

if(rawFrame){
    //do something with it
}
jsvpx api demos:

Running on Dominik's vp8-webm-javascript-decoder:

Link to source using jsvpx:

https://github.com/brianxautumn/vp8-webm-javascript-decoder/tree/JsVpx

Link to live demo:

http://jscodec.com/vp8-webm-javascript-decoder/vpxdec.html

ogv.js

  • To try with ogv, simply copy ogv-decoder-video-vp8 out of the builds directory and paste it over the generated one.
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].