Awesome Video
Contents
- Introduction
- Learning
- HLS
- DASH
- Kubernetes
- Encoding
- Transport
- Streaming Server and Storage
- Specs and Standards
- Players
- FFMPEG
- Audio
- Subtitles and Captions
- Ads
- Vendors
- QoE
- Tools
- DRM
- Testing
- Community
- CDN
- HDR10, HLG, Dolby Vision
Introduction
What's video?
- A short history of video coding - Video coding is an essential component of video streaming, digital TV, video chat and many other technologies. This presentation, an invited lecture to the US …
- Eyevinn/streaming-onboarding - New to streaming and don't know where to start? This is the place for you! - Eyevinn/streaming-onboarding
- leandromoreira/digital_video_introduction - A hands-on introduction to video technology: image, video, codec (av1, vp9, h265) and more (ffmpeg encoding). - leandromoreira/digital_video_introduction
Learning
An awesome list of learning video streaming resources.
- 3 Cases from a Video Expert: Encoding Basics - Introduction
- Adding Alternate Media to a Playlist | Apple Developer Documentation -
- Back to Basics: Encoding Definition and Adaptive Bitrate -
- Creating A Production Ready Multi Bitrate HLS VOD stream - Peer5 P2P Docs - Peer5 documentation
- Creating a Master Playlist | Apple Developer Documentation -
- FFmpeg and how to use it wrong - I’ve been in the streaming media industry since 2008 and have seen a lot of misinformation regarding both FFmpeg and libx264. In this post I hope to help shed some light on what does and does…
- Guide to Mobile Video Streaming with HLS - HTTP Live Streaming, also known as HLS, is the most common format used today for streaming video. If you're building a video streaming application today, you should probably use HLS. Apple created the HLS standard in 2009, and it is the required streaming format for iOS devices. Since then, Android
- HLS Authoring Specification for Apple Devices | Apple Developer Documentation -
- HLS adaptive streaming tutorial with CloudFront & JW Player | Miracle Tutorials - A step-by-step HLS adaptive streaming tutorial with CloudFront & JW Player in two parts. It is easier than you think. This tutorial presumes you have
- HOW TO: View an HLS Stream in QuickTime or VLC – Softron Support Desk -
- How To Setup Nginx For HLS Video Streaming On Centos 7 - How to live stream videos with Nginx
- How video streaming works on the web: An introduction - Note: this article is an introduction to video streaming in JavaScript and is mostly targeted to web developers. A large part of the…
- HowVideo.works -
- Internet Video Streaming — ABR part 1 - Background
- Internet Video Streaming — ABR part 2 - Background
- Introduction to HTTP Live Streaming: HLS on Android and More - This article explains how HTTP Live Streaming works and demonstrates how to create an HLS player in Android.
- Live Playlist (Sliding Window) Construction | Apple Developer Documentation -
- Low Latency Live Streaming - Low Latency Live Streaming Apple LLHLS / CMAF Kevin Staunton-Lambert Solutions Architect R&D (July 2019) @kevleyski www.switch.tv
- OTT Content Delivery - Background
- OTT Content Delivery– Multi CDN - Background
- Overview of the H.264/AVC video coding standard - Circuits and Systems for Video Technology, IEEE Transactions on -
- Server-less Video Backend - In this blog post by Jonas Rydholm Birmé he describes how a completely server-less video backend on AWS would look like.
- The structure of an MPEG-DASH MPD - The MPEG-DASH Media Presentation Description (MPD) is an XML document containing information about media segments, their relationships and information necessary to choose between them, and other metadata that may be needed by clients. In this post, I describe the most important pieces of the MPD, starting from the top level (Periods) and going to the bottom (Segments).
- Understanding the HTTP Live Streaming Architecture | Apple Developer Documentation -
- VOD2Live - VOD2Live Kevin Staunton-Lambert Solutions Architect R&D @kevleyski www.switch.tv
- Video Encoding — Compression and Resolutions - Written by: Boris Asadanin, Streaming Media Consultant at Eyevinn Technology
- Video Tensorflow - Using Tensorflow For Audience Measurement Kevin Staunton-Lambert Solutions Architect R&D @kevleyski www.switch.tv
- Video and containers - NALU, Annex B, and Start Codes
- Video on Demand Playlist Construction | Apple Developer Documentation -
- WebAssembly (Wasm) - WebAssembly (Wasm) On the Edge Kevin Staunton-Lambert Solutions Architect R&D @kevleyski www.switch.tv Wasm)
- WildFires - VOD2Live Kevin Staunton-Lambert Solutions Architect R&D @kevleyski Wild Fire! How video engineers can help save lives www.switch.tv
- alexgand/springer_free_books: Python script to download all Springer books released for free during the 2020 COVID-19 quarantine - Python script to download all Springer books released for free during the 2020 COVID-19 quarantine - alexgand/springer_free_books
- amiaopensource/cable-bible - A guide to cables and connectors used for audiovisual tech - amiaopensource/cable-bible
- bash scripts to create VOD HLS stream with ffmpeg almighty (tested on Linux and OS X) - bash scripts to create VOD HLS stream with ffmpeg almighty (tested on Linux and OS X) - README.md
- ffmpeg tutorial -
- leandromoreira/video-containers-debugging-tools - A set of command lines to debug video streaming files like mp4 (MPEG-4 Part 14), ts (MPEG-2 Part 1), fmp4 in Dash, HLS, or MSS, with or without DRM. - leandromoreira/video-containers-debugging-tools
- lhls-simple-live-platform - You can build your own live platform just wiring up some open source tools, this is a demo video of https://github.com/jordicenzano/lhls-simple-live-platform
- matmoi/create-DASH-HLS - A tutorial to generate fMp4 files compatible with dash and HLS - matmoi/create-DASH-HLS
- matmoi/create-DASH-HLS - A tutorial to generate fMp4 files compatible with dash and HLS - matmoi/create-DASH-HLS
- mofo7777/Stackoverflow - All source codes I've provided on stackoverflow as an answer, usually under tag ms-media-foundation. Mediafoundation, audio, video, 3D, decoder, encoder. - mofo7777/Stackoverflow
- nickdesaulniers/netfix - Let's build a Netflix.
Books
Books on video streaming. NOTE: Books published more than 4-5 years ago may not be up to date on latest streaming tech. back to top
- Communicating Pictures - 2014-06-20 (1st Edition). Bull, David.
- Data Broadcasting: Understanding the ATSC Data Broadcast Standard - 2001-04-16 (1st Edition). Chernock, Richard; Crinon, Regis; Mick, John.
- Digital Television: MPEG-1, MPEG-2 and Principles of the DVB System - 1997-07-11. Benoit, Herve.
- Digital Television: Technology and Standards - 2007-09-17. Arnold, John; Frater, Michael; Pickering, Mark.
- Digital Video and HD: Algorithms and Interfaces - 2012-02-07 (2nd Edition). Poynton, Charles.
- High Efficiency Video Coding (HEVC): Algorithms and Architectures (Integrated Circuits and Systems) - 2014-09-03. Budagavi, Madhukar; Sze, Vivienne; Sullivan, Gary.
- High Efficiency Video Coding: Coding Tools and Specification (Signals and Communication Technology) - 2014-10-08. Wien, Mathias.
- Introduction to Digital Audio Coding and Standards - 2002-12-31. Bosi, Marina; Goldberg, Richard.
- Producing Streaming Video for Multiple Screen Delivery - 2013-04-01. Ozer, Jan.
- The MPEG Handbook - 2004-11-15 (2nd Edition). Watkinson, John.
- The MPEG-4 Book - 2002-07-20. Ebrahimi, Touradj; Pereira, Fernando.
- Transporting Compressed Digital Video - 2002-03-31. Chen, Xuemin.
- Video Compression Handbook - 2018-07-03 (2nd Edition). Beach, Andy; Owen, Aaron.
- Video Encoding by the Numbers: Eliminate the Guesswork from your Streaming Video - 2016-12-28. Ozer, Jan.
Reading
A list of reading articles, blogs, and newsletters for video streaming. back to top
- 9 Best Home Server Apps to Automate Media Management - These are top 9 best home server apps to automate media management, so you get the latest Movies, Music and TV Shows in the best quality available.
- About Frame Rates or Why 29.97? - I recently remembered this popular post from my old blog. Since that blog no longer exists, I thought I would repost it here. Since I wrote this post about a decade ago, many others of done a much better job describing this in detail. I highly recommend the following two videos by Alec Watson fro
- BOLA: Near-Optimal Bitrate Adaptation for Online Videos -
- Byte Down: Making Netflix’s Data Infrastructure Cost-Effective -
- Demystifying HTML5 Video Player - In this post we will go under the hood of a HTML video player for video streaming. With the exception of Apple and their browser Safari, no…
- Design of scheduling and rate-adaptation algorithms for adaptive HTTP streaming · dispar.at Blog - Design of scheduling and rate-adaptation algorithms for adaptive HTTP streaming - Stephan Hesse
- Divide & Encode: How to Encode Videos Blazingly Fast | Part I - Need For Speed - Here at Showmax, we’re addicted to speed and performance. In this post, I’ll go through a few techniques we used to improve the speed of our enc...
- Divide & Encode: How to Encode Videos Blazingly Fast | Part II - Under The Hood - This is the second (and final) part of our blog mini-series about boosting encoding speed. In the first part we wrote about how we managed to ma...
- EBU.io - Engineering Blog -
- Extracting contextual information from video assets - for an improved Netflix user experience
- FFmpeg Threads Command: How it Affects Quality and Performance - So, I received an email from an acquaintance that read, “I was curious if there is actually any benefit to a “threads=” type custom command in x264. Specifically many streamers are buying 8 core/16 thread CPUs to encode as a standalone client capturing information from a video capture device.” I had an article on FFmpeg…
- HDMI 2.1: features, specs and news about the latest HDMI standard - The gateway to a super high-definition future is ever-nearing
- Hardware-Assisted Video Transcoding At Dailymotion - What if you could save time, power consumption and therefore money, while still keeping a decent quality for your converted video ?
- IMF: A Prescription for Versionitis - the emerging Interoperable Master Format standard
- Improving our video encodes for legacy devices - by Mariana Afonso, Anush Moorthy, Liwei Guo, Lishan Zhu, Anne Aaron
- Inside MPEG's Ambitious Plan to Launch 3 Video Codecs in 2020 - The pace of innovation is getting faster and the demands on video codecs are getting greater. MPEG's three-part plan answers questions of royalties, licensing, and computational efficiency. Meet VVC, MPEG-5 Part 1 (EVC), and MPEG-5 Part 2 (LCEVC).
- Live Video Transmuxing/Transcoding: FFmpeg vs TwitchTranscoder, Part I - By: Jeff Gong, Software Engineer, jeffgon@twitch.tv Sahil Dhanju, Software Engineer Intern Chih-Chiang Lu, Senior Software Engineer…
- Live Video Transmuxing/Transcoding: FFmpeg vs TwitchTranscoder, Part II - By: Jeff Gong, Software Engineer, jeffgon@twitch.tv Sahil Dhanju, Software Engineer Intern Chih-Chiang Lu, Senior Software Engineer…
- Pushing video bitrate to the limit - When you subscribe to a VOD service, you expect the best visual quality possible. For our customers across Sub-Saharan Africa, it’s no different...
- Quantifying packaging overhead - Mux makes adding video to your app or website as easy as making a single API call. But behind the scenes is a large multistep process to analyze and transform the video into something that can be easily consumed by a device. This process is commonly called a media “pipeline”
- Riot Games Keeps League of Legends Esports Rolling With Fully Cloud-Based Virtualized Workflow - Although the traditional sports world has come to a standstill due to the coronavirus pandemic, many major esports properties are soldiering on, hosting compe
- Running FFmpeg on AWS Lambda for 1.9% the cost of AWS Elastic Transcoder - A guide to building a transcoder using Exodus, FFmpeg, and AWS Lambda.
- Saving on Encoding and Streaming: Deploy Capped CRF – Streaming Learning Center - This is the second in a five-part series on how to cut your encoding and streaming costs. The first article was Saving on Encoding: Adjust Encoding Configuration to Increase Capacity. Article summary: Capped CRF encoding is a single-pass encoding method that can save encoding costs compared to two-pass VBR. Capped CRF is also a simple per-title…
- Server-less Just-in-Time Packaging with AWS Fargate and Unified Origin by Unified Streaming - In this blog article Jonas Rydholm Birmé describes how he created a server-less just-in-time packaging origin, using AWS ECS Fargate tasks…
- Server-less Just-in-Time Packaging with AWS Fargate and Unified Origin by Unified Streaming - In this blog article Jonas Rydholm Birmé describes how he created a server-less just-in-time packaging origin, using AWS ECS Fargate tasks…
- Streaming Live From the Battlefield: Military Video in 2019 - Metadata and low-latency video create a tactical advantage in intelligence-gathering and decision making. Discover why HEVC is gaining momentum in the armed forces, and Android is preferred over iOS.
- The H.264 Sequence Parameter Set - [vc_row][vc_column][vc_column_text]This is a follow-up to my World’s Smallest H.264 Encoder post. I’ve received several emails asking about precise details of things in two entities in the H.264 bitstream: the Sequence Parameter Set (SPS) and the Picture Parameter Set (PPS). Both entities contain information that an H.264 decoder needs to decode the video data, for example,…
- The Netflix IMF Workflow - interesting architectural implications
- VOD on AWS -
- Video Coding - BBC R&D - BBC video encoding R&D home page
- Video in the War Zone: The Current State of Military Streaming - For the armed forces, streaming is a matter of national security. Here's an exclusive look at how the military, from analysts to ground troops, is using streaming video.
- Video: HLS and DASH Multi-Codec Encoding & Packaging - Free educational webinars, videos and other resources focused on the Broadcast Industry
Talks Presentations Podcasts
Conference talks and pdf presentations and podcasts on streaming video . back to top
- Demuxed 2016 - 2016 Demuxed talks & presentations
- Demuxed 2017 - 2017 Demuxed talks & presentations
- Demuxed 2018 - 2018 Demuxed talks & presentations
- Demuxed 2019 - 2019 Demuxed talks & presentations
- Demuxed | Heavybit - Demuxed is a podcast made for and by engineers working with video. Brought to you by Heavybit.
- From Sys Admin to Netflix SRE - Talk by Jonah Horowitz, Albert Tobey What does it take to be a Netflix SRE? With tens of thousands of Linux instances in a distributed system architecture, a...
- Mile High Video 2018 Proceedings - Mile High Video 2018 talks & presentations
- Mile High Video 2019 Proceedings - Mile High Video 2019 talks & presentations
- The Video Insiders - Video Insiders Podcast
HLS
HLS tools, libraries, and resources.
- 507_hls_authoring_for_airplay_2. -
- 510_validating_http_live_streams. -
- Eyevinn/hls-cutsegment - A web app that lets you insert a cut into a segment, which is then cut into two new segments. - Eyevinn/hls-cutsegment
- Eyevinn/hls-download - Download HLS and convert to MP4.
- Eyevinn/hls-origin-scripts - Scripts to manipulate HLS manifests at origin or edge server - Eyevinn/hls-origin-scripts
- Eyevinn/hls-playlist-parser - A Javascript library to parse Hls playlists.
- Eyevinn/hls-relay - Script to pull HLS stream from one origin and push to another origin - Eyevinn/hls-relay
- Eyevinn/hls-ts-analyzer - Example implementation of hls-ts.js library.
- Eyevinn/hls-ts-js - HLS MPEG-TS parser library in Javascript.
- Eyevinn/manifestparser - A manifest parser.
- Eyevinn/vod-to-live - A python library to generate Live HLS from VOD.
- HLS and Fragmented MP4 - At WWDC 2016, Apple announced support for fragmented MP4 (fMP4) as an alternative to MPEG-TS, which prior to their announcement was the only supported format. So why use fragmented MP4 files? Well,…
- HLS | Bento4 -
- Integrating AirPlay for Long-Form Video Apps | Apple Developer Documentation -
- Introducing Low-Latency HLS - WWDC 2019 - Videos - Apple Developer - Since its introduction in 2009, HTTP Live Streaming (HLS) has enabled the delivery of countless live and on‐demand audio and video...
- Last-Order/Minyami - A lovely video downloader for HLS videos.
- M3U8Kit/M3U8Parser - A light weight M3U8 parser. Support X-Key & X-Session-Key. - M3U8Kit/M3U8Parser
- Protocol Extension for Low-Latency HLS (Preliminary Specification) | Apple Developer Documentation -
- SoulMelody/hls-get - An asynchronous terminal-based hls video stream (m3u8) downloader & combiner, with AES-128 decryption support. - SoulMelody/hls-get
- alfg/docker-nginx-rtmp -
🐋 A Dockerfile for nginx-rtmp-module + FFmpeg from source with basic settings for streaming HLS. Built on Alpine Linux. - alfg/docker-nginx-rtmp - carlanton/m3u8-parser - HLS compliant m3u8 parser for Java.
- cdnbye/hlsjs-p2p-engine - A hls.js plugin to offload bandwidth from expensive traditional CDNs,while also maximizing a user’s viewing experience. - cdnbye/hlsjs-p2p-engine
- creeveliu/HTTPLiveStreamingTools - Latest Apple HLS tools copy from Apple Developer Center - creeveliu/HTTPLiveStreamingTools
- denex/hls-downloader - Download all video files from HLS (HTTP Live Streaming) VoD (Video on Demand) m3u8 playlist for local playback - denex/hls-downloader
- dhairav/URLSessionHLSDownload - A swift 3 implementation for downloading HLS content and play it back using native AVPlayer - dhairav/URLSessionHLSDownload
- epiclabs-io/hls-analyzer - Analyzer for HTTP Live Streams (HLS) content.
- fcanas/HLSCore - A collection of Swift packages for working with HLS - fcanas/HLSCore
- flavioribeiro/nginx-audio-track-for-hls-module -
🔉 Nginx module that generates audio track for HTTP Live Streaming (HLS) streams on the fly. - flavioribeiro/nginx-audio-track-for-hls-module - flavioribeiro/nginx-vod-module-fmp4-hls - Play fragmented mp4's on HLS using nginx-vod-module - flavioribeiro/nginx-vod-module-fmp4-hls
- globocom/hlsclient - Python HLS Client.
- globocom/m3u8 - M3U8 library
- grafov/m3u8 - Parser and generator of M3U8-playlists for Apple HLS. Library for Go language.
🎦 - grafov/m3u8 - iheartradio/open-m3u8 - Open Source m3u8 Parser.
- iliya-gr/mediasegmenter - HLS media segmenter.
- imsanthosh/HLS-Stream-health-monitoring-tool - HLS stream health monitoring utility tool provides an report of live HLS stream. This utility tool checks the all available bitrate streams and generates the report in html file format. HTML file i...
- krad/morsel -
📇 Swift library for creating HLS playlists and fragmented mp4 files. Works on Linux and iOS. - krad/morsel - lcy0321/m3u8-downloader - Download the ts files according to the given m3u8 file. - lcy0321/m3u8-downloader
- leandromoreira/http-video-streaming-troubleshooting - A collection of fixes / problem solutions to HTTP video streaming - leandromoreira/http-video-streaming-troubleshooting
- majamee/arch-ffmpeg-gpac - A ready-prepared video transcoding pipeline to create DASH/ HLS compatible video files & playlists - majamee/arch-ffmpeg-gpac
- mifi/hls-vod - HTTP Live Streaming with on-the-fly encoding of any video file for Web/Apple TV/iPhone/iPad/iPod - mifi/hls-vod
- muxinc/hlstools -
- nmrony/hlsdownloader - Downloads HLS Playlist file and TS chunks.
- nmrony/hlsdownloader-cli - Downloads HLS Playlist file and TS chunks using Terminal - nmrony/hlsdownloader-cli
- openHPI/nginx-hls-analyzer - Fork of fmsloganalyzer to adapt it for HLS streaming analyzes with nginx - openHPI/nginx-hls-analyzer
- osklil/hls-fetch - Download and decrypt videos served by the HTTP Live Streaming (HLS) protocol. - osklil/hls-fetch
- puemos/hls-downloader-chrome-extension - Google Chrome Extension for sniffing and downloading HTTP Live streams (HLS) - puemos/hls-downloader-chrome-extension
- qi-shun-wang/HLSDownloader - Download Crypted HLS with server key and play video as local playing on iOS device. - qi-shun-wang/HLSDownloader
- r-plus/HLSion - HTTP Live Streaming (HLS) download manager to offline playback. - r-plus/HLSion
- rounce/nginx-hls-module - Smooth Streaming Module fork.
- selsta/hlsdl - C program to download VoD HLS (.m3u8) files.
- shimberger/gohls - A server that exposes a directory for video streaming via web interface - shimberger/gohls
- shrimpgo/video-downloader - Helper to download HLS videos.
- t-mullen/hls-server - Middleware for serving HTTP Live Streaming (HLS) compatible media streams. - t-mullen/hls-server
- tjenkinson/mock-hls-server - Fake a live/event HLS stream from a VOD one. Useful for testing. - tjenkinson/mock-hls-server
- tozastation/HLS-Streaming - HLSを使ってみたです..
- videojs/m3u8-parser - An m3u8 parser.
- yuhuili-lab/Tide - Simple m3u8 and MPEG-DASH MPD video downloader using libcurl - yuhuili-lab/Tide
- zhaiweiwei/nginx-hls - Contribute to zhaiweiwei/nginx-hls development by creating an account on GitHub.
DASH
DASH tools, libraries, and resources.
- DASH IF Test Assets Database -
- DASH IF Test Assets Database -
- DASH Industry Forum | Catalyzing the adoption of MPEG-DASH -
- DASH-IF Live Media Ingest Protocol -
- Dash-Industry-Forum/DASH-IF-Conformance - This repository provides the source code for MPEG-DASH/DASH-IF Conformance Software/Validator. It has been extended according to further standards, such as CMAF, DVB-DASH, HbbTV, and CTA WAVE. - Da...
- Dash-Industry-Forum/ISOSegmentValidator - Contribute to Dash-Industry-Forum/ISOSegmentValidator development by creating an account on GitHub.
- Dash-Industry-Forum/Ingest -
- Dash-Industry-Forum/dash-live-source-simulator - DASH live source simulator providing reference live content. - Dash-Industry-Forum/dash-live-source-simulator
- Dash-Industry-Forum/dash.js - A reference client implementation for the playback of MPEG DASH via Javascript and compliant browsers. - Dash-Industry-Forum/dash.js
- Dash-Industry-Forum/media-tools - A collection of tools for analyzing, handling, and creating media and media containers - Dash-Industry-Forum/media-tools
- Eyevinn/dash-validator-js - MPEG DASH validator JS library.
- Eyevinn/docker-2dash - A Docker container to pre-package MPEG DASH on demand content - Eyevinn/docker-2dash
- Eyevinn/docker-dash-packager - Open source MPEG DASH packager for live and VOD.
- Eyevinn/vp9-dash - FFMpeg wrapper script to create VP9 MPEG-DASH packages - Eyevinn/vp9-dash
- Guidelines for Implementation: DASH-IF Interoperability Points -
- Viblast/dash-proxy - Easy downloading and mirroring of MPEG-DASH streams - Viblast/dash-proxy
- bitmovin/libdash - MPEG-DASH Access Library - Official ISO/IEC MPEG-DASH Reference Implementation - bitmovin/libdash
- carlanton/mpd-tools - DASH MPD tools for Java.
- dash-validator-js/README.md at master · Eyevinn/dash-validator-js - MPEG DASH validator JS library. Contribute to Eyevinn/dash-validator-js development by creating an account on GitHub.
- djvergad/dash - An MPEG/DASH client-server module for simulating rate adaptation mechanisms over HTTP/TCP. - djvergad/dash
- mahbubcseju/MPEG-DASH-Downloader - Contribute to mahbubcseju/MPEG-DASH-Downloader development by creating an account on GitHub.
- mp4dash | Bento4 -
- nickdesaulniers/combine-mpd - Combine MPEG DASH MPD manifest files.
- pokey909/dash_adaptation_simulator - Simulate bitrate switching algorithms based on real data traces - pokey909/dash_adaptation_simulator
- sangwonl/python-mpegdash - MPEG-DASH MPD(Media Presentation Description) Parser - sangwonl/python-mpegdash
- stultus/mp4-to-mpegdash-py - Python Script to convert a MP4 file into onDemand MPEG-DASH - stultus/mp4-to-mpegdash-py
- tchakabam/dash-proxy - Experimental MPEG-DASH media gateway - proxy on-the-fly modified MP4 segment metadata - tchakabam/dash-proxy
- theolampert/dash-server - Small, command-line HTTP/2 file server for serving MPEG-DASH content. - theolampert/dash-server
- videojs/mpd-parser - Contribute to videojs/mpd-parser development by creating an account on GitHub.
- videojs/videojs-contrib-dash - Video.js plugin for supporting the MPEG-DASH playback through a video.js player - videojs/videojs-contrib-dash
- zencoder/go-dash - A Go library for generating MPEG-DASH manifests.
Kubernetes
Reading & resources, relative to the world of kubernetes leveraged for video devs.
Encoding
Encoding tools, libraries, and resources.
- A Large-Scale Comparison of x264, x265, and libvpx - a Sneak Peek
- AK1194/Video-Compression-motion-estimation-block-video-encoder: This repository is about video compression, and more specifically about the motion estimation block (ME block) of a video encoder. It is a research project for developing an efficient motion - This repository is about video compression, and more specifically about the motion estimation block (ME block) of a video encoder. It is a research project for developing an efficient motion estima...
- Bento4 | Fast, Modern Tools and C++ Class Library for all your MP4 and DASH media format needs -
- CRF Guide (Constant Rate Factor in x264, x265 and libvpx) - What is the Constant Rate Factor?
- ClearSlide/Fantastic-Transcoder - Fantastic transcoder is a video transcoder which utilizes massively parallel compute to achieve ludicrous conversion speeds. - ClearSlide/Fantastic-Transcoder
- DolbyLaboratories/dlb_mp4demux: The Dolby MP4 streaming demuxer (dlb_mp4demux) is a software implementation of a demuxer of fragmented or unfragmented ISO base media file format (mp4). It supports demuxing of Dolby Digital (AC-3), Dolby Digital Plus (E-AC - The Dolby MP4 streaming demuxer (dlb_mp4demux) is a software implementation of a demuxer of fragmented or unfragmented ISO base media file format (mp4). It supports demuxing of Dolby Digital (AC-3)...
- GeoHaber/Video-Transcode - ffmpeg H264 H265 HEVC MPEG Video Trans-code Image-Matrix Collage - GeoHaber/Video-Transcode
- H.264 profiles and levels | Inside & Outside MediaCoder -
- Introducing SVT-AV1: a scalable open-source AV1 framework - by Andrey Norkin, Joel Sole, Kyle Swanson, Mariana Afonso, Anush Moorthy, Anne Aaron
- Live Video Transmuxing/Transcoding: FFmpeg vs TwitchTranscoder, Part 2 -
- Live Video Transmuxing/Transcoding: FFmpeg vs TwitchTranscoder, Part I -
- LordCrainer/transcoding_ffmpeg - Transcoding video usando ffmpeg.
- Ponyboy47/TranscodeVideo - A Swift wrapper around the transcode-video command - Ponyboy47/TranscodeVideo
- SmurfManX/ffmpeg-nvidia-adaptive-vod-transcoder - bash script which will detect video new file in folder and transcode it to adaprive bitrate - SmurfManX/ffmpeg-nvidia-adaptive-vod-transcoder
- Snowmix - The Swiss Army Knife of Open Source Live Video Mixing. - Snowmix Video Mixer
- VQEG/streamsim -
- Vilsol/Transcoder - Docker container to transcode videos in mounted volume to H265 using FFMPEG - Vilsol/Transcoder
- Zulko/moviepy -
- alfg/docker-bento4 - A dockerized Bento4 from source. Built on Alpine Linux. - alfg/docker-bento4
- andressspinetti/video-transcoder - AWS S3 + Lambda + Transcode.
- avTranscoder/avTranscoder - C++ API for LibAV / FFMpeg.d
- bbc/brave - Basic Real-time AV Editor - allowing you to preview, mix, and route live audio and video streams on the cloud - bbc/brave
- bbxnet/transcode -
- benvanik/node-transcoding - node.js video transcoding library.
- bfansports/CloudTranscode - Distributed videos and images encoding/transcoding using Amazon SFN, FFMpeg and ImageMagic - bfansports/CloudTranscode
- bloc97/Anime4K - A High-Quality Real Time Upscaler for Anime Video.
- bmhayward/Transcode - Tools to batch transcode and process videos.
- bookyo/express-ffmpeg - nodejs ffmpeg video transcode webui,基于nodejs的云转码系统 https://www.efvcms.com - bookyo/express-ffmpeg
- cannonbeach/ott-packager - OTT/ABR streaming encoder (H264/HEVC) and packager for DASH and HLS - cannonbeach/ott-packager
- cbsinteractive/transcode-orchestrator - Agnostic API orchestrating the transcoding of media assets across various cloud providers, previously https://github.com/cbsinteractive/video-transcoding-api - cbsinteractive/transcode-orchestrator
- chn-lee-yumi/distributed_ffmpeg_transcoding_cluster: 分布式FFMpeg转码集群。A FFMpeg transcoding cluster runs in variable CPUs, including ARM, x86, and others which can run linux. You can use it to run a RaspberryPi cluster. - 分布式FFMpeg转码集群。A FFMpeg transcoding cluster runs in variable CPUs, including ARM, x86, and others which can run linux. You can use it to run a RaspberryPi cluster. - chn-lee-yumi/distributed_ffmpeg_...
- cwinging/transcode - python transcode server.
- davidbt/djmediastreamer - A Django project that allows you to catalog and stream your videos (using FFmpeg to add subtitles and transcode). - davidbt/djmediastreamer
- dev-labs-bg/swift-video-generator -
- diego3g/gcloud-node-video-transcoding -
📹 🔥 Transcode Google Cloud Storage video files with Node.js and FFmpeg - diego3g/gcloud-node-video-transcoding - donmelton/other_video_transcoding - Other tools to transcode videos.
- donmelton/video_transcoding - Tools to transcode, inspect and convert videos.
- ericgriffin/fflock - Distributed video transcoding.
- escaped/django-video-encoding - django-video-encoding helps to convert your videos into different formats and resolutions. - escaped/django-video-encoding
- fluendo/fluster - Testing framework for decoders conformance.
- i4tv/gstreamill - encoder with hls output based on gstreamer.
- intel/gmmlib -
- intel/libva - Libva is an implementation for VA-API (Video Acceleration API) - intel/libva
- intel/media-driver -
- jliljebl/flowblade -
- just-work/django-video-transcoding - Simple video transcoding application for Django Framework - just-work/django-video-transcoding
- kees/transcode - Video Transcoding Tools.
- kwodzicki/video_utils - Python package containing many tools useful for converting video files to h264/h265 encoded MP4 or MKV files - kwodzicki/video_utils
- madebyhiro/codem-transcode - Offline video transcoder written in node.js.
- media-toolbox/avbroadcast: avbroadcast - republish media streams for mass consumption - avbroadcast - republish media streams for mass consumption - media-toolbox/avbroadcast
- mltframework/mlt - MLT Multimedia Framework.
- monking/transcode-web-video - Quickly transcode a source video to MP4, OGV, and WebM, with scale, bitrate, and screengrab options. - monking/transcode-web-video
- natsuite/NatReader-API - NatReader is a cross-platform video decoding API designed for transcoding applications. - natsuite/NatReader-API
- olaris / olaris-server - GitLab.com
- ptrandev/swift-encoder - A fire-and-forget shell script that encodes multiple video and audio files with ffmpeg. - ptrandev/swift-encoder
- quarkscript/media_works - Transcode video by ffmpeg with nvenc; normalize the volume; force dynamic range compression to the volume - quarkscript/media_works
- realeyes-media/demo-encoder - A nodejs encoding system based on ffmpeg and configured to write HLS streaming files to S3 - realeyes-media/demo-encoder
- realeyes-media/demo-encoder - A nodejs encoding system based on ffmpeg and configured to write HLS streaming files to S3 - realeyes-media/demo-encoder
- sambios/ffmpeg_transcoder - video transcode based on ffmpeg, support H264/HEVC and more. - sambios/ffmpeg_transcoder
- selsamman/react-native-transcode - Video Transcoder for React Native.
- senko/avtk -
- sitkevij/mp -
- snickers/snickers -
🍫 An open source alternative to the video cloud encoding services. - snickers/snickers - streamlink/streamlink - Streamlink is a CLI utility which pipes video streams from various services into a video player - streamlink/streamlink
- sw360cab/pyup-transcoder - a Python-based software to transcode videos and upload files to a remote server or S3-bucket - sw360cab/pyup-transcoder
- twitter/vireo: Vireo is a lightweight and versatile video processing library written in C++11 - Vireo is a lightweight and versatile video processing library written in C++11 - twitter/vireo
- voc/voctomix - Full-HD Software Live-Video-Mixer in python.
- vt-vl-lab/FGVC - [ECCV 2020] Flow-edge Guided Video Completion .
- xyk2/cloud-transcoder - Transcoding long (>1 hour) videos quickly and cost-effectively on GCP to adaptive HLS and MP4 mezzanine files. Up to 40x $ savings. - xyk2/cloud-transcoder
- zolinux/MediaArchiver - Transcode video files using FFMPEG and python3.
AV1
AV1 libraries, tools, examples, and resources. back to top
- AOMediaCodec/av1-rtp-spec - Current draft (HTML): https://aomediacodec.github.io/av1-rtp-spec/ - AOMediaCodec/av1-rtp-spec
- AV1 Codec - Working with the AV1 Codec Kevin Staunton-Lambert Solutions Architect R&D @kevleyski www.switch.tv
- AV1 decoder model - Description of the AV1 decoder model.
- Alkl58/NotEnoughAV1Encodes - GUI Handler for AV1 Encoders (aomenc, rav1e & svt-av1) - Alkl58/NotEnoughAV1Encodes
- Analysis of AV1 Encoding Tools & libaom Case Study - This article provides a performance analysis of AV1 encoding tools.
- Eyevinn/av1-player - Eyevinn AV1 player.
- Promising Initial Results with AV1 Testing - Streaming Learning Center - [vc_row margin_top=”30″][vc_column][vc_column_text]I began testing AV1 early this week. Briefly, my tests involve 16 ten-second clips in four genres (movies, sports, animations, gaming) and an “other” category (music video, nature video). I’ve completed the first set of tests with FFmpeg 4.3, benchmarking x264, x265, and the latest version of the Alliance for Open Media AV1 codec,…
- SVT-AV1: an open-source AV1 encoder and decoder - by Andrey Norkin, Joel Sole, Mariana Afonso, Kyle Swanson, Agata Opalach, Anush Moorthy, Anne Aaron
- aom - Git at Google -
- luziferius/av1transcoder - Transcode video files to the AV1 format using ffmpeg and libaom-av1. - luziferius/av1transcoder
- master-of-zen/Av1an: Cross-platform command-line AV1 encode toolkit - Cross-platform command-line AV1 encode toolkit. Contribute to master-of-zen/Av1an development by creating an account on GitHub.
- xiph/rav1e - The fastest and safest AV1 encoder.
HEVC
HEVC (h265) libraries, tools, examples, and resources. back to top
- Suggestion for x265's --tune film - Doom9's Forum - Suggestion for x265's --tune film High Efficiency Video Coding (HEVC)
- 515_hls_authoring_update -
- Apple Got It Wrong: Encoding Specs for HEVC in HLS - Adding HEVC to your HLS streams is looking like a no brainer, but if you decide to do so, you may not want to take Apple's HEVC encoding recommendations verbatim. You'll deliver noticeably higher quality video if you follow the advice detailed below.
- Encoding-for-HEVC -
- Eyevinn/docker-hevc - Docker container to create HEVC streaming packages - Eyevinn/docker-hevc
- Guide to HEVC/H.265 Encoding and Playback - HEVC's main advantage over H.264 is that it offers roughly double the compression ratio for the same quality. This means that a video file encoded with HEVC can occupy half the space of its H.264 equivalent with no noticeable change in quality, or the same amount of space with improved quality.
- HEVC in HLS: 10 Key Questions for Streaming Video Developers - Many who heard that Apple is adding support for HEVC playback in HTTP Live Streaming were left with more questions than answers. Here's what developers need to know.
- HEVC/H.265 Video Coding Standard: Part 1 - Dr. Dan Grois, Benjamin Bross, Dr. Detlev Marpe and Karsten Sühring HEVC/H.265 Video Coding Standart including the Range Extensions Scalable Extensions and M...
- HEVC/H.265 Video Coding Standard: Part 2 - Dr. Dan Grois, Benjamin Bross, Dr. Detlev Marpe and Karsten Sühring HEVC/H.265 Video Coding Standart including the Range Extensions Scalable Extensions and M...
- Standardization of High Efficiency Video Coding (HEVC) - Standardization of High Efficiency Video Coding (HEVC) Jens-Rainer Ohm, Institute of Communication Engineering, RWTH Aachen University, DE
- The Market Significance of Apple's Adopting HEVC: Here's What I Think - At the recent World Wide Developer's Conference (WWDC), Apple announced that the next versions of Safari, iOS, and tvOS will support HLS with HEVC encoded video. This puts Apple firmly in the HEVC camp, with the Alliance for Open Media camp (Amazon, Cisco, Intel, Google, Microsoft, Mozilla, Netflix,
- Video Quality Evaluation Methodology and Verification Testing of HEVC Compression Performance -
- amaurypm/transcode2H265 - Unattended video transcoder to H265 and ACC codecs, in MKV containers. - amaurypm/transcode2H265
- multicoreware / x265 / wiki / Home — Bitbucket -
- x265 Documentation — x265 documentation -
VP9
VP9 libraries, tools, examples, and resources. back to top
Transport
Transport protocols, libraries, and resources.
- Wifibroadcast – Analog-like transmission of live video data - Wifibroadcast is a project aimed at the live transmission of HD video (and other) data using wifi radios. One prominent use case is to transmit camera images for a first person view (FPV) of remote…
RIST
Reliable Internet Stream Transport protocol back to top
- RIST Forum - The RIST forum manage the Reliable Internet Stream Transport (RIST), for transporting live video over unmanaged networks.
- librist - A library that can be used to easily add the RIST protocol to your application.
RTMP
Real-Time Messaging Protocol back to top
- Create your own video streaming server with Linux - Using Nginx to create a streaming server using RTMP and nginx
- The Real-Time Messaging Protocol Explained -
SRT
Secure Reliable Transport protocol back to top
- SRT Alliance - Home page for the SRT protocol
- SRT Cookbook - More in-depth technical documentaion on the SRT protocol and library.
- SRT Open Source project -
- Streaming With SRT Protocol in OBS -
Streaming Server and Storage
*Packagers, origins (s3, gcs), and data movement for linear and finite playback. *
- OpenVisualCloud/Smart-City-Sample - The smart city reference pipeline shows how to integrate various media building blocks, with analytics powered by the OpenVINO™ Toolkit, for traffic or stadium sensing, analytics and management tas...
- Red5/red5-server - Red5 Server core.
- Roverr/rtsp-stream - Out of box solution for RTSP - HLS live stream transcoding. Makes RTSP easy to play in browsers. - Roverr/rtsp-stream
- ant-media/Ant-Media-Server - Ant Media Server supports RTMP, RTSP, WebRTC and Adaptive Bitrate. It can also record videos in MP4, HLS and FLV - ant-media/Ant-Media-Server
- haiwen/seafile - High performance file syncing and sharing, with also Markdown WYSIWYG editing, Wiki, file label and other knowledge management features. - haiwen/seafile
- ireader/media-server - RTSP/RTP/RTMP/FLV/HLS/MPEG-TS/MPEG-PS/MPEG-DASH/MP4/fMP4 - ireader/media-server
- muxinc/stream.new - The repo for https://stream.new.
- openfun/marsha -
🎬 A self-hosted opensource LTI video provider - openfun/marsha - openstack/swift - OpenStack Storage (Swift).
- ossrs/srs - SRS is a simple live streaming cluster, a simple joy. - ossrs/srs
- prologic/tube -
📺 a Youtube-like (without censorship and features you don't need!) Video Sharing App written in Go which also supports automatic transcoding to MP4 H.265 AAC, multiple collections and R... - rclone/rclone - rsync for cloud storage - Google Drive, Amazon Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Cloudfiles, Google Cloud Storage, Yandex Files - rclone/rclone
- streamaserver/streama - Self hosted streaming media server. https://docs.streama-project.com/ - streamaserver/streama
Specs and Standards
Latest offical specs and standards related to video streaming.
Industry Forums
Industry forums relative to video streaming. back to top
- CTA | WAVE Project - The WAVE (Web Application Video Ecosystem) Project, hosted by the Consumer Technology Association (CTA)®, aims to improve how internet-delivered commercial video is handled on consumer electronics devices and to make it easier for content creators to distribute video to those devices.
- DASH Industry Forum | Catalyzing the adoption of MPEG-DASH -
- Home | Streaming Video Alliance - Making Streaming Video Better Streaming video is exploding in popularity. Consumers are watching more video online across a myriad of devices. But, the streaming experiences, across providers, can be wildly different from each other which ultimately hurts adoption. The problem is a lack of colla ...
MPEG
*MPEG meetings, standards, and resources. * back to top
- ISO Base Media File Format Reference Software -
- MPEG About -
- MPEG High Efficiency Image File Format (HEIF) -
- MPEG Meetings -
- MPEG future -
- MPEG home page -
- MPEG point cloud compression -
- MPEG: What Happened? - At the end of last month, MPEG co-founder Leonardo Chiariglione announced the 'MPEG is closed.' That's not quite true, but it is undergoing a reorganization. So what does that mean for the organization and the new codec standards it is bringing out this year?
- Official Registration Authority for the ISOBMFF family of standards -
Players
Client players, libraries, tools, and examples.
- Building native video Pins - Billions of videos are viewed across the internet every day, but video on Pinterest is unique. On Pinterest, you’ve always been able to save videos from around the web, and in 2013, we made it…
- IvanoBilenchi/Adaptive-Video-Player - HLS player for iOS that supports manual selection for the quality of adaptive streams - IvanoBilenchi/Adaptive-Video-Player
- Samples players for dash.js -
- adrg/libvlc-go - Go bindings for libVLC and high-level media player interface.
- davidAgo4g/VideoPlayer-iOS - A library based on FFMPEG to play video files on iOS using OpenGLES and AudioQueue. Build with theos - davidAgo4g/VideoPlayer-iOS
- imoreapps/ffmpeg-avplayer-for-ios-tvos - A tiny but powerful iOS and Apple TV OS av player framework that's based on the FFmpeg library. - imoreapps/ffmpeg-avplayer-for-ios-tvos
- lightspark/lightspark - An open source flash player implementation.
- matvp91/indigo-player - Highly extensible, modern, JavaScript video player. Handles MPEG-Dash / HLS / MPEG-4 and is built on top of the HTML5 video element. - matvp91/indigo-player
- mpv-player/mpv -
🎥 Command line video player. - nytimes/ios-360-videos - NYT360Video plays 360-degree video streamed from an AVPlayer on iOS. - nytimes/ios-360-videos
- peak3d/inputstream.adaptive - kodi inputstream addon for several manifest types.
- ruffle-rs/ruffle - A Flash Player emulator written in Rust.
- tjenkinson/media-element-syncer - Synchronise two or more HTML5 media elements.
- ustwo/videoplayback-ios - Swift AVPlayer wrapper using the VIPER architecture. Currently a work in progress - ustwo/videoplayback-ios
- videolan/libvlcsharp - Cross-platform .NET/Mono bindings for LibVLC
- videolan/vlc - VLC media player - All pull requests are ignored, please follow https://wiki.videolan.org/Sending_Patches_VLC/ - videolan/vlc
- vitalets/awesome-smart-tv -
⚡ A curated list of awesome resources for building Smart TV apps - vitalets/awesome-smart-tv
Android
Android and fireTV tools, sdks, and examples. back to top
- google/ExoPlayer - ExoPlayer is an application level media player for Android.
- mkaflowski/HybridMediaPlayer - Android music and video player. Uses ExoPlayer 2 and MediaPlayer for lower APIs and makes using ExoMediaPlayer easier. If you need advanced options such as handling Chromecast it is delivered by Ex...
Chromecast
Chromecast app tools, libraries,and examples. back to top
- Build a basic Cast Receiver -
- googlecast/CastReceiver - Reference Receiver: CastReceiver shows how to develop a fully Cast Design Checklist compliant receiver with additional features. - googlecast/CastReceiver
iOS tvOS
AVPlayer, playback tools, sdks, and examples. back to top
- BrikerMan/BMPlayer - A video player for iOS, based on AVPlayer, support the horizontal, vertical screen. support adjust volume, brightness and seek by slide, support subtitles. - BrikerMan/BMPlayer
- DaMingShen/SUCacheLoader - AVPlayer
- DeviLeo/DLGPlayer - A media player for iOS based on FFmpeg 4.0.
- MPEGDASHPlayer/MPEGDASH-iOS-Player - The MPEG-DASH Player iOS Application.
- SRGSSR/srgmediaplayer-apple - An advanced media player library, simple and reliable - SRGSSR/srgmediaplayer-apple
- StyleShare/HLSCachingReverseProxyServer - A simple local reverse proxy server for HLS segment cache - StyleShare/HLSCachingReverseProxyServer
- VeinGuo/VGPlayer -
📺 A simple iOS video player by Vein. - google/shaka-player-embedded - Shaka Player in a C++ Framework.
- googleads/google-media-framework-ios - The Google Media Framework (GMF) is a lightweight media player designed to make video playback and integration with the Google IMA SDK on iOS easier. - googleads/google-media-framework-ios
- hanton/HTY360Player - Open Source iOS 360 Degree Panorama Video Player.
- iina/iina - The modern video player for macOS.
- kodlian/TVVLCPlayer - TVVLCPlayer lets you integrate easily a powerfull video player with playback control views to your tvOS apps. - kodlian/TVVLCPlayer
- libobjc/SGPlayer - A powerful media play framework for iOS, macOS, and tvOS. - libobjc/SGPlayer
- noreasonprojects/ModernAVPlayer - ModernAVPlayer is a persistence AVPlayer wrapper.
- piemonte/Player -
▶️ video player in Swift, simple way to play and stream media on iOS/tvOS - piemonte/Player - renzifeng/ZFPlayer - Support customization of any player SDK and control layer
- rinsuki/HWAcceleratedVP9Player - Hardware Accelerated VP9 Player in macOS 11.0 Big Sur beta 4+ - rinsuki/HWAcceleratedVP9Player
- tanersener/mobile-ffmpeg - FFmpeg for Android, iOS and tvOS.
- vitoziv/VIMediaCache - Cache media file while play media using AVPlayer.
- wxxsw/GSPlayer -
⏯ Video player, support for caching, preload, fullscreen transition and custom control view. 视频播放器,支持边下边播、预加载、全屏转场和自定义控制层 - wxxsw/GSPlayer - xiewei-wayne/FFEngine.framework - FFEngine framework is a high performance player sdk for iOS based on ffmpeg. - xiewei-wayne/FFEngine.framework
- xiewei-wayne/rtmp-video-player-for-ios - Based on FFEngine framework, a rtmp video player for apple iOS devices. - xiewei-wayne/rtmp-video-player-for-ios
Roku
Roku app tools, libraries,and examples. back to top
- Audio and Video Support - Roku provides the simplest way to stream entertainment to your TV. On your terms. With thousands of available channels to choose from.
- CCecilia/roku-suite-desktop - Tool suite for Roku channel development.
- MediaBrowser/Emby.Roku - Emby for Roku.
- Playing Video Examples - Roku provides the simplest way to stream entertainment to your TV. On your terms. With thousands of available channels to choose from.
- Roku - Roku provides the simplest way to stream entertainment to your TV. On your terms. With thousands of available channels to choose from.
- T-Pham/RokuJSONHelperNode - Roku SceneGraph JSON Helper.
- Video Node Docs - Roku provides the simplest way to stream entertainment to your TV. On your terms. With thousands of available channels to choose from.
- XML + Code + Good times = RSG Application - Written by John Zolezzi — April 6th 2018
- anachirino/bifserver - Server which creates and serves up BIF files for Roku players - anachirino/bifserver
- briandunnington/Redoku - Redux for Roku.
- briandunnington/Roact - React for Roku
- chrishoffman/brightscript-json - JSON parser for Roku's proprietary Brightscript language - chrishoffman/brightscript-json
- dphang/roku-lib - Some useful Roku utilities.
- exegersha/network-benchmark - Proof of concept. Roku app implementing network layer using scene graph nodes. - exegersha/network-benchmark
- gabek/Amplitude-Brightscript - A Brightscript (Roku) library for submitting analytics to Amplitude - gabek/Amplitude-Brightscript
- gabek/SegmentIO-Brightscript - A BrightScript interface to SegmentIO event tracking - gabek/SegmentIO-Brightscript
- georgejecook/rooibos - simple, flexible, fun brightscript test framework for roku scenegraph apps - georgejecook/rooibos
- juliomalves/roku-libs - BrightScript Utility Libraries.
- karimkawambwa/roku-framework - Roku app framework to make app creation easier and structured. Under construction - karimkawambwa/roku-framework
- karimkawambwa/roku-framework-example - This is a project to show how the boku-framework by Karim Kawambwa is used - karimkawambwa/roku-framework-example
- mrkjffrsn/RokuFramework - An opensource Roku framework.
- nod/rokumote - osx app for controlling your roku because sometimes your kids lose the remote - nod/rokumote
- rkoshak/sensorReporter - A python based service that receives sensor inputs and publishes them over REST (should work with any API but mainly tested with openHAB) or MQTT. It can also receive commands and perform an action...
- rokucommunity/brighterscript-formatter - A code formatter for BrighterScript (and BrightScript) - rokucommunity/brighterscript-formatter
- rokucommunity/vscode-brightscript-language - A Visual Studio Code extension for Roku's BrightScript language - rokucommunity/vscode-brightscript-language
- rokudev/RAF4RSG-sample - sample demonstrating the Roku Advertising Framework in SceneGraph - rokudev/RAF4RSG-sample
- rokudev/SDK-Development-Guide - Contribute to rokudev/SDK-Development-Guide development by creating an account on GitHub.
- rokudev/SceneGraphDeveloperExtensions - Contribute to rokudev/SceneGraphDeveloperExtensions development by creating an account on GitHub.
- rokudev/automated-channel-testing - Roku Automated Channel Testing: Selenium-based WebDriver + Robot Framework + Samples - rokudev/automated-channel-testing
- rokudev/dolby-audio-sample - A collection of Dolby test content available in different streaming protocols. - rokudev/dolby-audio-sample
- rokudev/samples - Collection of sample channels for side-loading on your Roku device - rokudev/samples
- rokudev/unit-testing-framework - Tool for automating and testing Roku channels.
- rokudev/videoplayer-channel - SceneGraph version of the SDK1 VideoPlayer Channel - rokudev/videoplayer-channel
- rolandoislas/BrightWebSocket - RFC 6455 WebSocket Library for the Roku.
- schtanislau/brightscript-state-machine - State management for Roku channel..
- sjbarag/brs-testbed - A simple, buildable Roku channel that executes arbitrary BrightScript files. - sjbarag/brs-testbed
- veeta-tv/jasmine-roku - Example jasmine tests using node-roku-test for verifying Roku channel behavior - veeta-tv/jasmine-roku
- willowtreeapps/ukor - A Roku build tool with support for build flavors.
- zype/zype-roku-scenegraph - Contribute to zype/zype-roku-scenegraph development by creating an account on GitHub.
Smart TVs
Web
Web browser player, tools, sdks, and examples. back to top
- Chimeejs/chimee - a video player framework aims to bring wonderful experience on browser - Chimeejs/chimee
- Dash JavaScript Player -
- Eyevinn/abr-player-chrome - Chrome extension that uses Eyevinn HTML player to be able to play HLS and MPEG-DASH natively - Eyevinn/abr-player-chrome
- Eyevinn/channel-engine-multiview - A multiview frontend for Eyevinn Channel Engine.
- Eyevinn/docker-html5player - A Docker containerized HTML5 player based on Shaka Player - Eyevinn/docker-html5player
- Eyevinn/eyevinn-player - Throttled video player to test video streams.
- Eyevinn/ott-multiview - This is a web based multiview screen for HLS and MPEG-DASH streams based on hls.js and Shaka Player. - Eyevinn/ott-multiview
- GeneticGenesis/phils-players - A collection of video players with vaguely simple GUIs for video engineers. - GeneticGenesis/phils-players
- MoePlayer/DPlayer -
🍭 Wow, such a lovely HTML5 danmaku video player - MoePlayer/DPlayer - bbc/bigscreen-player - Simplified media playback for bigscreen devices.
- bytedance/xgplayer - A HTML5 video player with a parser that saves traffic - bytedance/xgplayer
- epiclabs-io/epic-video-comparator - Javascript library which implements a video comparator component: two overlaped and synchronized video players each one playing an independent source. - epiclabs-io/epic-video-comparator
- foxford/react-hls - React component for HLS player.
- mediaelement/mediaelement - HTML5 <audio> or <video> player with support for MP4, WebM, and MP3 as well as HLS, Dash, YouTube, Facebook, SoundCloud and others with a common HTML5 MediaElement API, ...
- sampotts/plyr - A simple HTML5, YouTube and Vimeo player.
- video-dev/hls.js - JavaScript HLS client using Media Source Extension - video-dev/hls.js
- videogular/videogular - The HTML5 video player for AngularJS.
- videojs/http-streaming - HLS, DASH, and future HTTP streaming protocols library for video.js - videojs/http-streaming
- videojs/video.js - Video.js - open source HTML5 & Flash video player.
- vimond/replay - A React video player facilitating adaptive stream playback with custom UI and a React-friendly API. - vimond/replay
FFMPEG
FFMPEG libraries, configs, tools, and examples.
- 2501world/transcoding-performance-trial: Runs FFmpeg transcoding processes simultaneously and measures CPU performance - Runs FFmpeg transcoding processes simultaneously and measures CPU performance - 2501world/transcoding-performance-trial
- AlvianPrasetya/transcoding: FFmpeg transcoders benchmark - FFmpeg transcoders benchmark. Contribute to AlvianPrasetya/transcoding development by creating an account on GitHub.
- Azure-Samples/batch-python-ffmpeg-tutorial - A Python application that uses Batch to process media files in parallel with the ffmpeg open-source tool. - Azure-Samples/batch-python-ffmpeg-tutorial
- CUDA GPU Accelerated h264/h265/HEVC Video Encoding with ffmpeg - How to use CUDA GPU hardware encoding with ffmpeg to encode h264 and h264 HEVC movies in high quality and highspeed with our optimized parameter settings.
- Ch00k/ffmpy -
- ColorlabMD/FFCommand_Engine - Create and execute FFmpeg commands.
- Correcting for audio/video sync issues with the ffmpeg program’s ITSOFFSET switch - The ffmpeg program has numerous “switches” that help to adjust and convert audio and video files. Some of them are not explained very well in the documentation, and many websites have c…
- ElderByte-/docker-java-media - JRE 10 (Java 10) and media tools (ffmpeg).
- FFmpeg/FFV1 - The FFV1 lossless video codec specification.
- FFmpeg/FFmpeg - Mirror of git://source.ffmpeg.org/ffmpeg.git.
- FallingSnow/h265ize - A node utility utilizing ffmpeg to encode videos with the hevc codec. - FallingSnow/h265ize
- Generate MPEG-TS from file with ffmpeg - In this post I will describe how an MPEG-TS multicast stream can be generated with ffmpeg by looping an MP4 file and a Docker container…
- How to decode a video (memory file / byte string) and step through it frame by frame in python? - I am using python to do some basic image processing, and want to extend it to process a video frame by frame. I get the video as a blob from a server - .webm encoded - and have it in python as a b...
- How to generate a fmp4 hls live stream with FFMPEG - ffmpeg -re -stream_loop -1 -i voweb.mp4 -hls_fmp4_init_filename init.mp4 -vf “settb=AVTB,setpts=’trunc(PTS/1K)1K+st(1,trunc(RTCTIME/1K))-1Ktrunc(ld(1)/1K)’,\ drawtext=fontfile=…
- Is it possible to get FFmpeg to use hardware acceleration for HEVC transcoding on macOS? - I have a MacBook Pro with a Kaby Lake processor running macOS High Sierra (10.12). Is it possibe somehow to setup FFmpeg to utilize hardware encoding of HEVC with toolbox, instead of libx265?
- Kagami/ffmpeg.js - Port of FFmpeg with Emscripten.
- Loop file and generate multiple video bitrates muxed in MPEG-TS with ffmpeg - In a previous post I described how an MPEG-TS multicast stream can be generated with ffmpeg by looping an MP4 file. In this post I will…
- Mozilla-Open-Lab-Etwas/Video-Transcoder - FFMPEG Wasm Video Transcoder.
- NVIDIA/nvidia-docker - Build and run Docker containers leveraging NVIDIA GPUs - NVIDIA/nvidia-docker
- Saurabh702/ffmpeg-scale-benchmark -
- TenPennyTV/worker-ffmpeg - Worker that is used to transcode video to supported formats and resolutions - TenPennyTV/worker-ffmpeg
- This gist will generate an Intel QSV-enabled FFmpeg build using the open source Intel Media SDK. Testbed used: Ubuntu 18.04LTS. A fallback is also provided for the intel vaapi driver where needed. - This gist will generate an Intel QSV-enabled FFmpeg build using the open source Intel Media SDK. Testbed used: Ubuntu 18.04LTS. A fallback is also provided for the intel vaapi driver where needed. ...
- Understanding Rate Control Modes (x264, x265, vpx) - What is “rate control”? It’s what a video encoder does when it decides how many bits to spend for a given frame. The goal of (lossy) video encoding is to sav...
- VCDP/FFmpeg-patch - This repository contains a collection of FFmpeg* patches and samples to enable CNN model based video analytics capabilities (such as object detection, classification, recognition) in FFmpeg* framew...
- WritingMinds/ffmpeg-android-java - Android java library for FFmpeg binary compiled using https://github.com/writingminds/ffmpeg-android - WritingMinds/ffmpeg-android-java
- albanie/shot-detection-benchmarks: A comparison of ffmpeg, Shotdetect and PySceneDetect for shot transition detection - A comparison of ffmpeg, Shotdetect and PySceneDetect for shot transition detection - albanie/shot-detection-benchmarks
- bcoudurier/FFmbc - FFmpeg customized for broadcast and professional usage - bcoudurier/FFmbc
- binoculars/aws-lambda-ffmpeg - An S3-triggered Amazon Web Services Lambda function that runs your choice of FFmpeg
🎬 commands on a file🎥 and uploads the outputs to a bucket. - binoculars/aws-lambda-ffmpeg - bramp/ffmpeg-cli-wrapper - Java wrapper around the FFmpeg command line tool.
- cash2one/VideoTranscoding-Backend - This application transcode a video that you send on all formats what you want and diferent resolutions. - cash2one/VideoTranscoding-Backend
- compile and install latest ffmpeg source as pkg - compile and install latest ffmpeg source as pkg. GitHub Gist: instantly share code, notes, and snippets.
- cuda/ubuntu16.04/ffmpeg-gpu/Dockerfile · master · nvidia / container-images / samples - Sample Dockerfiles for Docker Hub images
- dschere/industrial-ffmpeg - A high level transcoder using ffmpeg that in addition to transcoding provides real time stats, detection of bad video, integration with nginx for on demand video - dschere/industrial-ffmpeg
- ffmprovisr -
- fluent-ffmpeg/node-fluent-ffmpeg - A fluent API to FFMPEG (http://www.ffmpeg.org).
- git-developer/vaapi-video-converter - A docker-based video converter that uses VAAPI-compatible hardware for transcoding - git-developer/vaapi-video-converter
- gitfu/manifesto - Manifesto is an HLS tool for creating multiple variants, a master.m3u8 file, and converting 608 captions to segmented webvtt subtitles via ffmpeg. - gitfu/manifesto
- imageio/imageio-ffmpeg - FFMPEG wrapper for Python.
- intel/intel-vaapi-driver - VA-API user mode driver for Intel GEN Graphics family - intel/intel-vaapi-driver
- intel/vaapi-fits -
- jonghwanhyeon/python-ffmpeg - A python interface for FFmpeg using asyncio.
- jrottenberg/ffmpeg - Docker build for FFmpeg on Ubuntu / Alpine / Centos 7 / Scratch - jrottenberg/ffmpeg
- kewlbear/FFmpeg-iOS-build-script - Shell scripts to build FFmpeg for iOS and tvOS.
- kkroening/ffmpeg-python -
- kokorin/Jaffree - Java ffmpeg and ffprobe command-line wrapper.
- linuxserver/docker-ffmpeg -
- markus-perl/ffmpeg-build-script - The FFmpeg build script provides an easy way to build a static FFmpeg on OSX and Linux with non-free codecs included. - markus-perl/ffmpeg-build-script
- microshow/RxFFmpeg -
🔥 RxFFmpeg 是基于 ( FFmpeg 4.0 + X264 + mp3lame + fdk-aac ) - mitio/useful-ffmpeg-commands: A collection of FFmpeg commands taken from practice - A collection of FFmpeg commands taken from practice - mitio/useful-ffmpeg-commands
- mugiseyebrows/mugi-ffmpeg - Gui for ffmpeg to simplify transcoding and embeding audio / subtitles in mkv videos - mugiseyebrows/mugi-ffmpeg
- nextbreakpoint/ffmpeg4java - FFmpeg4Java provides a JNI wrapper of FFmpeg library - nextbreakpoint/ffmpeg4java
- okorach/audio-video-tools - Python based batch tools to transcode audio and video conveniently (leverages FFMpeg) - okorach/audio-video-tools
- phaux/node-ffmpeg-stream - Node.js bindings to ffmpeg command, exposing stream based API - phaux/node-ffmpeg-stream
- pyke369/sffmpeg - Full-featured static FFmpeg build helper.
- rdp/ffmpeg-windows-build-helpers - Helper script for cross compiling some media tools for windows, like customizable ffmpeg.exe (with or without non-free components, etc), and some other bonuses like mplayer, mp4box, mxf, etc. - rdp...
- scivision/PyLivestream - Pure Python FFmpeg-based live video / audio streaming to YouTube, Facebook, Periscope, Twitch, and more - scivision/PyLivestream
- serverlesspub/ffmpeg-aws-lambda-layer - FFmpeg/FFprobe AWS Lambda layer.
- silencecorner/jre-ffmpeg-apline - Dockerfile jre8 and ffmpeg - silencecorner/jre-ffmpeg-apline
- slhck/ffmpeg-encoding-course - An introduction to FFmpeg and its tools.
- slhck/rate-control-tests: Tests for different rate control modes in x264 - Tests for different rate control modes in x264. Contribute to slhck/rate-control-tests development by creating an account on GitHub.
- sunhailin-Leo/AutoConfigShellScript: Automatically compile and configure ffmpeg, Python 3.7.2(default), PyAV, OpenCV, Keras, Tensorflow(CPU Mode) and other relative environment. - Automatically compile and configure ffmpeg, Python 3.7.2(default), PyAV, OpenCV, Keras, Tensorflow(CPU Mode) and other relative environment. - sunhailin-Leo/AutoConfigShellScript
- transitive-bullshit/awesome-ffmpeg -
👻 A curated list of awesome FFmpeg resources. - unosquare/ffmediaelement - FFME: The Advanced WPF MediaElement (based on FFmpeg) - unosquare/ffmediaelement
- videomorph-dev/videomorph - A user-friendly Video Converter based on FFMPEG and writen in Python/PyQt5. - videomorph-dev/videomorph
- x264 FFmpeg Options Guide - Linux Encoding -
Audio
Audio libraries, tools, and examples.
- Adjust and Normalize Your Music Files with FFMPEG - Make Tech Easier - If your music files are too loud, too soft, or have obnoxious peaks and irregular volume, you can use FFmpeg to normalize your music files. Here's how.
- Audio Loudness | Conversational Actions | Google Developers -
- Audio normalization with ffmpeg using loudnorm (ebur128) filter -
- EBU Evaluations of Multichannel Audio Codecs -
- EBU R128 Introduction - Florian Camerer - Florian Camerer gives an introduction to the European Broadcasting Union's R128 Broadcast Standard and speaks in general about perceived loudness, peak norma...
- How to Set Audio Levels for Video - Bad sound can easily ruin good footage. Use these tips when it comes time to set audio levels for video and film projects.
- Loudness Explained Page | Music Tribe - TC Electronic - tcelectronic,
- Quick Tutorial: How to Increase Volume in Audacity [2019 Update] - How to increase volume in Audacity? This article will guide you to change volume in Audacity and its alternative tool. You can pick up one of them to edit volume in Audacity as you like.
- ReplayGain - Audacity Forum -
- Techniques for Establishing and Maintaining Audio Loudness for Digital Television -
- bbc/audio-offset-finder: Find the offset of an audio file within another audio file - Find the offset of an audio file within another audio file - bbc/audio-offset-finder
- hybrik/hybrik-samples - Hybrik Samples.
- normalizing Audio -
- openai/jukebox - Code for the paper "Jukebox: A Generative Model for Music" - openai/jukebox
- quodlibet/mutagen - Python module for handling audio metadata.
- slhck/ffmpeg-normalize - Audio Normalization for Python/ffmpeg.
- superpoweredSDK/Low-Latency-Android-iOS-Linux-Windows-tvOS-macOS-Interactive-Audio-Platform - 🇸Superpowered Audio, Networking and Cryptographics SDKs. High performance and cross platform on Android, iOS, macOS, tvOS, Linux, Windows and modern web browsers. - superpoweredSDK/Low-Latency-Andr...
- webmproject/opus-dash: Specification for Encapsulating Opus Audio in ISO-BMFF Container - Specification for Encapsulating Opus Audio in ISO-BMFF Container - webmproject/opus-dash
Subtitles and Captions
Subtitling & Closed Caption libraries, tools, and examples.
- BingLingGroup/autosub - Command-line utility to transcribe/translate from video/audio/subtitles to subtitles - BingLingGroup/autosub
- CCExtractor/ccextractor: CCExtractor - Official version maintained by the core team - CCExtractor - Official version maintained by the core team - CCExtractor/ccextractor
- Can ffmpeg extract closed caption data - I am currently using ffmpeg to convert videos in various formats to flv files. One request has also come up and that is to get closed caption info out o the file as well. Does anyone have any exper...
- Closed Captioning and Subtitling Products - MacCaption and CaptionMaker Overview - Telestream - Telestream Closed Captioning: MacCaption and CaptionMaker allow you to easily author, edit, create subtitles, and encode and repurpose video captions for television, web and mobile delivery
- Comcast/caption-inspector - Caption Inspector is a reference decoder for Closed Captions (CEA-608 and CEA-708). - Comcast/caption-inspector
- Comcast/cea-extractor - Parsing and display logic for CEA-608 caption data in fragmented MP4 files. - Comcast/cea-extractor
- DVB captions in media convert - ** If your output captions are DVB-Sub, set them up in your outputs according to the following information.
- Dash-Industry-Forum/cea608.js - A JavaScript project designed to extract CEA-608 captions. - Dash-Industry-Forum/cea608.js
- EBU-TT Live Interoperability Toolkit -
- Eyevinn/srt-metadata-extractor - Contribute to Eyevinn/srt-metadata-extractor development by creating an account on GitHub.
- IMSC 1.0.1 Text test content -
- IMSC 1.1 Image test content -
- IMSC 1.1 Text test content -
- IMSC Specification -
- IMSC renderer -
- IMSC validator -
- The ultimate guide to CCs -
- Web Video Text Tracks Format (WebVTT) - Web Video Text Tracks Format (WebVTT) is a format for displaying timed text tracks (such as subtitles or captions) using the track element.
- abhirooptalasila/AutoSub - AutoSub is a CLI application to generate subtitle file (.srt) for any video file using Mozilla DeepSpeech - abhirooptalasila/AutoSub
- abinashmeher999/voice-data-extract - A command line interface to combine text information from subtitles with voice data in the video. Provides a convenient way to generate training data for speech-recognition purposes. - abinashmeher...
- active-video/subtitles - AV Platform MPEG DASH subtitles.
- apm1467/videocr - Extract hardcoded subtitles from videos using machine learning - apm1467/videocr
- awslabs/serverless-subtitles - Serverless Subtitles can handle a video input, extract the sound, transcript it and generate different subtitle files for your video. - awslabs/serverless-subtitles
- cessen/subs_extract - Extracts per-sentence subtitles + audio from a subtitle file + video file. - cessen/subs_extract
- federicocalendino/pysub-parser - Utility to extract the text and timestamps of a subtitle file (.srt, .ssa, .sub, .txt). - federicocalendino/pysub-parser
- glut23/webvtt-py - Read, write and segment WebVTT caption files in Python.
- jnorton001/pycaption-cli - A command line interface for the pycaption module. - jnorton001/pycaption-cli
- opencoconut/webvtt-ruby - WebVTT Ruby parser and segmenter.
- osk/node-webvtt - Parse WebVTT files, segments and generates HLS playlists for them.
- pbs/pycaption - Python module to read/write popular video caption formats - pbs/pycaption
- sandflow/imscJS -
- shawnsky/extract-subtitles - Extract Subtitles From Video
- shinobizero/audio_transcriber - Transcodes audio & video files to text, supports MP3, M4A, WAV, MP4, MKV, AVI, MPG & MPEG. No Online API's. Python 3 - shinobizero/audio_transcriber
- smacke/subsync - Automagically synchronize subtitles with video.
- statsbiblioteket/tv-subtitle-extraction - System for extraction of subtitles from TV broadcasts. - statsbiblioteket/tv-subtitle-extraction
- szatmary/libcaption - Free open-source CEA608 / CEA708 closed-caption encoder/decoder - szatmary/libcaption
- wargarblgarbl/libgosubs -
- xinnjie/extract-subtitle - extract subtitles from video.
Ads
Ads in streaming video related libraries, tools, examples, and resources.
- Eyevinn/adxchange-engine - Eyevinn Adxchange Engine is a microservice placed between the server-side ad-insertion component and the adserver or SSP - Eyevinn/adxchange-engine
- Eyevinn/vast-info - Parse a VAST or VMAP to show valuable information in a readable format - Eyevinn/vast-info
- Eyevinn/vmapproxy - A simple VMAP / VAST proxy.
- OpenVisualCloud/Ad-Insertion-Sample - The ad-insertion reference pipeline shows how to integrate various media building blocks, with analytics powered by the OpenVINO™ Toolkit, for intelligent server-side ad insertion. - OpenVisualClou...
- SCTE-104/35 and Beyond: A Look at Ad Insertion in an OTT World - Ad Insertion is a very important part of many video delivery systems because of the monetization aspect—it generates revenue!
- Understanding Real-time Bidding for AVOD Services - We have in previous blog articles described the principles behind server-side ad-insertion and described some of the challenges with it as…
- Understanding Server-Side Dynamic Ad Insertion - In this post we’re explaining the principles behind Server-Side Dynamic Ad Insertion technology. If you are already familiar with video…
- erikkaashoek/Comskip - A free commercial detector.
Vendors
Video indurstry's various vendors products and documentations.
- switch media adease -
- switch media live2vod -
- switch media mediahq -
- switch media universal player -
Dolby
Dolby specs, libraries, examples, and tools. back to top
- Dolby Vision for Content Creators | Dolby Laboratories - The Dolby Vision integrated workflow gives you the tools needed to efficiently create wide color gamut and high dynamic range content and ensures that the look you create in the color suite stays true when experienced across across a multitude of devices. With Dolby Vision high dynamic range imaging, you get bolder highlights and incredible contrast. That means greater sharpness, depth, and more detailed shadows to expand your storytelling possibilities like never before.
- DolbyLaboratories/AM-Viewer: Audio Metadata Viewer - Audio Metadata Viewer. Contribute to DolbyLaboratories/AM-Viewer development by creating an account on GitHub.
- DolbyLaboratories/dbmd-atmos-parser: Dolby Atmos DBMD Wave Chunk Parser - Dolby Atmos DBMD Wave Chunk Parser. Contribute to DolbyLaboratories/dbmd-atmos-parser development by creating an account on GitHub.
- DolbyLaboratories/dlb_mp4base: The Dolby MP4 streaming muxer (dlb_mp4base) is a software implementation of a muxer of fragmented or unfragmented ISO base media file format (mp4). It supports muxing of Dolby Digital (AC-3), Dolby Digital Plus (E-AC-3), and - The Dolby MP4 streaming muxer (dlb_mp4base) is a software implementation of a muxer of fragmented or unfragmented ISO base media file format (mp4). It supports muxing of Dolby Digital (AC-3), Dolby...
- DolbyLaboratories/dolby_vision_professional_decoder_plugin -
- Hybrik API Reference -
- ShaoWeiguo/dlb_mp4demux: The Dolby MP4 streaming demuxer (dlb_mp4demux) is a software implementation of a demuxer of fragmented or unfragmented ISO base media file format (mp4). It supports demuxing of Dolby Digital (AC-3), Dolby Digital Plus (E-AC-3), an - The Dolby MP4 streaming demuxer (dlb_mp4demux) is a software implementation of a demuxer of fragmented or unfragmented ISO base media file format (mp4). It supports demuxing of Dolby Digital (AC-3)...
- dolby-encoding-engine/plugins at master · DolbyLaboratories/dolby-encoding-engine - Contribute to DolbyLaboratories/dolby-encoding-engine development by creating an account on GitHub.
- hybrik/hybrik-samples - Hybrik Samples.
QoE
QoE & Analytics tools, libraries, and resources.
- Best Practices for End-to-End Workflow Monitoring | Streaming Video Alliance -
- Collection of VMAF Resources - A colleague asked for some resources relating to VMAF. Rather than answer in an email I thought I would create a post around it. Some of these are from Netflix, most from me (Jan Ozer). I’ve broken the items into three groups; Computing VMAF, Using VMAF, and About VMAF. I hope you find this collection useful.…
- JNoDuq/videobench - VMAF PSNR Bitrate Analyzer.
- MarcAntoine-Arnaud/wisual - Web for Visual Quality Assessment.
- Netflix/vmaf - Perceptual video quality assessment based on multi-method fusion. - Netflix/vmaf
- QCTools Documentation - QCTools (Quality Control Tools for Video Preservation) is a free and open source software tool that helps users analyze and understand their digitized video files through use of audiovisual analytics and filtering. QCTools is funded by the National Endowment for the Humanities and the Knight Foundation, and is developed by the Bay Area Video Coalition.
- Quality of Experience in Streaming - In Eyevinn Technology’s ambition to broader our sharing of knowledge we now expand this with addressing quality. In today’s landscape of…
- Rolinh/VQMT - VQMT: Video Quality Measurement Tool. Fast implementations of the following objective image quality metrics: PSNR, SSIM, MS-SSIM, VIFp, PSNR-HVS and PSNR-HVS-M. - Rolinh/VQMT
- Telecommunication-Telemedia-Assessment/AVRate - An open source modular Audio/Visual subjective evaluation test interface - Telecommunication-Telemedia-Assessment/AVRate
- The Challenge to Maintain and Translate Creative Visual Ideas to Everyone’s Viewing Devices - Many articles have already been posted drawing conclusions on what went wrong with the visual quality of a very popular TV show that was…
- Toward A Practical Perceptual Video Quality Metric - measuring video quality accurately at scale
- VMAF: The Journey Continues - by Zhi Li, Christos Bampis, Julie Novak, Anne Aaron, Kyle Swanson, Anush Moorthy and Jan De Cock
- VQEG Tools and Subjective Labs Setup - Providing the video quality research community with a wide variety of software tools and guidance in order to facilitate research.
- VQEG/software-tools - VQEG's Software and Tools Website.
- Video Bench — How measure your video quality easily - Introduction
- Video Quality Assessment - In Eyevinn’s initiative to share our knowledge around quality we continue with addressing video quality assessment; from both a subjective…
- Video Quality Experts Group (VQEG) -
- Xiph.org :: Are We Compressed Yet? - Webapp to run and view QoE analysis with comparison features across many codecs and quality metrics made by Xiph org. Site code: https://github.com/xiph/awcy
- bavc/qctools -
- crunchyroll/objective_perceptual_analysis -
- cta-wave/R4WG20-QoE-Metrics - Issue tracking repository for the R4-Wg20 QoE Initiative - cta-wave/R4WG20-QoE-Metrics
- gdavila/easyVmaf - Python script to easily compute VMAF using FFmpeg. It allows to deinterlace, scale and sync Ref and Distorted video automatically - gdavila/easyVmaf
Tools
Streaming video tools and resources to make life easier.
- A Docker container with the video streaming tools you need - As a video streaming technician there are a number of tools that you find yourself using on a daily basis. Wouldn’t it be handy if all…
- AKSHAYUBHAT/DeepVideoAnalytics - A distributed visual search and visual data analytics platform. - AKSHAYUBHAT/DeepVideoAnalytics
- Comcast/eel - A simple proxy service to forward JSON events and transform or filter them along the way. - Comcast/eel
- Comcast/gots - MPEG Transport Stream handling in Go.
- Comcast/mamba - Mamba is a Swift iOS, tvOS and macOS framework to parse, validate and write HTTP Live Streaming (HLS) data. - Comcast/mamba
- Comcast/scte35-js - A SCTE 35 Parser for JavaScript.
- DSRCorporation/imf-conversion - NF IMF media conversion utility allows to handle flat file creation from a specified CPL within the IMF package - DSRCorporation/imf-conversion
- Eyevinn/channel-engine - OTT TV Channel Engine.
- Eyevinn/docker-jit-capture - A Docker container for an open source Just-In-Time Capture Origin - Eyevinn/docker-jit-capture
- Eyevinn/docker-serve - A simple Python based HTTP server that sets CORS allow headers. Useful for streaming from files on local computer - Eyevinn/docker-serve
- Eyevinn/fmp4-js - A Javascript library to parse ISO Base Media File Format (MPEG-4 Part 12) - Eyevinn/fmp4-js
- Eyevinn/pseudo-live-playout - Contribute to Eyevinn/pseudo-live-playout development by creating an account on GitHub.
- Eyevinn/streaming-analyzer - Analyze and visualize HTTP ABR streams.
- Eyevinn/toolbox - A set of Docker containers with Streaming tools.
- Eyevinn/vod-to-live.js - NPM library for HLS VOD to Live.
- IENT/YUView - YUView is a QT based, cross-platform YUV player with an advanced analytic toolset.
- Inca — Message Tracing and Loss Detection For Streaming Data @Netflix - At Netflix, our real-time data infrastructure have embraced the multi-cluster Kafka architecture and Flink powered stream processing…
- Kthulu120/liquid_dl - Liquid-dl is a simple tool for utlities such as FFMPEG, youtube-dl, and scdl. It provides a simple framework with simple point and click options allowing users to just click on what they need and u...
- Marcos-A/STRCleaner - Script that extracts all the text from a subtitles file ignoring time indications, HTML tags and other alien info. - Marcos-A/STRCleaner
- MediaArea/MediaInfo - Convenient unified display of the most relevant technical and tag data for video and audio files. - MediaArea/MediaInfo
- Open Broadcaster Software | OBS - OBS (Open Broadcaster Software) is free and open source software for video recording and live streaming. Stream to Twitch, YouTube and many other providers or record your own videos with high quality H264 / AAC encoding.
- Shaka Packager – opensource.google - Learn about all our projects.
- Stream Analyzer - ts analyzer, stream validation, ETSI TR 101 290 | Elecard: Video Compression Guru - Professional Video Analysis Tool For Syntax Analysis Of Encoded Media Streams. Operates With MPEG-2 PS/TS, VES and MP4 Files. Automation, batch execution via Command Line Interface. Check your multiplexer
- The Top 656 Video Open Source Projects - Browse The Most Popular 656 Video Open Source Projects
- ZaifSenpai/Batch-Py-Remux - Convert mkv video to hevc (h.265).
- antiboredom/videogrep - automatic video supercuts with python.
- awslabs/aws-stale-playlist-detector - The Stale Playlist Detector (SPD) is a tool to monitor live HLS origin endpoints for changing playlists. The Stale Playlist Detector (SPD) will use data in the top-level playlist, the child playlis...
- bcpierce00/unison - Unison file synchronizer.
- brendanlong/mpeg-ts-inspector: A command-line tool for inspecting MPEG-TS files - A command-line tool for inspecting MPEG-TS files. Contribute to brendanlong/mpeg-ts-inspector development by creating an account on GitHub.
- coopernurse/nginx-s3-proxy - nginx compiled with aws-auth support, suitable for S3 reverse proxy usage - coopernurse/nginx-s3-proxy
- ebu/content-manager - The Content Manager is a visual production tool which is able to generate on the fly visualisation for DAB slideshow and RadioVIS. .NET framework based, it is developed in C# and is distributed und...
- egg-bread/hls-to-mp4 - Download HLS videos as MP4 (WebVTT for caption download optional) - egg-bread/hls-to-mp4
- essential61/mp4analyser - mp4 file analyser written in Python.
- estliberitas/node-thumbnails-webvtt - Video thumbnail generator generating WebVTT spec file - estliberitas/node-thumbnails-webvtt
- excalibur-kvrv/m3u8-dl - A CLI m3u8-downloader program to parse .m3u8 playlist file and download mpeg2-ts video files, concat them and convert it to mp4 using FFMPEG - excalibur-kvrv/m3u8-dl
- flavioribeiro/video-thumbnail-generator -
📷 Generate thumbnail sprites from videos. - gnolizuh/BLSS - NGINX-based Live Media Streaming Server.
- gpac/gpac - GPAC main code repository.
- gpac/mp4box.js - JavaScript version of GPAC's MP4Box tool.
- huzhenjie/m3u8_downloader - 基于Python的m3u8下载器.
- ilstam/FF-Multi-Converter: GUI File Format Converter - GUI File Format Converter. Contribute to ilstam/FF-Multi-Converter development by creating an account on GitHub.
- jamesfining/scte - Python library to work with SCTE standards.
- jkarthic-akamai/ABR-Broadcaster - A real time encoder for Adaptive Bitrate Broadcast - jkarthic-akamai/ABR-Broadcaster
- jordicenzano/go-ts-segmenter - Live TS segmenter and HLS manifest creation in Go.
- justdan96/tsMuxer - tsMuxer is a transport stream muxer for remuxing/muxing elementary streams, EVO/VOB/MPG, MKV/MKA, MP4/MOV, TS, M2TS to TS to M2TS. Supported video codecs H.264/AVC, H.265/HEVC, VC-1, MPEG2. Support...
- liwf616/awesome-live-stream - Webrtc && Nginx && DASH && Quic 学习资料收集,持续更新中.
- mar10/wsgidav - A generic and extendable WebDAV server based on WSGI - mar10/wsgidav
- mifi/lossless-cut -
- minio/minio - MinIO is a high performance object storage server compatible with Amazon S3 APIs - minio/minio
- mrpdaemon/mmf - Video transcoding ffmpeg frontend in Python.
- obsproject/obs-studio - OBS Studio - Free and open source software for live streaming and screen recording - obsproject/obs-studio
- realeyes-media/alpine-bento-ffmpeg - Alpine Linux with FFMPEG, Bento, and PM2.
- realeyes-media/alpine-node-video-multitool - Contribute to realeyes-media/alpine-node-video-multitool development by creating an account on GitHub.
- sannies/isoviewer: GUI application to have closer look ISO 14496-12 and other MP4 files. - GUI application to have closer look ISO 14496-12 and other MP4 files. - sannies/isoviewer
- sannies/mp4parser: A Java API to read, write and create MP4 files - A Java API to read, write and create MP4 files. Contribute to sannies/mp4parser development by creating an account on GitHub.
- sbraz/pymediainfo: A Python wrapper around the MediaInfo library - A Python wrapper around the MediaInfo library. Contribute to sbraz/pymediainfo development by creating an account on GitHub.
- schedules/dl - Node.js DASH and HLS downloader.
- slhck/ffmpeg-bitrate-stats - Calculate bitrate statistics using FFmpeg
- slhck/ffmpeg-debug-qp - FFmpeg Debug Script for QP Values
- slhck/ffmpeg-quality-metrics - Calculate quality metrics with FFmpeg (SSIM, PSNR, VMAF)
- slhck/scenecut-extractor - Extract scenecuts from video files using ffmpeg
- vapoursynth/vapoursynth - A video processing framework with simplicity in mind - vapoursynth/vapoursynth
- video-dev/vtt.js - A JavaScript implementation of the WebVTT specification - video-dev/vtt.js
- watson-developer-cloud/text-to-speech-nodejs -
🔈 Sample Node.js Application for the IBM Watson Text to Speech Service - watson-developer-cloud/text-to-speech-nodejs
DRM
DRM tools, documentations, and resources.
- Advanced Encryption Techniques: ContentProtection Tags for MPDs and PSSH Boxes for DASH. - In this installment of TheDRMBlog we take an in-depth look at Advanced Encryption Techniques.
- Axinom/cpix-validator: Web app for validating CPIX documents - Web app for validating CPIX documents. Contribute to Axinom/cpix-validator development by creating an account on GitHub.
- Binary to base64: Convert between bytes and base64 — Cryptii - Base64 encoding schemes are used when binary data needs to be stored or transferred as textual data. Therefore 64 characters are chosen that are both members of a subset common to most encodings (ASCII), and also printable.
- BuyDRM_KeyOS_PlatformOverview_FUUGO_062118 -
- Can I use... Support tables for HTML5, CSS3, etc -
- Content Protection for HLS with AES-128 Encryption - We will outline the most popular method for content protection with the HTTP Live Streaming (HLS) protocol: AES-128 content encryption.
- CrackerCat/video_decrypter - Decrypt video from a streaming site with MPEG-DASH Widevine DRM encryption. - CrackerCat/video_decrypter
- Creating a secure video-on-demand (VOD) platform using AWS - Authored by Chirag Oswal, Solution Architect, AWS, and Vikas Tiwari, Solution Architect Manager, AWS Video has become the primary means of Information sharing and learning. Customers are investing in innovative solutions to tap into the e-learning and video space. Video content is their IP and needs to be protected and securely delivered. Online video is a […]
- Deploying KeyOS with AWS Elemental Media Services - In this post we provide an in-depth first party overview of the complex integration between the KeyOS Platform and the Elemental Media Services via the SPEKE API.
- DeployingKeyOSMulti-DRM_withTHEOPLayer_Webinar_Draft1 -
- Digital Rights Management (DRM) – Everything you need to know -
- Digital Rights Management (multi - drm) – aameer.github.io - My Site
- Encryption & DRM with Multiple Keys — Unified Streaming - DRM with multiple keys for Unified Packager
- Fyrd/caniuse - Raw browser/feature support data from caniuse.com.
- Generate MPEG DASH content encrypted with MPEG CENC ClearKey · Dash-Industry-Forum/dash.js Wiki - A reference client implementation for the playback of MPEG DASH via Javascript and compliant browsers. - Dash-Industry-Forum/dash.js
- HEVC DRM Market Update - Since time eternal, the streaming industry has toiled with and extolled the virtues of CODECs and their key enablement of the entire digital video experience. Now comes the latest candy in the increasingly large bowl, H.265 (MPEG-H Part 2) or as it’s more commonly known. HEVC.
- HLS with Widevine for Android - Taku Semba - Medium - As of the version of 2.6.0, ExoPlayer started supporting Widevine + HLS playback. WideVine is the one of the DRM schemes defined by Google…
- How to Protect Your Content With DRM - Lock it down. If you're streaming proprietary or premium online video, it's time to take the step up to true digital rights management protection. Here's how to get started.
- Integrate BuyDRM for a Multi-DRM workflow -
- Microsoft Word - EZDRM Bento 4 Open Source.docx -
- Play your own DRM content on ExoPlayer - Taku Semba - Medium - Digital rights management, or you could just refer to it as DRM, is a way of controlling what users can do with some sort of digital…
- Pssh box -
- Secure HLS streaming using DRM encryption - Protect live and on-demand HLS streaming using DRM encryption in Wowza Streaming Engine.
- Securing OTT Content — DRM - Written by: Boris Asadanin, Streaming Media Consultant and Partner at Eyevinn Technology
- The Hitchhiker's Guide to DRM - A gentle guide to the world of Digital Rights Management. It includes a technology overview of AES, EME, CDM, CENC, Keys, and then explores popular DRM technologies such as Google Widevine, Apple FairPlay, Microsoft PlayReady, and finally, Multi-DRM.
- TheDRMBlog | CENC - CENC | The DRM Blog - Your New Official Source for Everything DRM
- castlabs/dashencrypt: DASH fragmenter/segmenter and encrypter - DASH fragmenter/segmenter and encrypter. Contribute to castlabs/dashencrypt development by creating an account on GitHub.
- draft-pantos-hls-rfc8216bis-00 - HTTP Live Streaming 2nd Edition -
- shengbinmeng/dash-drm - Demos of MPEG-DASH and DRM.
- videojs/aes-decrypter - Contribute to videojs/aes-decrypter development by creating an account on GitHub.
- w3c/encrypted-media - Encrypted Media Extensions.
Testing
Video streaming testing tools and helpers.
- 4K Media | Free Ultra-HD / HDR / HLG / Dolby Vision 4K Video Demos - Uncompressed 4K demos, samples, and trailers, to show off your new ultra-HD (2160p) HDR/HLG/Dolby Vision television or monitor.
- Automated Testing on Devices - key concepts and infrastructure
- DASH & HLS Sample Streams -
- HTTP Live Streaming (HLS) - Artillery.io Docs -
- MPEG DASH Sample Content | Bento4 -
- Xiph.org :: Test Media -
- artilleryio/artillery-plugin-hls - Load test HTTP Live Streaming (HLS) servers with Artillery
🎥 - artilleryio/artillery-plugin-hls - bengarney/list-of-streams - Community list of public test streams for HLS and DASH. - bengarney/list-of-streams
- ebu/test-engine-live-tools - Small tools and scripts for the EBU test engine platform. - ebu/test-engine-live-tools
- ebu/test-engine-ondemand - EBU on-demand test engine.
- video-dev/streams - A repository of shared streams - no media uploads.
Community
Video developers community, slack groups, conferences, meetups
- Community events of the VideoLAN non-profit organization - VideoLAN events
Conferences
Meet ups
Slack Groups
CDN
Last mile tools, documentations, and resources.
- AWS CloudFront Live failover - You can set up CloudFront with origin failover for scenarios that require high availability. To get started, create an origin group in which you designate a primary origin for CloudFront plus a second origin that CloudFront automatically switches to when the primary origin returns specific HTTP status code failure responses.
- AWS CloudFront for Live Streaming - To use AWS Media Services with CloudFront to deliver live content to a global audience, follow the guidance included in this section.
- Amazon S3 | Fastly Help Guides -
- Edge Computing with Fastly CDN and Varnish VCL for Authenticated Requests - Endertech - A brief explanation of how to use Fastly CDN and Varnish with authenticated requests to offload static file serving from the origin and edge caching.
- Fastly compared to Amazon CloudFront - Compare CDN features and pricing on CDNOverview.com
- How to use DASH and HLS Adaptive Streaming with AWS S3 and Cloudfront - Bitmovin integrates DASH and HLS adaptive streaming seamlessly into your AWS workflows. The Bitmovin encoding service could be configured to use an AWS S3 bucket as input and output for your DASH a...
- Lambda Edge Tutorial - This tutorial shows you how to get started with Lambda@Edge by helping you create and add a sample Node.js function that runs in CloudFront. The example that we walk through adds HTTP security headers to a response, which can improve security and privacy for a website. (That said, you don’t need a website for this walkthrough; we simply add security headers to a response when CloudFront retrieves a file.)
- Lambda@Edge Design Best Practices | Amazon Web Services - Lambda@Edge transforms CloudFront into a highly programmable CDN with serverless compute capabilities closer to your viewers around the world. This blog is the first in a series that explains best practices associated with using Lambda@Edge functions to customize your content delivery.
- OTT Content Delivery– CDN Alternatives - Introduction
HDR10, HLG, Dolby Vision
HDR tools, learning, documentations, and resources.
- Dolby Stream Validator -
- DolbyLaboratories/pmd_tool: pmd_tool is a command line utility that converts between different representations of SMPTE RDD49 metadata - pmd_tool is a command line utility that converts between different representations of SMPTE RDD49 metadata - DolbyLaboratories/pmd_tool
- Encode HDR with VP9 - Hands on tutorial of using ffmpeg to do hdr encoding
- Frequently Asked Questions on High Dynamic Range and Hybrid Log-Gamma - FAQ regarding HDR by BBC R&D
- HLG vs PQ Systems for HDR Television - Article explaining hlg vs pq in depth.
- Help creating a LUT: BT709 to PQ - Doom9's Forum - Help creating a LUT: BT709 to PQ General Discussion
- High Dynamic Range Television and Hybrid Log-Gamma - BBC R&D - BBC R&D HDR project page.
- Perceptual Quantiser (PQ) to Hybrid Log-Gamma (HLG) Transcoding - In depth break down on converting from pq to hlg
- Use of Look-Up Tables (LUTs) in FFmpeg - How to use luts with ffmpeg for converting between differnt hdr encodes
- Vittorio Giovara - Color Me Intrigued: A Jaunt Through Color Technology in Video - This talk aims to shed light on colorspaces - what they are, how and why they work, why we should care about handling edge cases properly. Starting with hist...
- bbc/qtff-parameter-editor - QuickTime file parameter editor for modifying transfer function, colour primary and matrix characteristics.
- id3as/ffmpeg-libvpx-HDR-static - A script to build a static binary of FFmpeg optimised for libvpx (HDR 10bit) encoding.
Contributing
Please take a quick look at the contribution guidelines first. If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you to all contributors; you rock!!