Awesome Broadcasting
A curated list of amazingly awesome open source resources for broadcasters.
- Awesome Broadcasting
- Codecs
- Companion Screens
- Connected TVs
- Distributed Media Processing
- DVB & WiFi
- Animation, Graphics & Video Playout
- Hybrid Radio
- LiveIP
- Media Players
- Metadata
- Monitoring & Quality Control
- Multimedia content processing
- Network & Storage Testing
- Radio Production
- Software-defined radio
- Subtitling
- Video Production
- Resources
- Contributing
Codecs
- FLAC - Free Lossless Audio Coding, used by some broadcasters for audio exchange, storage.
- Lame - A high quality MPEG Audio Layer III (MP3) encoder.
- opencore-amr - Audio codecs extracted from Android Open Source Project, including AAC.
- Opus - A totally open, royalty-free, highly versatile audio codec.
- Turing Codec - An H.265/HEVC open source software encoder designed for fast and efficient video compression.
- TwoLame - An MPEG Audio Layer 2 (MP2) encoder.
Companion Screens
- dial-discovery-ios - A library for the discovery of devices via the DIAL protocol on the iOS platform.
- dvbcss-synckit-ios - A collection of iOS dynamic libraries for building media-based companion screen applications that are synchronised frame-accurately to a TV.
- dvbcss-synctiming - A system for measuring how accurately a TV or companion are synchronised.
- pydvbcss - A library implementing the DVB Companion Screens and Streams protocols for accurately synchronising media playback between TVs and companions.
Connected TVs
- Cross-Platform Authentication - CPA offers an open standard for associating any media device with an online identity.
- HbbPlayer - An HbbTV application which can playback media from a URL. Conforms to HbbTV and W3C specifications.
- TAL - The TV Application Layer (TAL) is an open source library for building applications for Connected TV devices.
Distributed Media Processing
- StormCV - Apache Storm + OpenCV = large scale distributed image and video analysis.
DVB & WiFi
- DTT 2 IP - Broadcast to IP conversion for Wifi indoor coverage.
- DVB Inspector - An open-source DVB analyzer.
- DVBlast - A simple and powerful MPEG-2/TS demux and streaming application.
- dvbshout - Tool to send DVB audio to a shoutcast server or a RTP stream.
- Opencaster - A free and open source MPEG2 transport stream data generator and packet manipulator.
- Project X - DVB demux tool.
- ts2mpa - Simple tool to extract MPEG Audio from a MPEG Transport Stream (TS).
- TSDuck - Extensible toolkit for MPEG/DVB transport streams testing, monitoring, integration, debugging, and more.
- WiFiBroadcast - Analog-like transmission of live video data.
Animation, Graphics & Video Playout
- Aurena - A network distributed media playback system.
- Blender - 3D creation suite supporting 3D pipeline—modelling, rigging, animation, simulation, rendering, compositing and motion tracking, even video editing and game creation.
- CasparCG - A professional graphics and video play-out software, proven in 24/7 broadcasts since 2006.
- i-Score - A free and open-source intermedia sequencer.
- Open Playout Automation - A CasparCG-based MCR play-out system.
Hybrid Radio
- RadioDNS for Node.js - Perform RadioDNS resolutions and service lookups in node.js.
- RadioDNS Manager - A platform to manage Hybrid Radio static services such as RadioVIS, RadioEPG and Service Following.
- RadioTag.js - RadioTag client library in JavaScript.
- RadioVIS Demo - RadioVIS client application in Python.
- RadioVIS Html Player - RadioVIS Player using WebSocket.
- RadioVIS Stomp Server - RadioVIS STOMP server written in node.js.
LiveIP
Audio/Video over IP & Streaming
- butt - broadcast using this tool (butt) is an easy to use, multi OS streaming tool. It supports SHOUTcast and Icecast.
- Cool Mic - Android audio livestreaming Icecast source client app.
- DarkIce - A live audio streamer that records audio from an audio interface (e.g. sound card), encodes it and sends it to a streaming server.
- Icecast - A streaming media (audio/video) server which supports Ogg (Vorbis and Theora), Opus, WebM and MP3 streams.
- Kamailio - Open SIP server, commonly used for Audio contribution over IP using SIP (EBU ACIP).
- OpenOB - Open Outside Broadcast project for radio contribution links and studio-transmitter links based on Opus.
- PJSIP - Open Source multimedia library implementing SIP, SDP, RTP, STUN, TURN, and ICE. Used in some contribution equipment (dual licensing).
- trx - A simple toolset for broadcasting live audio from Linux.
Media Players
- Dash.js - A reference client implementation for the playback of MPEG DASH via Javascript and compliant browsers.
- GPAC - Multimedia player, packager and tools.
- IDJC - A GTK+ Shoutcast/Icecast client with two main media players.
- Kodi - A software media player and entertainment hub for digital media.
- Media4DPlayer - HTML5 player focused on accessibility.
- MPD - A flexible, powerful, server-side application for playing music.
- mpg123 - A fast console MPEG Audio Player and decoder library.
- Mixxx - A free, open source DJ software.
- Peaks.js - Browser-based audio waveform visualisation.
- rx-player - HTML5/Javascript video player with some reactive programming inside, supporting MPEG-DASH and SmoothStreaming transports.
- VLC - Simple, fast and powerful media player.
Metadata
- BMXlib - Library and utilities to read and write broadcasting media files. Primarily supports the MXF file format.
- EBUCore - The Github for maintenance of the EBUCore schema.
- AMWA IS-04 and IS-05 - Python implementation of the AMWA IS-04 NMOS Registration and Discovery Specification and AMWA IS-05 NMOS Device Connection Management Specification.
- jebu-core - EBUCore XML Schema Java port. Java port of TECH 3293 EBU CORE METADATA SET (EBUCore) SPECIFICATION v. 1.5, including new Audio Definition Model.
- Ledger - Node.js implementation of the NMOS registration and discovery specifications.
- MAJ API - Pure Java library for reading and writing MXF and AAF files.
- NMOS - An NMOS (Networked Media Open Specifications) Registry and Node in C++ (IS-04, IS-05).
- SDPoker - CLI tool and library for testing SMPTE ST2110 SDP files.
- TV-Anytime - The TV-Anytime schema github maintenance page.
Monitoring & Quality Control
- BeaqleJS - A framework to create browser based listening tests for subjective audio quality assessment.
- Ebumeter - Level metering for JACK, according to the EBU R 128 Loudness recommendation - documentation.
- Jack Meter - Text console based DPM (Digital Peak Meter) for JACK.
- JACK Meterbridge - A collection of graphical Audio meters for JACK.
- Jmeters - A collection of graphical Audio meters for JACK with the correct ballistics for both the VU and the PPMs (compared to Meterbridge).
- LTC-tools - A collection of tools to read, generate and trigger against Linear Timecode (LTC) and convert to MIDI Timecode (MTC) with JACK and to/from standalone files.
- MediaConch - Implementation checker, policy checker, & reporter for Matroska, FFV1, & PCM.
- MediaInfo - A convenient unified display of the most relevant technical and tag data for video and audio files.
- MXF Inspect - A Windows tool to display the internal structure of an MXF (Material eXchange Format) file.
- Photon - Implementation of the SMPTE Interoperable Master Format (IMF) standard.
- QCTools - Quality Control tools for video preservation to analyse digitized video files.
- Rotter - Recording of Transmissions / Audio Logger for JACK.
- silan - Audiofile silence analyzer.
- SilentJack - Dead-air / Silence detector for JACK.
- Sonic Visualiser - An application for viewing and analysing the contents of music audio files.
- VMAF - Perceptual video quality assessment based on multi-method fusion.
- Wisual - A web service for Visual Quality Assessment, which supports PSNR, SSIM, VQM, etc.
Multimedia content processing
- AvTranscoder - Based on FFmpeg/LibAV libraries to support various video and audio formats, avTranscoder provides the high level API to re-wrap or transcode media easily. It also provide bindings for any usage in Java or Python.
- Bento4 - Full-featured MP4 format and MPEG DASH C++ class library and tools.
- Codem-isoboxer A small browser-based MPEG-4 (ISOBMFF) parser.
- Dynamorse - IT swiss army knife - a Node-RED media pipeline builder, adding professional media processing nodes.
- EBU ADM Renderer - Reference implementation of the EBU ADM Renderer (EBU Tech 3388)
- FFmbc - FFmpeg customized for broadcast and professional usage.
- FFmpeg - A complete, cross-platform solution to record, convert and stream audio and video. Now including support for SMPTE ST 2110.
- Flowblade - A multitrack non-linear video editor.
- GStreamer - A library for constructing graphs of media-handling components.
- Kelvinadon - Node.JS pure Javascript module for streaming MXF files to and from JSON.
- KFR - Fast, modern C++ DSP framework, DFT/FFT, Audio resampling, FIR/IIR, Biquad.
- L-SMASH - A rigidly spec-compliant ISOBMFF library, which has full DASH muxing support.
- LibAV - Open source audio and video processing tools.
- Libebur128 - A library that implements the EBU R 128 standard for loudness normalisation.
- Loudness Validator - A set of applications to analyse, visualise and correct the loudness.
- MP4Box.js - JavaScript library to process MP4 files in the browser (and in NodeJS).
- MXFLib - A multi-platform C++ library for reading and writing MXF files.
- OBS-Studio - Software for live streaming and screen recording.
- Open Broadcast Encoder - Broadcast encoder built from Open Source components.
- rgain - Tools and Python library to read, write and calculate Replay Gain.
- rtmp - Server implementation of Adobe's RTMP 1.0 protocol in Go.
- Snowmix - Live Video Mixer.
- SoX - The Swiss Army knife of sound processing programs.
- TuttleOFX - An open source image processing framework based on OpenFX plugin standard.
- UPipe - Primarily designed to be the core of a multimedia player, transcoder or streamer.
- VideoContext - Experimental HTML5/WebGL media processing and sequencing library for creating interactive and responsive videos on the web.
- Voctomix - Customizable conference recording and mixing software based on Python and GStreamer with streaming capabilities and Core/GUI separation.
Network & Storage Testing
- BBC Media Storage Meter - An application for the testing of network attached storage, originally assumed to be used for the streaming of professional media.
- Fio - Flexible I/O Tester
- iPerf3 - The TCP, UDP and SCTP network bandwidth measurement tool.
- SMPTE 2110-20 Analyzer - An analyzer to inspect network packets generated in accordance with the SMPTE ST 2110 specification.
Radio Production
- Airtime - Radio management application for remote broadcast automation (via web-based schedule).
- Ardour - A digital audio workstation.
- Audacity - Cross-platform software for recording and editing sounds.
- AzuraCast - A self-hosted web radio management suite.
- LibreTime - Radio broadcast & automation platform (fork of Airtime).
- Liquidsoap - A Swiss army knife for multimedia streaming (documentation).
- OpenBroadcaster Open Source LPFM IPTV Broadcast Automation. Server and Player code here.
- RAAR - A ruby application to manage and browse an audio archive.
- Rivendell - Complete radio broadcast automation solution, translated to many languages and used worldwide.
Software-defined radio
- GNU Radio - A software development toolkit that provides signal processing blocks to implement software radios.
- Gqrx SDR - An open source software defined radio receiver (SDR).
- ODR-mmbTools - Fork, continuation of CRC-mmbTools. Adding new features for 24/24 365/365 live operation, DAB+, associated data (slideshow, text), distributed infrastructure, SFN.
- rtl-sdr - Turns a Realtek RTL2832 based DVB dongle into a SDR receiver.
- welle.io - An open source DAB and DAB+ software defined radio (SDR) with support for airspy and rtlsdr.
Subtitling
- CCExtractor - A tool that analyzes video files and produces stand-alone subtitle files.
- EBU-TT-D Subtitling within dash.js - The original fork of dash.js to experiment with XML based subtitles like EBU-TT-D within dash.js. Uses an HTML/CSS overlay. Has since been integrated into dash.js.
- EBU-TT-D W3C XML Schema - Informative EBU-TT-D XML Schema to support the implementation of EBU Tech 3380.
- EBU-TT Live Interoperability Toolkit - A set of components for generating, testing and distributing subtitle documents in the EBU-TT Live format.
- GStreamer TTML subtitling package - A means for GStreamer pipelines to parse and render EBU-TT-D (TTML) subtitles.
- imscJS - JavaScript library for rendering IMSC1 Text and Image Profile documents to HTML5.
- IRT EBU-TT-D Application Samples - EBU-TT-D sample files, related PNG images and mp4 videos showing how they should be rendered.
- Subtitle Edit - An editor for subtitles.
- Subtitling Conversion Framework (SCF) - A set of modules for converting subtitle formats. Main target is the conversion of EBU STL and EBU-TT subtitle files. Alpha release.
- Timed Text Toolkit (ttt) - A collection of related tools that provide support for or make use of the W3C Timed Text Markup Language (TTML).
Video Production
- MOS-connection - A JavaScript library for connection and MOS messaging either as MOS device or NRCS.
- Open Lighting Architecture (OLA) - OLA is a framework for lighting control information, the travel adaptor for the lighting industry, for converting between Digital Multiplex (DMX-512) and IP variants and interfacing with USB adaptors.
- PiClock - Customisable network based displays of clocks, on-air, mic live and other studio indicators.
- Q Light Controller+ (QLC+) - QLC+ is cross-platform software to control DMX or analog lighting systems like moving heads, dimmers, scanners etc.
- Teleprompter - Web browser and standalone Electron app prompter.
Resources
Various resources, such as books, websites and articles, for improving your skills and knowledge.
Blogs
- BBC News Labs - Open Source projects from BBC News Labs.
- BBC R&D - BBC Research and Development. Checkout the weekly notes.
- 3D CineCast - A curation about new media technologies.
- Canal+ - CANAL+ Open Source Community.
- IRT Lab - IRT blog posting developments and demos for all digital audiovisual media technology.
- The Netflix Tech Blog - A Netflix blog focused on technology and technology issues.
- Youtube Engineering and Developers Blog - What's happening with engineering and developers at YouTube.
Websites
Useful broadcasting related websites.
- EBU.io - A platform for agile collaboration.
Contributing
Please see CONTRIBUTING for details.