Awesome Video Resources
A curated list of awesome video frameworks, libraries, specifications and software.
Contributing
Please take a look at the contribution guidelines first. Thanks to all contributors.
- AR/VR/360
- Captions and Subtitles
- Conferences
- Conferencing
- Learning Resources
- Players
- Language and platform specific libraries
- Metadata
- Media Processing
Analysis tools
- bitrate-plotter - Plots a graph showing the bitrate every second or the bitrate of every GOP.
- MpegTsAnalyzer - Analyzer of MPEG2 Transport Stream.
- QCtools - Quality Control Tools for Video Preservation, helps users to analyze and understand digitized video files.
- tsduck - MPEG Transport Stream Toolkit.
- tstools - Display PCR, DTS, PTS, bitrate, jitter of a mpeg TS.
- videobench - VMAF PSNR Bitrate Analyzer.
- vivict - In-browser tool for subjective comparison of the visual quality of different encodings.
- VTCLab Media Analyzer - In-browser tool that helps to analyze the internal structure of MPEG-TS and MP4/MOV files.
- YUView - The Free and Open Source Cross Platform YUV Viewer with an advanced analytics toolset.
AR/VR/360
- ARVideoKit - Capture & record ARKit videos, photos, live photos, and GIFs.
- kaleidoscope - An embeddable, lightweight 360ยบ video/image viewer.
Captions and Subtitles
- vtt.js - A JavaScript implementation of the WebVTT specification.
- WebVTT - WebVTT W3C 'Web Video Text Tracks Format' specification.
Conferences
- Demuxed - The conference and community for developers working with video.
Conferencing
- Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application.
Learning Resources
- digital video introduction - A hands-on introduction to video technology: image, video, codec (av1, vp9, h265) and more (ffmpeg encoding).
- ffmpeg encoding course - An introduction to FFmpeg and its tools.
- List of Streams - Community list of public test streams for HLS and DASH.
- Live Stream from Desktop - Provide guidance to test live streaming (mpeg-dash or hls) or vod from your desktop
- Streaming Onboarding - New to streaming and don't know where to start? This is the place for you!.
Players
- bigscreen-player - Simplify video and audio playback on a wide range of 'bigscreen' devices (TVs, set-top boxes, games consoles, and streaming devices).
- chimee - A video player framework aims to bring wonderful experience on browser.
- clappr - An extensible media player for the web.
- epic-video-comparator - Javascript library which implements a video comparator component: two overlaped and synchronized video players each one playing an independent source.
- ExoPlayer - An extensible media player for Android.
- hls.js - JavaScript HLS client using Media Source Extension (MSE).
- dash.js - JavaScript DASH client using Media Source Extension (MSE).
- iina - The modern video player for macOS.
- ijkplayer - Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.
- indigo-player - Highly extensible, modern, JavaScript video player. Handles MPEG-Dash / HLS / MPEG-4 and is built on top of the HTML5 video element.
- mobileplayer-ios - A powerful and completely customizable media player for iOS.
- mpv - Video player based on MPlayer/mplayer2.
- ngx-videogular - The HTML5 video player for Angular 2 and successor to videogular2.
- openplayerjs - Lightweight HTML5 video/audio player with smooth controls and ability to play VAST/VPAID/VMAP ads.
- plyr - A simple HTML5, YouTube and Vimeo player.
- replay - A React video player facilitating adaptive stream playback with custom UI and a React-friendly API.
- shaka-player - JavaScript player library / DASH client / MSE-EME player.
- Video.js - open source HTML5 & Flash video player.
- vlc - VLC media player.
Language and platform specific libraries
iOS Swift
- FFmpeg-iOS-build - Shell scripts to build FFmpeg for iOS and tvOS.
- PBJVision - iOS Media Capture โ features touch-to-record video, slow motion, and photography.
Javascript
- channel-engine - VOD to Live Engine Library.
- jMuxer - A simple javascript mp4 muxer for non-standard streaming communications protocol.
- ffmpeg.js - Javascript FFmpeg bindings, port of FFmpeg with Emscripten.
- remotion - Create Videos programmatically with React
Python
- atvk - Audio/Video toolkit for Python.
- brave - Basic Real-time AV Editor - allowing you to preview, mix, and route live audio and video streams on the cloud.
- dash-live-source-simulator - DASH live source simulator providing reference live content.
- django-video-encoding - django-video-encoding helps to convert your videos into different formats and resolutions.
- ffmpeg-python - Python bindings for FFmpeg - with complex filtering support.
- ffmpy - Pythonic interface for FFmpeg/FFprobe command line.
- hls-analyzer - Analyzer for HTTP Live Streams (HLS) content.
- hls-relay - Script to pull HLS stream from one origin and push to another origin.
- hls-to-dash - Open source packager and tools to rewrap live HLS to live MPEG DASH.
- m3u8 - Python m3u8 Parser for HTTP Live Streaming (HLS) Transmissions.
- moviepy - Video editing with Python.
- objective_perceptual_analysis - Objective Perceptual Analysis, Compression Karma Predictor.
- PyAV - Pythonic bindings for FFmpeg's libraries.
- pycaption - Python module to read/write popular video caption formats.
- pychromecast - Library for Python 3 to communicate with the Google Chromecast.
- PyLivestream - Simple cross-platform FFmpeg-based live streaming to YouTube, Periscope, Twitch, Facebook Live and more.
- python-video-converter - Python Video Converter (ffmpeg wrapper).
- vidgear - High-performance cross-platform Video Processing Python framework powerpacked with unique trailblazing features.
- vod-to-live - A python library to generate Live HLS from VOD.
- webm.py - Encode WebM videos.
Go
- gmf - Go bindings for FFmpeg av* libraries.
- goffmpeg - FFMPEG wrapper written in GO.
- go-astisub - Manipulate subtitles in GO (.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.).
- go-astits - Parse and demux MPEG Transport Streams (.ts) natively in GO.
- goav - Comphrensive Go bindings for FFmpeg.
- gst - Go bindings for GStreamer.
- libgosubs - Subtitle format support for go. Supports .srt, .ttml, and .ass.
- libvlc-go - Go bindings for libVLC 2.X/3.X/4.X and high-level media player interface.
- v4l - Video capture library for Linux, written in Go.
- snickers - An open source alternative to the video cloud encoding services.
Rust
- mp4parse-rust - Parser for ISO Base Media Format aka video/mp4 written in Rust.
Metadata
- mpi - Rust-based MPEG-4 box inspector with TOML output.
- photon - Java implementation of the SMPTE standard, Interoperable Master Format (IMF).
Media Processing
- Av1an - About Cross-platform command-line AV1 / VP9 / HEVC / H264 / VVC encoding framework with per scene quality encoding.
- Bento4 - Full-featured MP4 format and MPEG DASH library and tools.
- easyVmaf -Python script to easily compute VMAF using FFmpeg. It allows to deinterlace, scale and sync Ref and Distorted video automatically.
- FFmpeg - A complete, cross-platform solution to record, convert and stream audio and video.
- ffmpeg-explorer - Interactive FFMPEG Command Generator.
- Flowblade - Video editor for Linux.
- fluster - Testing framework for decoders conformance.
- gifify - Convert any video file to an optimized animated GIF.
- hlstools - Tools for analyzing and processing hls streams.
- lossless-cut - Cross platform GUI tool for lossless trimming / cutting of video and audio files using ffmpeg.
- MLT - MLT Multimedia Framework.
- moviepy - Video editing with Python.
- multistreamer - A webapp for publishing video to multiple streaming services at once.
- nginx-rtmp-module - NGINX-based Media Streaming Server.
- nginx-vod-module - NGINX-based MP4 Repackager.
- ott-packager - OTT streaming packager supporting ABR streaming for DASH and HLS.
- PHP-FFmpeg-video-streaming - Package media content for online streaming(DASH and HLS) using FFmpeg.
- QtAV - A cross-platform multimedia framework based on Qt and FFmpeg.
- qtlmovie - A specialized Qt frontend for FFmpeg and other free media tools.
- shaka-packager - A media packaging and development framework for VOD and Live DASH and HLS applications, supporting Common Encryption for Widevine and other DRM Systems.
- SVT-AV1 - Scalable Video Technology AV1 encoder.
- SVT-HEVC - Scalable Video Technology HEVC encoder.
- SVT-VP9 - Scalable Video Technology VP9 encoder.
- vpp - Video++, a C++14 high performance video and image processing library.
- video-transcoding-api - Agnostic API to transcode media assets across different cloud services.
- video-thumbnail-generator - Generate thumbnail sprites from videos.