Displaying 1 to 20 from 61 results

wuffs - Wrangling Untrusted File Formats Safely

  •    Go

(Formerly known as Puffs: Parsing Untrusted File Formats Safely).Wuffs is a domain-specific language and library for wrangling untrusted file formats safely. Wrangling includes parsing, decoding and encoding. Examples of such file formats include images, audio, video, fonts and compressed archives.

digital_video_introduction - A hands-on introduction to video technology: image, video, codec (av1, vp9, h265) and more (ffmpeg encoding)

  •    Jupyter

A gentle introduction to video technology, although it's aimed at software developers / engineers, we want to make it easy for anyone to learn. This idea was born during a mini workshop for newcomers to video technology. The goal is to introduce some digital video concepts with a simple vocabulary, lots of visual elements and practical examples when possible, and make this knowledge available everywhere. Please, feel free to send corrections, suggestions and improve it.

ffmpeg-libav-tutorial - [WIP] Learn FFmpeg libav the Hard Way

  •    C

I was looking for a tutorial/book that would teach me how to start to use FFmpeg as a library (a.k.a. libav) and then I found the "How to write a video player in less than 1k lines" tutorial. Unfortunately it was deprecated, so I decided to write this one. Most of the code in here will be in c but don't worry: you can easily understand and apply it to your preferred language. FFmpeg libav has lots of bindings for many languages like python, go and even if your language doesn't have it, you can still support it through the ffi (here's an example with Lua).

lossless-cut - Cross platform GUI tool for lossless trimming / cutting of video and audio files using ffmpeg

  •    Javascript

Simple, cross platform tool for lossless trimming/cutting of video and audio files. Great for rough processing of large video files taken from a video camera, GoPro, drone, etc. It lets you quickly extract the good parts from your videos and discard GBs of data without losing quality. It doesn't do any decoding / encoding and is therefore extremely fast. This app uses the awesome ffmpeg (included) for doing the grunt work. Since LosslessCut is based on Chromium and uses the HTML5 video player, not all ffmpeg supported formats will be supported. The following formats/codecs should generally work: MP4, MOV, WebM, MKV, OGG, WAV, MP3, AAC, H264, Theora, VP8, VP9 For more information about supported formats / codecs, see https://www.chromium.org/audio-video. Note that the MPEG TS format is not supported. See known issues.

Simple Binary Encoding - Simple Binary Encoding (SBE) - High Performance Message Codec

  •    Java

SBE is an OSI layer 6 presentation for encoding and decoding binary application messages for low-latency financial applications. This repository contains the reference implementations in Java, C++, Golang, and C#. The Java and C++ SBE implementations are designed with work very efficiently with the Aeron messaging system for low-latency and high-throughput communications. The Java SBE implementation has a dependency on Agrona for its buffer implementations.

ogv.js - JavaScript media player using Ogg/Vorbis/Theora/Opus/WebM libs compiled with Emscripten

  •    Javascript

Media decoder and player for Ogg Vorbis/Opus/Theora and WebM video. Based around libogg, libvorbis, libtheora, libopus, libvpx, and libnestegg compiled to JavaScript with Emscripten.

minimp3 - Minimalistic MP3 decoder single header library

  •    C

Conformance test passed on all vectors (PSNR > 96db). Keyj minimp3 conformance test fails on all vectors (PSNR < 96db), and free format is unsupported. This caused some problems when it was used here, and was the main motivation for this work.

Rust AV - Multimedia Toolkit written in pure Rust

  •    Rust

Pure-rust implementation of multimedia primitives and eventually demuxer, muxers and codecs.

HPC cluster video encoder

  •    CSharp

HPC cluster video encoder is a cluster application that provides near real-time encoding of video different formats and size. It's developed in C# using Microsoft Expression Encoder 3 object model, Microsoft Advanced VC-1 video codec and Microsoft HPC Pack 2008 SDK.


  •    DotNet

A .NET wrapper for the FFMPEG library, designed to be easy to use and as complete as possible!

P/Opus (.NET Wrapper for libopus)

  •    DotNet

P/Opus is a .NET library written in C# to wrap around the libopus C API/library to provide a more .NET friendly way of encoding and decoding Opus packets.

Xiph Media Encoder


Xiph Media Encoder is a wizard which help you to transcode automatically audio files in FLAC, Vorbis and Speex. It generates flexible PowerShell scripts.

Kazoo : Yahoo Voice Chat Add On For Yahoo Chat

  •    CSharp

Voice chat plug in rewritten in .net and improved

CharLS, a JPEG-LS library

  •    C++

An optimized implementation of the JPEG-LS standard for lossless and near-lossless image compression. JPEG-LS is a low-complexity standard that matches JPEG 2000 compression ratios. In terms of speed, CharLS outperforms open source and commercial JPEG LS implementations.

Ogg Vorbis Interop Library

  •    DotNet

This interop-lib is using the original Ogg Vorbis libraries written in C offered by Xiph.Org to encode and decode audio material to and from the Ogg Vorbis audio format. The interface is similar to the original libraries, except that no memory handling is needed.

base64 - A robust base64 encoder/decoder that is fully compatible with `atob()` and btoa()`, written in JavaScript

  •    Javascript

base64 is a robust base64 encoder/decoder that is fully compatible with atob() and btoa(), written in JavaScript. The base64-encoding and -decoding algorithms it uses are fully RFC 4648 compliant.A string representing the semantic version number.

jpeg-js - A pure javascript JPEG encoder and decoder for node.js

  •    Javascript

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

ffmediaelement - WPF MediaElement replacement based on FFmpeg

  •    CSharp

FFME is a close (and I'd like to think better) drop-in replacement for Microsoft's WPF MediaElement Control. While the standard MediaElement uses DirectX (DirectShow) for media playback, FFME uses FFmpeg to read and decode audio and video. This means that for those of you who want to support stuff like HLS playback, or just don't want to go through the hassle of installing codecs on client machines, using FFME might just be the answer.First off, let's review a few concepts. A packet is a group of bytes read from the input. All packets are of a specific MediaType (Audio, Video, Subtitle, Data), and contain some timing information and most importantly compressed data. Packets are sent to a Codec and in turn, the codec produces Frames. Please note that producing 1 frome does not always take exactly 1 packet. A packet may contain many frames but also a frame may require several packets for the decoder to build it. Frames will contain timing informattion and the raw, uncompressed data. Now, you may think you can use frames and show pixels on the screen or data to the sound card. We are close, but we still need to do some additional processing. Turns out different Codecs will produce different uncompressed data formats. For example, some video codecs will output pixel data in ARGB, some others in RGB, and some other in YUV420. Therefore, we will need to Convert these frames into something all hardware can use. I call these converted frames, MediaBlocks. These MediaBlocks will contain uncompressed data in standard Audio and Video formats.