1. 立项背景和目标
为内容供应商如体育联盟、电影电视产业、音视频行业提供专业卓越的音视频质量,采用高精度编码技术、广播级视频传输应用设计,在分发过程中最大限度保留原始视频的图像细节、清晰度和色彩梯度,成为提供OTT/IP视频平台的关键头端组件。
2. 主要功能和特性
- 多信源接入
支持开放标准的系统输入流协议, 支持采集卡(Decklink、AJA等)、Webcam、NDI、TS over TCP/UDP/RTP/RTMP/HTTP/HLS/SRT/ZIXI等。
- 多协议输出
支持开放标准的直播流协议,如RTMP/RTP/SRT/ZIXI/HLS/MP4等,可以接驳各种主流的流媒体服务器。
- 广泛的数据服务
除了音视频,提供标准的数据服务,如隐藏式字幕(CC 608/708)、DVB Subtitle、Teletext、SMPTE2038、广告信号SCTE-104/35透传/转换/插入等,为视频提供合规、增值服务。
- 可靠的冗余设计
提供输入输出信号级别、工作流级别、节点实例和设备级别的故障转移冗余设计,支持自动手动、手动、预设方式的1+1/N+M故障转移方式。
3. 业务流程
工作流:工作配置 -> 输入 -> 预处理 -> 编码 -> 输出
- 工作配置
音视频格式,编码参数设置,数据支持等模版
- 输入
接收客户提供的信号,分解信号内容
- 预处理
如果需要,解码成工作配置的音视频格式,解析各种包含在信号里的数据如字幕、广告点,添加台标,等
- 编码
根据编码参数设置编码成输出格式,支持CPU/GPU编码
- 输出
交织并封装音视频,支持各种流媒体协议输出
1. 整体架构和设计思路
- 采用FFmpeg SDK,支持多线程异步处理,模块化组件工作流搭建。
- Web界面操作简单
- 全流程监控可视直观
2. 我负责的模块
- 整体架构和流程设计
- API和界面设计
- 数据解析和处理,包括CC608/708字幕提取,SCTE104和SCTE35的解析转换,TS信号格式解析,等模块
3. 遇到的难点、坑和解决方案
- 性能瓶颈,通过异步队列,线程锁优化,使编码性能达到和ffmpeg编码性能接近一致。
- CC字幕丢失、交错,通过dts排序,多条字幕并行解析优化,达到实时对齐。
- SCTE104数据不规范,通过标准兼容和缓存对比,剔除冗余重复信号,对齐广告服务器和流媒体服务器要求,输出标准规范的SCTE35数据。
- TS信号多变,通过兼容各种信号规格,格式变化检查,TR101290监视信号质量,支持处理客户的各种TS信源。