Skip to content

sitkevij/awesome-video

Awesome Video Resources

build GitHub Repo stars GitHub forks Awesome

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.

Analysis tools

  • 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.

AR/VR/360

  • ARVideoKit - Capture & record ARKit videos, photos, live photos, and GIFs.
  • kaleidoscope - An embeddable, lightweight 360º video/image viewer.

Captions and Subtitles

  • 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.

Codecs and Encoders

  • 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.

Conferences

  • 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.

Conferencing

  • 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.

Container Formats and Muxing

  • 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.

Learning Resources

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.
  • 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.

Language and platform specific libraries

Android/Kotlin

  • 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.

C/C++

  • libav - Collection of libraries and tools to process multimedia content.
  • live555 - C++ libraries for multimedia streaming using open standard protocols.

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.
  • 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.

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.
  • 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.

Rust

  • 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.

Metadata

  • 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).

Media Processing

  • 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.

Streaming Protocols

  • 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.

Video AI/ML

  • 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.

Video Capture and Recording

  • 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.

About

A curated list of awesome video frameworks, libraries, specifications and software.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 9