广播电视领域精选资源
一个精心整理的广播电视领域优秀开源资源列表。
时钟与演播室屏幕
- OnAirScreen - 适用于专业广播环境的跨平台"OnAir灯"解决方案。
- PiClock - 可定制的基于网络的时钟显示、直播、麦克风开启和其他演播室指示器。
- PiClock Advanced 改进版的PiRSClock-Full,布局更改,增加了计时器和网络功能。
- PiRSClock-Full - 带有麦克风、电话等演播室指示器的广播演播室时钟。
编解码器
- FLAC - 无损音频编码,某些广播机构用于音频交换和存储。
- Lame - 高质量MPEG音频层III(MP3)编码器。
- opencore-amr - 从Android开源项目中提取的音频编解码器,包括AAC。
- Opus - 完全开放、免版税、高度通用的音频编解码器。
- Turing Codec - 一个H.265/HEVC开源软件编码器,设计用于快速高效的视频压缩。
- TwoLame - MPEG音频层2(MP2)编码器。
伴随屏幕
- dial-discovery-ios - 用于在iOS平台上通过DIAL协议发现设备的库。
- dvbcss-synckit-ios - 用于与电视精确同步的iOS伴随屏幕应用程序库。
- dvbcss-synctiming - 用于测量电视或伴随设备同步精度的系统。
- pydvbcss - DVB伴随屏幕和流协议的实现,用于同步媒体播放。
智能电视
- 跨平台认证 - CPA提供了一个开放标准,用于将任何媒体设备与在线身份关联。
- HbbPlayer - 符合HbbTV和W3C规范的应用程序,可以从URL播放媒体。
- TAL - TV应用层(TAL)是一个用于构建智能电视设备应用程序的开源库。
控制系统
- BUG - 广播通用网关 - 通过浏览器控制各种广播和网络设备。
- Lawo EmberPlus - Ember Plus - 用于广播控制系统接口的开放协议。
- MIDIMonster - 常见演出控制协议的轻量级适配工具。
分布式媒体处理
- StormCV - Apache Storm + OpenCV = 大规模分布式图像和视频分析。
文档
- Kronekeeper - 用于记录和管理Krone配线架记录的基于Web的应用程序。
DVB与WiFi
- DTT 2 IP - 用于室内WiFi覆盖的广播到IP转换。
- DVB Inspector - 开源DVB分析器。
- DVBlast - 简单而强大的MPEG-2/TS解复用和流媒体应用程序。
- dvbshout - 将DVB音频发送到shoutcast服务器或RTP流的工具。
- Opencaster - 免费开源的MPEG2传输流数据生成器和数据包操作工具。
- Project X - DVB解复用工具。
- ts2mpa - 从MPEG传输流(TS)中提取MPEG音频的简单工具。
- TSDuck - 用于MPEG/DVB传输流测试、监控、集成、调试等的可扩展工具包。
- WiFiBroadcast - 类似模拟传输的实时视频数据传输。
动画、图形与视频播出
- Aurena - 一个网络分布式媒体播放系统。
- Blender - 3D创作套件,支持3D建模、动画、运动跟踪、视频编辑等功能。
- CasparCG - 专业图形和视频播出软件,自2006年起在24/7广播中得到验证。
- ffplayout - 基于Rust和FFmpeg的文件夹或播放列表播出系统。
- Macadam - Blackmagic Node.js绑定,支持HTML/CSS(通过Electron)和SVG(通过Sevruga)图形。
- Nebula - 媒体资产管理和广播自动化系统。
- NodeCG - 使用Node.js在浏览器中渲染的广播图形。
- Open Playout Automation - 基于CasparCG的主控室播出系统。
- ossia - 一个免费开源的跨媒体音序器。
- Sofie - TV Automation - 基于MOS驱动的新闻播出自动化系统,包含多个用于设备控制等功能的库。
- Studio TV Player - 简单的电视演播室播放器,支持SDI、NDI和MPEG TS输出。
混合广播
- RadioDNS for Node.js - 在node.js中执行RadioDNS解析和服务查询。
- RadioDNS Manager - 管理混合广播服务的平台,如RadioVIS、RadioEPG和服务跟随。
- RadioTag.js - JavaScript编写的RadioTag客户端库。
- RadioVIS Demo - 用Python编写的RadioVIS客户端应用。
- RadioVIS Html Player - 使用WebSocket的RadioVIS播放器。
- RadioVIS Stomp Server - 用node.js编写的RadioVIS STOMP服务器。
LiveIP
音频/视频IP传输和流媒体
- butt - broadcast using this tool (butt)是一个易用的多操作系统流媒体工具。支持SHOUTcast和Icecast。
- Cool Mic - Android音频直播Icecast源客户端应用。
- DarkIce - 实时音频流媒体工具,可从音频接口录制和编码,并发送到流媒体服务器。
- EBU LIST - Live IP软件工具包,协助EBU成员实施基于IP的设施。
- Icecast - 流媒体(音频/视频)服务器,支持Ogg(Vorbis和Theora)、Opus、WebM和MP3。
- IRIS Broadcast - 一个在瑞典创立的项目,旨在发布用于专业广播的开源软件。
- Kamailio - 开放SIP服务器,通常用于基于SIP的IP音频贡献(EBU ACIP)。
- 查看NMOS列表了解AMWA网络媒体开放规范及其开源实现和工具。
- OpenOB - 基于Opus的开放外部广播项目,用于广播贡献链路和演播室-发射机链路。
- PJSIP - 实现SIP、SDP、RTP、STUN、TURN和ICE的开源多媒体库。
- trx - 一套用于从Linux广播实时音频的简单工具集。
媒体播放器
- Dash.js - 通过JavaScript和兼容浏览器播放MPEG DASH的参考客户端实现。
- GPAC - 多媒体播放器、打包器和工具。
- IDJC - 一个带有两个主要媒体播放器的GTK+ Shoutcast/Icecast客户端。
- Kodi - 一个用于数字媒体的软件媒体播放器和娱乐中心。
- Media4DPlayer - 专注于无障碍的HTML5播放器。
- MPD - 一个灵活、强大的服务器端音乐播放应用程序。
- mpg123 - 一个快速的控制台MPEG音频播放器和解码库。
- Mixxx - 一个免费、开源的DJ软件。
- Peaks.js - 基于浏览器的音频波形可视化工具。
- rx-player - 支持MPEG-DASH和SmoothStreaming的HTML5/Javascript视频播放器。
- VLC - 简单、快速且功能强大的媒体播放器。
元数据
- BMXlib - 用于读写广播媒体文件的库和实用工具。主要支持MXF文件格式。
- EBUCore - EBUCore模式维护的Github仓库。
- jebu-core - EBU Tech 3293 EBU Core元数据的Java移植版,包括音频定义模型。
- libadm - 音频定义模型(ITU-R BS.2076)处理的C++11库。
- libklvanc - 用于从SDI和SMPTE ST 2110-40提取辅助数据的C语言库(CEA-708、AFD、SCTE-104等)。
- MAJ API - 用于读写MXF和AAF文件的纯Java库。
- SDPoker - 用于测试SMPTE ST2110 SDP文件的命令行工具和库。
- TV-Anytime - TV-Anytime模式的Github维护页面。
监控与质量控制
- BeaqleJS - 用于创建基于浏览器的主观音频质量评估听音测试的框架。
- Jack Meter - 基于文本控制台的JACK数字峰值电平表(DPM)。
- JACK Meterbridge - JACK音频电平表图形集合(动态特性可能不准确)。
- Jmeters - JACK图形音频电平表集合,包括VU、PPM和EBU R 128响度表。
- LTC-tools - 用于处理线性时间码(LTC)并转换为MIDI时间码(MTC)的工具集。
- MediaConch - Matroska、FFV1和PCM的实现检查器、策略检查器和报告器。
- MediaInfo - 方便统一显示视频和音频文件最相关的技术和标签数据。
- MXF Inspect - 用于显示MXF(素材交换格式)文件内部结构的Windows工具。
- Pi Audio Monitor - 树莓派音频监控,支持S/PDIF、AES3、AES67、Livewire和Ravenna。
- Photon - SMPTE可互操作主格式(IMF)标准的实现。
- QCTools - 用于分析数字化视频文件的视频保存质量控制工具。
- Rotter - JACK传输录音/音频记录器。
- silan - 音频文件静音分析器。
- SilentJack - JACK静音/无声检测器。
- Sonic Visualiser - 用于查看和分析音乐音频文件内容的应用程序。
- VMAF - 基于多方法融合的感知视频质量评估。
- Wisual - 支持PSNR、SSIM、VQM等的视觉质量评估Web服务。
多媒体内容处理
- AvTranscoder - 基于FFmpeg/LibAV的高级API,用于重新封装或转码媒体,提供Java和Python绑定。
- Beam Coder - FFmpeg的Node.js原生绑定,通过promise和流支持异步处理。
- Bento4 - 功能齐全的MP4格式和MPEG DASH C++类库和工具。
- Brave - 基础实时音视频编辑器 - 允许在云端预览、混合和路由实时音频和视频流。
- Codem-isoboxer 一个小型基于浏览器的MPEG-4 (ISOBMFF)解析器。
- Dynamorse - IT瑞士军刀 - Node-RED媒体管道构建器,添加专业媒体处理节点。
- EBU ADM Renderer - EBU ADM渲染器的参考实现 (EBU Tech 3388)
- FFmbc - 为广播和专业用途定制的FFmpeg。
- FFmpeg - 用于录制、转换和流式传输音频和视频的跨平台解决方案。支持SMPTE ST 2110。
- Flowblade - 一个多轨非线性视频编辑器。
- GStreamer - 用于构建媒体处理组件图的库。
- Kelvinadon - Node.JS纯JavaScript模块,用于将MXF文件流式传输到JSON和从JSON流式传输。
- KFR - 快速、现代的C++ DSP框架,支持DFT/FFT、音频重采样、FIR/IIR、Biquad、EBU R 128。
- L-SMASH - 严格遵守规范的ISOBMFF库,具有完整的DASH封装支持。
- LibAV - 开源音频和视频处理工具。
- libbw64 – 仅头文件的广播波64 (ITU-R BS.2088) C++11库。
- libear - 根据ITU-R BS.2127建议渲染ADM内容的C++11库。
- Libebur128 - 实现EBU R 128音量标准化标准的库。
- Loudness Validator - 用于分析、可视化和校正音量的一系列应用程序。
- MP4Box.js - 在浏览器(和NodeJS)中处理MP4文件的JavaScript库。
- MXFLib - 用于读写MXF文件的多平台C++库。
- OBS-Studio - 用于直播和屏幕录制的软件。
- Open Broadcast Encoder - 由开源组件构建的广播编码器。
- rgain - 用于读取、写入和计算回放增益的工具和Python库。
- rtmp - 用Go语言实现的Adobe RTMP 1.0协议服务器。
- Snowmix - 实时视频混合器。
- SoX - 音频处理程序的瑞士军刀。
- SVT Encore - 围绕FFmpeg构建的自托管视频转码平台。
- TuttleOFX - 基于OpenFX插件标准的开源图像处理框架。
- UPipe - 主要设计用作多媒体播放器、转码器或流媒体服务器的核心。
- VideoContext - 用于创建交互式和响应式网页视频的实验性HTML5/WebGL库。
- Voctomix - 基于Python和GStreamer的可定制会议录制/混合/流媒体软件。
网络和存储测试
- BBC Media Storage Meter - 用于测试网络附加(专业媒体)存储的应用程序。
- Fio - 灵活的I/O测试器
- iPerf3 - TCP、UDP和SCTP网络带宽测量工具。
- SMPTE 2110-20 Analyzer - 用于检查根据SMPTE ST 2110生成的网络数据包的分析器。
NMOS
网络媒体开放规范本身是开源的。
- AMWA NMOS测试工具 - AMWA NMOS系列规范的自动化测试套件,用于JT-NM测试项目
- BBC NMOS联合参考实现 - 使用Vagrant配置构建4台虚拟机,包括IS-04/IS-05节点、IS-04注册表、BCP-003-02授权服务器和NMOS测试工具。
- DELTACAST IP虚拟卡NMOS示例 - 通过nmos-cpp展示DELTACAST IP虚拟卡与多个NMOS标准的集成。
- Easy-NMOS - 一个入门套件,允许用户通过最简安装步骤启动简单的NMOS设置,由三个Docker容器组成:NMOS注册表、虚拟NMOS节点和AMWA NMOS测试工具。
- nmos-cpp - 使用C++实现AMWA网络媒体开放规范,包括NMOS注册表以及构建NMOS节点的工具包和示例。
- nmos-js - 基于浏览器的简单NMOS客户端/控制器,具有IS-04注册表浏览器和IS-05连接管理功能。
- NVIDIA NMOS Docker - 包含注册表和控制器的Docker容器,支持IS-04/05/08/07/09和BCP-003-01
广播制作
- Airtime - 用于远程广播自动化的广播管理应用程序(通过基于网页的调度)。
- Ardour - 数字音频工作站。
- Audacity - 跨平台的录音和编辑软件。
- AzuraCast - 自托管的网络广播管理套件。
- LibreTime - 广播播出和自动化平台(Airtime的分支)。
- Liquidsoap - 多媒体流媒体的瑞士军刀(文档)。
- OpenBroadcaster 开源LPFM IPTV广播自动化系统。服务器和播放器代码在此。
- RAAR - 用于管理和浏览音频档案的Ruby应用程序。
- Rivendell - 完整的广播自动化解决方案,已翻译成多种语言并在全球使用。
软件定义无线电
- GNU Radio - 提供信号处理模块以实现软件无线电的软件开发工具包。
- Gqrx SDR - 开源软件定义无线电接收器(SDR)。
- ODR-mmbTools - CRC-mmbTools的分支。增加了实时、DAB+、关联数据、分布式基础设施和SFN功能。
- rtl-sdr - 将基于Realtek RTL2832的DVB加密狗转换为SDR接收器。
- welle.io - 支持airspy和rtlsdr的开源DAB和DAB+软件定义无线电(SDR)。
字幕
- CCExtractor - 分析视频文件并生成独立字幕文件的工具。
- EBU-TT-D在dash.js中的字幕 - dash.js分支,在HTML/CSS覆盖层中包含EBU-TT-D字幕。后来添加到dash.js中。
- EBU-TT-D W3C XML架构 - 用于支持EBU Tech 3380实施的信息性EBU-TT-D XML架构。
- EBU-TT Live互操作工具包 - 用于生成、测试和分发EBU-TT Live字幕的组件。
- GStreamer TTML字幕包 - 使GStreamer管道能够解析和呈现EBU-TT-D (TTML)字幕的方法。
- imscJS - 用于将IMSC1文本和图像配置文档渲染为HTML5的JavaScript库。
- IRT EBU-TT-D应用示例 - EBU-TT-D示例文件、PNG图像和mp4视频作为渲染参考。
- Subtitle Edit - 字幕编辑器。
- 字幕转换框架(SCF) - 用于转换字幕格式的模块,包括EBU STL和EBU-TT文件。
- 定时文本工具包(ttt) - 支持/使用W3C定时文本标记语言(TTML)的工具。
视频制作
- AutoMix - 基于网络的ATEM视频混合器控制界面,具有自动摄像机切换功能,专为可视化广播设计。
- MOS-connection - 一个JavaScript库,用于作为MOS设备或NRCS进行MOS连接和消息传递。
- 开放照明架构(OLA) - 照明行业的"旅行适配器",用于互连DMX-512、IP和USB。
- Q Light Controller+(QLC+) - 跨平台控制DMX或模拟照明系统(灯头、调光器等)。
- QPrompt提词器应用 - 融合式提词器软件,适用于演播室提词器、平板提词器、网络摄像头和手机。
- TallyArbiter - 跨平台Tally接口和通过手机或低成本硬件实现的任何摄像机的Tally灯。
流媒体
- Owncast - 自托管视频流平台 (https://owncast.online/)
资源
各种资源,如书籍、网站和文章,用于提高您的技能和知识。
博客
- BBC新闻实验室 - BBC新闻实验室的开源项目。
- BBC研发 - BBC研究与开发。查看每周笔记。
- 3D CineCast - 关于新媒体技术的精选内容。
- Canal+ - CANAL+开源社区。
- IRT实验室 - IRT博客发布所有数字视听媒体技术的开发和演示。
- Netflix技术博客 - 专注于技术和技术问题的Netflix博客。
- YouTube工程和开发者博客 - YouTube工程和开发者的最新动态。
贡献
详情请参见贡献指南。