/awesome-broadcasting

A curated list of amazingly awesome open source resources related to broadcast technologies

OtherNOASSERTION

Awesome Broadcasting Awesome

A curated list of amazingly awesome open source resources for broadcasters.

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 - iOS libraries for 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 - 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 - 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.

Distributed Media Processing

  • StormCV - Apache Storm + OpenCV = large scale distributed image and video analysis.

Documentation

  • Kronekeeper - A web based application for recording and managing Krone frame records.

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 modelling, animation, motion tracking, video editing, and more.
  • 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.
  • Macadam - Blackmagic Node.js bindings that support HTML/CSS (via Electron) and SVG (via Sevruga) graphics.
  • Open Playout Automation - A CasparCG-based MCR play-out system.
  • Sofie - TV Automation - MOS-driven automation system for news casts, with many libraries for e.g. device control.

Hybrid Radio

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.
  • Icecast - Streaming media (audio/video) server which supports Ogg (Vorbis and Theora), Opus, WebM and MP3.
  • 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.
  • 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 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 - The Github for maintenance of the EBUCore schema.
  • AMWA IS-04 and IS-05 - NMOS Registration & Discovery and Device Connection Management in Python.
  • jebu-core - Java port of EBU Tech 3293 EBU Core metadata, including the Audio Definition Model.
  • libadm - Audio Definition Model (ITU-R BS.2076) handling C++11 library.
  • 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.
  • Jack Meter - 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 - 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 - A Windows tool to display the internal structure of an MXF (Material eXchange Format) file.
  • Pi Audio Monitor - Audio Monitoring for Raspberry Pi, supports S/PDIF, AES3, AES67, Livewire and Ravenna.
  • 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 - FFmpeg/LibAV-based high-level API to re-wrap or transcode media, with bindings for Java and Python.
  • Beam Coder - Node.js native bindings to FFmpeg, with support for asynchronous processing via promises and streams.
  • 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 cross-platform solution to record, convert and stream audio and video. Supports 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, EBU R 128.
  • L-SMASH - A rigidly spec-compliant ISOBMFF library, which has full DASH muxing support.
  • LibAV - Open source audio and video processing tools.
  • libbw64 – Header-only Broadcast Wave 64 (ITU-R BS.2088) C++11 library.
  • 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 library for creating interactive and responsive web videos.
  • Voctomix - 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 - Flexible I/O Tester
  • iPerf3 - The TCP, UDP and SCTP network bandwidth measurement tool.
  • SMPTE 2110-20 Analyzer - Analyzer to inspect network packets generated in accordance with SMPTE ST 2110.

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

Video Production

  • MIDIMonster - Lightweight adapter tool for common show control protocols.
  • MOS-connection - 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.
  • PiClock - Customisable network based displays of clocks, on-air, mic live and other studio indicators.
  • Q Light Controller+ (QLC+) - Cross-platform control of DMX or analogue lighting systems (heads, dimmers, 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

Contributing

Please see CONTRIBUTING for details.