Awesome Broadcasting Overview
A curated list of amazingly awesome open source resources related to broadcast technologies
🏠 Home · 🔥 Feed · 📮 Subscribe · ❤️ Sponsor · 😺 ebu/awesome-broadcasting · ⭐ 1.5K · 🏷️ Media
Awesome Broadcasting
A curated list of amazingly awesome open source resources for broadcasters.
- Awesome Broadcasting
- Clocks & Studio Screens
- Codecs
- Companion Screens
- Connected TVs
- Control Systems
- Distributed Media Processing
- Documentation
- DVB & WiFi
- Animation, Graphics & Video Playout
- Hybrid Radio
- LiveIP
- Media Players
- Metadata
- Monitoring & Quality Control
- Multimedia content processing
- Network & Storage Testing
- NMOS
- Podcasting
- Radio Production
- Software-defined radio
- Subtitling
- Communication
- Video Production
- Streaming
- Resources
- Contributing
Clocks & Studio Screens
- OnAirScreen (⭐97) - Cross-platform "OnAir Lamp" solution targeted for use in professional broadcast environments.
- PiClock (⭐26) - Customisable network based displays of clocks, on-air, mic live and other studio indicators.
- PiClock Advanced (⭐6) Improved version of PiRSClock-Full with changed layout, added timers and network capabilities.
- PiRSClock-Full (⭐20) - Radio Studio Clock with studio indicators for mics, telephones etc.
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 (⭐3) - A library for the discovery of devices via the DIAL protocol on the iOS platform.
- dvbcss-synckit-ios (⭐11) - iOS libraries for companion screen applications that are synchronised frame-accurately to a TV.
- dvbcss-synctiming (⭐20) - A system for measuring how accurately a TV or companion are synchronised.
- pydvbcss (⭐29) - Implementation of the DVB Companion Screens and Streams protocols for synchronised media playback.
Connected TVs
- Cross-Platform Authentication - CPA offers an open standard for associating any media device with an online identity.
- HbbPlayer (⭐59) - An HbbTV and W3C specifications compliant application that can playback media from a URL.
- TAL - The TV Application Layer (TAL) is an open source library for building applications for Connected TV devices.
Control Systems
- BUG - Broadcast Universal Gateway - Control a wide range of broadcast and network equipment from your browser.
- Lawo EmberPlus (⭐112) - Ember Plus - open protocol for interfacing to / from broadcast control systems.
- MIDIMonster (⭐508) - Lightweight adapter tool for common show control protocols.
Distributed Media Processing
- StormCV (⭐167) - Apache Storm + OpenCV = large scale distributed image and video analysis.
Documentation
- Kronekeeper (⭐12) - A web based application for recording and managing Krone frame records.
DVB & WiFi
- DTT 2 IP (⭐27) - 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 (⭐10) - 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 (⭐5) - 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 (⭐128) - A network distributed media playback system.
- Blender - 3D creation suite supporting 3D modelling, animation, motion tracking, video editing, and more.
- Bridge (⭐32) - Next generation graphics control software, with extension support.
- CasparCG - A professional graphics and video play-out software, proven in 24/7 broadcasts since 2006.
- ffplayout (⭐490) - Rust and FFmpeg based playout from folder or playlists.
- Macadam (⭐108) - Blackmagic Node.js bindings that support HTML/CSS (via Electron) and SVG (via Sevruga (⭐5)) graphics.
- Nebula - Media asset management and broadcast automation system.
- NodeCG - Broadcast graphics rendered in a browser using Node.js.
- Open Playout Automation (⭐178) - A CasparCG-based MCR play-out system.
- ossia - A free and open-source intermedia sequencer.
- Sofie - TV Automation (⭐331) - MOS-driven automation system for news casts, with many libraries for e.g. device control.
- Studio TV Player (⭐41) - Simple TV studio player with SDI, NDI and MPEG TS outputs.
Hybrid Radio
- RadioDNS for Node.js (⭐6) - Perform RadioDNS resolutions and service lookups in node.js.
- RadioDNS Manager (⭐15) - Platform to manage Hybrid Radio services, e.g. RadioVIS, RadioEPG and Service Following.
- RadioTag.js (⭐5) - RadioTag client library in JavaScript.
- RadioVIS Demo (⭐27) - RadioVIS client application in Python.
- RadioVIS Html Player (⭐14) - RadioVIS Player using WebSocket.
- RadioVIS Stomp Server (⭐12) - 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 - Live audio streamer that records and encodes from an audio interface and sends to a streaming server.
- EBU LIST (⭐108) - Live IP Software Toolkit to assist EBU members in the implementation of IP based facilities.
- Icecast - Streaming media (audio/video) server which supports Ogg (Vorbis and Theora), Opus, WebM and MP3.
- IRIS Broadcast (⭐8) - A project founded in Sweden to publish Open Source software for professional radio broadcasts.
- Kamailio - Open SIP server, commonly used for Audio contribution over IP using SIP (EBU ACIP).
- See the NMOS list for the AMWA Networked Media Open Specifications and open source implementations and tools.
- 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.
- trx - A simple toolset for broadcasting live audio from Linux.
Media Players
- Dash.js (⭐11) - 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 (⭐19k) - 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 (⭐870) - HTML5/Javascript video player that supports MPEG-DASH and SmoothStreaming.
- 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 (⭐22) - The Github for maintenance of the EBUCore schema.
- jebu-core (⭐2) - Java port of EBU Tech 3293 EBU Core metadata, including the Audio Definition Model.
- libadm (⭐39) - Audio Definition Model (ITU-R BS.2076) handling C++11 library.
- libklvanc (⭐60) - C library for ancillary data extraction from SDI and SMPTE ST 2110-40 (CEA-708, AFD, SCTE-104, etc.).
- MAJ API (⭐17) - Pure Java library for reading and writing MXF and AAF files.
- SDPoker (⭐12) - CLI tool and library for testing SMPTE ST2110 SDP files.
- TV-Anytime (⭐16) - The TV-Anytime schema github maintenance page.
Monitoring & Quality Control
- BeaqleJS (⭐86) - A framework to create browser based listening tests for subjective audio quality assessment.
- Jack Meter (⭐44) - Text console based DPM (Digital Peak Meter) for JACK.
- JACK Meterbridge - A collection of graphical Audio meters for JACK (ballistics may be incorrect).
- Jmeters - A collection of graphical audio meters for JACK, including VU, PPM and EBU R 128 Loudness meters.
- LTC-tools (⭐71) - A collection of tools to handle Linear Timecode (LTC) and convert to MIDI Timecode (MTC).
- 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 (⭐39) - A Windows tool to display the internal structure of an MXF (Material eXchange Format) file.
- Pi Audio Monitor (⭐147) - Audio Monitoring for Raspberry Pi, supports S/PDIF, AES3, AES67, Livewire and Ravenna.
- Photon (⭐239) - Implementation of the SMPTE Interoperable Master Format (IMF) standard.
- QCTools (⭐319) - Quality Control tools for video preservation to analyse digitized video files.
- Rotter (⭐50) - Recording of Transmissions / Audio Logger for JACK.
- silan (⭐39) - Audiofile silence analyzer.
- SilentJack (⭐23) - Dead-air / Silence detector for JACK.
- Sonic Visualiser - An application for viewing and analysing the contents of music audio files.
- VMAF (⭐4.7k) - Perceptual video quality assessment based on multi-method fusion.
- Wisual (⭐19) - A web service for Visual Quality Assessment, which supports PSNR, SSIM, VQM, etc.
Multimedia content processing
- AvTranscoder (⭐164) - FFmpeg/LibAV-based high-level API to re-wrap or transcode media, with bindings for Java and Python.
- Beam Coder (⭐401) - Node.js native bindings to FFmpeg, with support for asynchronous processing via promises and streams.
- Bento4 (⭐2k) - Full-featured MP4 format and MPEG DASH C++ class library and tools.
- Brave (⭐659) - Basic Real-time AV Editor - lets you preview, mix, and route live audio and video streams on the cloud.
- Codem-isoboxer (⭐116) A small browser-based MPEG-4 (ISOBMFF) parser.
- Dynamorse (⭐45) - IT swiss army knife - a Node-RED media pipeline builder, adding professional media processing nodes.
- EBU ADM Renderer (⭐80) - Reference implementation of the EBU ADM Renderer (EBU Tech 3388)
- FFmbc (⭐192) - FFmpeg customized for broadcast and professional usage.
- FFmpeg - A cross-platform solution to record, convert and stream audio and video. Supports SMPTE ST 2110.
- Flowblade (⭐2.7k) - A multitrack non-linear video editor.
- GStreamer - A library for constructing graphs of media-handling components.
- Kelvinadon (⭐18) - 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, EBU R 128.
- L-SMASH (⭐234) - A rigidly spec-compliant ISOBMFF library, which has full DASH muxing support.
- LibAV - Open source audio and video processing tools.
- libbw64 (⭐30) – Header-only Broadcast Wave 64 (ITU-R BS.2088) C++11 library.
- libear (⭐29) - A C++11 library to render ADM content according to Recommendation ITU-R BS.2127.
- Libebur128 (⭐407) - A library that implements the EBU R 128 standard for loudness normalisation.
- Loudness Validator (⭐13) - A set of applications to analyse, visualise and correct the loudness.
- MP4Box.js (⭐2k) - 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 (⭐61k) - 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 (⭐139) - Server implementation of Adobe's RTMP 1.0 protocol in Go.
- Snowmix - Live Video Mixer.
- SoX - The Swiss Army knife of sound processing programs.
- SVT Encore (⭐273) - Selfhosted video transcoding plattform, built around FFmpeg.
- TuttleOFX (⭐180) - An open source image processing framework based on OpenFX plugin standard.
- UPipe (⭐1) - Primarily designed to be the core of a multimedia player, transcoder or streamer.
- VideoContext (⭐1.3k) - Experimental HTML5/WebGL library for creating interactive and responsive web videos.
- Voctomix (⭐583) - Customizable conference recording/mixing/streaming software based on Python and GStreamer.
Network & Storage Testing
- BBC Media Storage Meter - An application for the testing of network attached (professional media) storage.
- Fio (⭐5.3k) - Flexible I/O Tester
- iPerf3 - The TCP, UDP and SCTP network bandwidth measurement tool.
- SMPTE 2110-20 Analyzer (⭐71) - Analyzer to inspect network packets generated in accordance with SMPTE ST 2110.
- Wireshark dissector for TSL UMD protocol V3.1, V4 (⭐5) - Analyzers for TSL UMD (under-monitor display) protocol V3.1 and V4.
- Wireshark dissectors for Video Routers (⭐11) - Analyzers for various video router/matrix protocols.
- Examples of SMPTE ST 2110 pcap files (⭐19)
NMOS
The Networked Media Open Specifications are themselves open source.
- AMWA NMOS Testing Tool - Automated test suites for the AMWA NMOS family of specifications, as used in the JT-NM Tested programme
- BBC NMOS Joint Reference Implementation (⭐13) - A Vagrant provisioning to build 4 virtual machines, an IS-04/IS-05 Node, IS-04 Registry, BCP-003-02 Authorisation Server, and the NMOS Testing Tool.
- DELTACAST IP Virtual Card NMOS samples (⭐6) - A demonstration of the integration of several NMOS standards with the DELTACAST IP Virtual Card through nmos-cpp (⭐144).
- Easy-NMOS (⭐65) - A starter kit that allows the user to launch a simple NMOS setup with minimal installation steps, composed of three Docker containers: an NMOS Registry, a virtual NMOS Node, and the AMWA NMOS Testing Tool.
- nmos-cpp (⭐144) - An implementation of the AMWA Networked Media Open Specifications in C++, including an NMOS Registry and a toolkit and example of building an NMOS Node.
- nmos-js (⭐33) - A simple browser-based NMOS Client/Controller with an IS-04 Registry browser and IS-05 Connection Management.
- NVIDIA NMOS Docker - Docker container with Registry and Controller, IS-04/05/08/07/09, BCP-003-01
- NVIDIA NMOS Library (⭐9) (NvNmos) - A simple-to-use C/C++ library for adding an NMOS Node to your application, with support for IS-04, IS-05, BCP-002-01, BCP-002-02, BCP-004-01, etc.
Podcasting
- AntennaPod (⭐6.5k) - A podcast manager for Android (antennapod.org).
- Anytime Podcast Player (⭐446) - Free and easy to use podcast player for Android and iOS (anytimeplayer.app).
- Castopod (⭐652) - Podcast Hosting and Broadcasting (castopod.org).
- gPodder (⭐1.3k) - Media aggregator and podcast client (gpodder.org).
- Podlove Publisher (⭐299) - Podcast Publisher for WordPress (podlove.org).
- Podlove Web Player (⭐84) - Podcast-optimized, HTML5-based video and audio player (podlove.org).
Radio Production
- Airtime (⭐619) - 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 (⭐3.1k) - A self-hosted web radio management suite.
- LibreTime - Radio broadcast & automation platform (fork of Airtime).
- Liquidsoap (⭐1.4k) - A Swiss army knife for multimedia streaming (documentation).
- OpenBroadcaster Open Source LPFM IPTV Broadcast Automation. Server and Player code here.
- RAAR (⭐20) - A ruby application to manage and browse an audio archive.
- Rivendell (⭐210) - 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 of CRC-mmbTools. Adds live, DAB+, associated data, 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 (⭐11) - dash.js fork with EBU-TT-D subtitles in HTML/CSS overlay. Later added to dash.js (⭐11).
- EBU-TT-D W3C XML Schema (⭐9) - Informative EBU-TT-D XML Schema to support the implementation of EBU Tech 3380.
- EBU-TT Live Interoperability Toolkit (⭐25) - Components for generating, testing and distributing EBU-TT Live subtitles.
- GStreamer TTML subtitling package (⭐19) - A means for GStreamer pipelines to parse and render EBU-TT-D (TTML) subtitles.
- imscJS (⭐84) - JavaScript library for rendering IMSC1 Text and Image Profile documents to HTML5.
- IRT EBU-TT-D Application Samples (⭐13) - EBU-TT-D sample files, PNG images and mp4 videos as rendering references.
- Subtitle Edit - An editor for subtitles.
- Subtitling Conversion Framework (SCF) (⭐54) - Modules for converting subtitle formats, incl. EBU STL and EBU-TT files.
- Timed Text Toolkit (ttt) (⭐74) - Tools that support/use the W3C Timed Text Markup Language (TTML).
Communication
- Intercom Manager (⭐4) + Intercom Frontend (⭐2) - Intercom system based on built by Eyevinn for SVT.
- DYI intercom (⭐44) - Hardware + software intercom solution built around Murmur server and headless Mumble clients based on Rasperry Pi.
Video Production
- AutoMix (⭐5) - Web-based control surface for ATEM vision mixers with automated camera switching, designed for visualised radio.
- MOS-connection (⭐22) - A JavaScript library for connection and MOS messaging either as MOS device or NRCS.
- Open Lighting Architecture (OLA) - Travel adaptor for the lighting industry, for interconnecting DMX-512, IP and USB.
- Q Light Controller+ (QLC+) - Cross-platform control of DMX or analogue lighting systems (heads, dimmers, etc.).
- QPrompt Teleprompter App - Convergent teleprompter software that works with studio teleprompters, tablet teleprompters, webcams, and phones.
- TallyArbiter - Cross-platform Tally interfacer & tally lights for any camera via phones or low-cost hardware.
Streaming
- Owncast (⭐9.6k) - Selfhosted video streaming plattform (https://owncast.online/)
- PeerTube (⭐13k) - ActivityPub-federated video streaming platform using P2P directly in your web browser. (https://joinpeertube.org/)
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.
Contributing
Please see CONTRIBUTING (⭐1.5k) for details.