A curated list of awesome video frameworks, libraries, specifications and software.
Please take a look at the contribution guidelines first. Thanks to all contributors.
- Awesome Video Resources
- bitrate-plotter - Plots a graph showing the bitrate every second or the bitrate of every GOP.
- MpegTsAnalyzer - Analyzer of MPEG2 Transport Stream.
- plot-av - Plot Audio/Video streams for better insights.
- 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.
- ARVideoKit - Capture & record ARKit videos, photos, live photos, and GIFs.
- kaleidoscope - An embeddable, lightweight 360º video/image viewer.
- Aegisub - Cross-platform advanced subtitle editor.
- ccextractor - Tool to extract closed captions from video streams.
- Subtitle Edit - Free and open source editor for video subtitles.
- vtt.js - A JavaScript implementation of the WebVTT specification.
- WebVTT - WebVTT W3C 'Web Video Text Tracks Format' specification.
- aom - AV1 reference encoder and decoder from the Alliance for Open Media.
- dav1d - Fast and small AV1 decoder written in assembly and C.
- kvazaar - Open-source HEVC encoder.
- libvpx - VP8/VP9 codec SDK.
- openh264 - Open source H.264 codec.
- rav1e - The fastest and safest AV1 encoder written in Rust.
- x264 - Free software library for encoding H.264/AVC video streams.
- x265 - Free software library for encoding H.265/HEVC video streams.
- Demuxed - The conference and community for developers working with video.
- IBC - International Broadcasting Convention, annual trade show for media and entertainment.
- Mile High Video - Conference focused on video streaming and encoding.
- NAB Show - National Association of Broadcasters annual convention.
- BigBlueButton - Open source web conferencing system for online learning.
- Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application.
- OpenVidu - Easy video calls in your web or mobile app.
- gpac - Modular multimedia framework for packaging, streaming and playback (includes MP4Box).
- l-smash - MP4 muxer and demuxer library.
- matroska - Open standard free container format for video and audio.
- MKVToolNix - Set of tools to create, alter and inspect Matroska files.
- mp4v2 - Library and tools to read, create, and modify MP4 files.
- 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!.
- 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.
- dash.js - JavaScript DASH client using Media Source Extension (MSE).
- 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).
- 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.
- android-gpuimage - Android filters based on OpenGL for image and video processing.
- CameraX - Jetpack library for camera and video capture on Android.
- FFmpegKit - FFmpeg for Android, iOS, Linux, macOS, tvOS, and Flutter.
- LiTr - Lightweight video/audio transformation library for Android.
- Media3 - Jetpack Media3 library including ExoPlayer for Android media playback.
- libav - Collection of libraries and tools to process multimedia content.
- live555 - C++ libraries for multimedia streaming using open standard protocols.
- 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.
- channel-engine - VOD to Live Engine Library.
- ffmpeg.js - Javascript FFmpeg bindings, port of FFmpeg with Emscripten.
- jMuxer - A simple javascript mp4 muxer for non-standard streaming communications protocol.
- remotion - Create Videos programmatically with React.
- Revideo - A Typescript framework for programmatic video creation & editing.
- 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.
- gmf - Go bindings for FFmpeg av* libraries.
- 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.
- goffmpeg - FFMPEG wrapper written in GO.
- 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.
- snickers - An open source alternative to the video cloud encoding services.
- v4l - Video capture library for Linux, written in Go.
- av-scenechange - Scene change detection library for video encoding.
- mp4parse-rust - Parser for ISO Base Media Format aka video/mp4 written in Rust.
- rust-av - Multimedia toolkit written in pure Rust.
- ExifTool - Read, write and edit meta information in a wide variety of files including video.
- MediaInfo - Convenient unified display of the most relevant technical and tag data for video and audio files.
- mpi - Rust-based MPEG-4 box inspector with TOML output.
- photon - Java implementation of the SMPTE standard, Interoperable Master Format (IMF).
- Av1an - 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.
- GStreamer - Pipeline-based multimedia framework for audio and video processing.
- HandBrake - Open source video transcoder with presets for common output formats.
- hlstools - Tools for analyzing and processing hls streams.
- Kdenlive - Free and open source video editor by KDE.
- lossless-cut - Cross platform GUI tool for lossless trimming / cutting of video and audio files using ffmpeg.
- MLT - MLT Multimedia Framework.
- 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.
- Olive - Free non-linear video editor.
- 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.
- Shotcut - Free, open source, cross-platform video editor.
- SVT-AV1 - Scalable Video Technology AV1 encoder.
- SVT-HEVC - Scalable Video Technology HEVC encoder.
- SVT-VP9 - Scalable Video Technology VP9 encoder.
- video-thumbnail-generator - Generate thumbnail sprites from videos.
- video-transcoding-api - Agnostic API to transcode media assets across different cloud services.
- vpp - Video++, a C++14 high performance video and image processing library.
- aiortc - WebRTC and ORTC implementation for Python using asyncio.
- gortc - Modern WebRTC stack written in Go.
- Janus - WebRTC Server with support for video, audio, data channels, and recording.
- Kurento - WebRTC media server for building video applications with advanced media processing capabilities.
- livego - Live streaming server written in Go, supporting RTMP, HLS, HTTP-FLV, and WebSocket-FLV protocols.
- mediasoup - Cutting-edge WebRTC SFU server and client libraries for Node.js and browsers.
- medooze - High performance Node.js media server for WebRTC, RTSP, RTMP, and RTP.
- Pion WebRTC - Pure Go implementation of the WebRTC API.
- RTSPtoWebRTC - RTSP to WebRTC streaming server.
- SRT - Secure Reliable Transport protocol for low latency video streaming over unreliable networks.
- wrtc - WebRTC implementation for Node.js.
- deoldify - Deep learning based project for colorizing and restoring old images and video.
- OpenCV - Open source computer vision and machine learning software library with extensive video processing capabilities.
- PySceneDetect - Python library for detecting scene changes in videos using computer vision.
- tensorflow-io - TensorFlow I/O library for reading and writing video files and working with video datasets.
- Video-Summarization - PyTorch implementation of video summarization using reinforcement learning.
- yolov5 - Real-time object detection in video streams using YOLOv5.
- libcamera - Open source camera stack for Linux.
- OBS Studio - Free and open source software for video recording and live streaming.
- SimpleScreenRecorder - Screen recorder for Linux with video encoding support.
- v4l-utils - Collection of command line utilities for Video4Linux devices.
- v4l2loopback - Virtual video loopback device for Linux, allowing video streaming between applications.