杨凯 郑郁劼 苏州广播电视总台技术中心
苏州广播电视总台现有十间广播直播室,包括8间自办节目的广播直播室、1间多媒体直播室和1间备份直播室。目前,各节目部门根据自身全天节目编排的需要,每天会有一些时间段需要在广播节目中转播某些电视频道的节目,例如FM91.1城市综合频率每天中午12点至12点30分转播CCTV1综合频道的午间新闻。这些节目的信号取自每个直播室安装的一台普通电视机顶盒,机顶盒的音频输出通过模拟平衡音频接口接入调音台,视频输出通过视频接口接入液晶电视作为监看,实现广播节目转播电视频道节目的需求。虽然该方案沿用了很长时间,但是由于机顶盒信号源是外来信号(广电网络运营商)而非台内信号,当信号出现中断时无法追查问题根源,只能等待信号恢复,以往也出现过因为机顶盒信号长时间中断,导致转播无法正常进行的情况。为了确保自办节目的安全播出,也为了确保例如国庆、两会直播、春节联欢晚会等某些特定时间段和重大事件的转播,需要设计一套以台内信号为信号源的播出方案。
对于在广播直播间使用的电视信号转播系统,在设计上需要考虑以下特点:(1)稳定性
由于系统涉及播出,稳定性是最重要的要求。之前使用的系统中,不稳定因素在于信号源是外来信号,很多因素不可控、不可查。要改善这一问题,可以考虑使用台内的信号源。根据部门的实际情况,决定使用电视总控输出的UDP组播多节目TS流信号,每个组播流信号包含若干个电视频道节目。
(2)可扩展性
目前广播常规需求的电视节目转播涉及的电视台包括苏州台、中央电视台新闻频道等少数几个电视频道,但在未来可能有更多直播电视台节目的需求,如重大体育比赛、大型晚会活动等。因此系统必须能够方便地添加新的电视频道。
(3)易上手
之前的机顶盒方案采用的播出设备为电视机顶盒,操作比较简单,只需按下频道切换按钮即可实现频道切换。新的播出系统交互方案的设计不能过于复杂,必须能让操作人员尽快上手。
经过多种技术方案的可行性比较和讨论,决定采用电视台总控部门传输的UDP组播多节目TS流,将信号接入至广播总控网络机房,再通过交换机将节目流送至10间直播室。每个直播室安装一台电脑用于解码播放节目流,解出的音视频信号分别送直播调音台和液晶电视,以替换原机顶盒转播方式,该广播转播电视节目系统框架如图1所示。
图1 广播转播电视节目系统框架
(1)节目播出电脑 该电脑作用是利用播放器软件播放TS节目流。为了能够方便地进行频道切换,需要配置一个合适的切换程序。此外,为了最大程度避免误操作,决定使用独立的数字小键盘来进行切换控制。
(2)电视机顶盒 保留原电视机顶盒作为备路方案,当主路节目播出电脑出现故障时可作为备份信号,这样也提高了广播转播电视频道的播出安全性。
(3)调音台 节目播出电脑播放器以及机顶盒输出的音频信号进入调音台,分别作为音频播出的主路和备路信号,调音后作为最终节目播出。
(4)液晶电视 接收电脑播放器及机顶盒的视频信号,用于辅助监看。
整个电视节目转播系统核心包括两个部分,第一是对节目播出电脑的配置,包括播放器配置和切换软件的开发;第二是在接入节目播出电脑输出的音频后,广播直播间调音台的设置调整。
对于播放器的需求一是需要支持多节目UDP TS流的播放以及节目切换,二是稳定性好,能够在视音频正常的情况下连续播放高清码流。
节目播出电脑的操作系统采用性能较稳定的Linux发行版Ubuntu 16.04系统。在ubuntu系统下测试了几款较为流行的播放器,包括vlc、mplayer、smplayer。测试内容包括是否支持对UDP TS流的播放、多节目流的选择功能、视音频正常情况下的连续播放时长。Ubuntu平台下的多播放器测试结果见表1。
表1 Ubuntu平台下的多播放器测试结果
(1)UDP TS流播放 三款播放器均支持播放UDP协议的TS节目流。
(2) 多频道选择 由于总控输出的UDP流为多节目的TS流,即一个地址包含多个节目,因此需要播放器支持以参数选择的方式打开某个地址中特定频道的功能。vlc和mplayer均有参数支持选择频道,但是smplayer无法选择播放流中的指定节目,且会出现视音频误匹配的情况,即出现播放节目1的视频和节目2的音频的情况。
(3)连续正常播放时长 由于涉及播出,播放器的稳定性是一个非常重要的指标。在测试中,vlc(v2.0.4)比较稳定,vlc(v2.2.2)在播放一天左右后会出现未知原因的音频丢失情况,mplayer播放器在连续播放3天后出现了卡顿、无声音的情况,而包括smplayer和其他未列举的播放器未得到更好的测试结果。需要说明的是在测试vlc更新版本软件(v3.0.2)也出现了音频丢失现象,在此不予列举。综上所述,最终本系统的播放器选用v2.0.4版的vlc播放器。在实际使用时,需要设置系统策略定期重启电脑,避免可能因播放器长时间播放,出现内存泄漏导致死机的情况。
操作人员对节目播出电脑的操作主要是电视频道的切换,为了方便操作人员的操作,同时最大程度地降低误操作的可能性,放弃了传统的全键盘和鼠标的操作,改为使用独立的数字小键盘进行操作,配合切换软件,可以快速切换各频道。
切换软件主要功能实现包括以下方面:
(1)查询并获取小键盘设备按键事件
在linux系统下,对于鼠标、键盘等输入设备的操作会在系统中产生input事件,捕获这一事件就能判断出鼠标键盘的具体操作。要对事件进行捕获,首先在路径/proc/bus/input/device下找到数字小键盘对应的event编号,如图2所示Name为“SEM USB Keyboard”的设备即为所使用的小键盘,其对应event编号为event13。然后操作键盘时读取其在路径/dev/input下对应的节点/dev/input/event13,即可获取键盘按键信息,包括按键码和事件类型。按键码是用于标识键盘上每个按键的标号,按键事件包括按下和释放。捕获按键码和按键事件类型后就可以设定逻辑触发执行预先写好的播放器脚本。
(2)节目播放
VLC播放器支持命令行启动,并可同时添加各种需要的参数。在本项目中,当切换软件捕获按键命令后,启动vlc播放器,需要指定以下参数:①码流UDP地址,即总控发出的UDP TS组播流地址;② 节目号,由于源码流为多节目TS流,需要指定播放其中的哪一套节目,由参数“--program”指定;③ 全屏显示,由参数“--fullscreen”控制。
(3)小键盘开关
使用以上键盘监听的方法进行按键监听识别,即使在小键盘功能(Num Lock)关闭的情况下也能正常运作。为了确保操作员是在小键盘usb连接正常时进行操作,规定必须打开(Num Lock)功能后才能操作。在技术实现方面,监听到按键时先读取Num Lock状态,在Num Lock打开的前提下才会对按键进行进一步的功能响应。
(4)小键盘断线重连
图2 数字小键盘在系统中的设备信息
在意外情况下,小键盘的usb连接可能会因为外部原因被断开。因此在切换软件中需设置逻辑检测小键盘是否连接上系统,方法是在包含输入设备信息的系统路径/proc/bus/input/device中查找是否包含小键盘信息,如果未检测到设备,则在交互界面上输出提示信息,间隔一段时间后继续检测,直到检测到设备才开始监听按键逻辑。
按键监听软件使用交互采用终端界面,如图3所示。
图3 按键响应程序界面
节目播出电脑音频输出接口为SPDIF,经过接口转换后通过音频数字线缆接入调音台的数字输入接口模块上。因为原机顶盒的信号保留,所以需要在调音台上增加A/B键切换逻辑,用于两路信号的切换。
在用调音台有两种型号分别是RM4200D和RX52,在功能使用上略有区别。
3.3.1 RM4200D
DHD RM4200D调音台有自身研发专用的控制软件TOOLBOX4,可对调音台进行个性化设置,十分简洁和便利。将电脑与调音台通过网线连接,在电脑上打开TOOLBOX4控制软件。
首先,在DSP frameI/O将TV推流解码电脑音频输入定义为TV,机顶盒音频输入定义为JDH,在fader channels里加入CH32 TV和CH10 JDH。
如图4所示。
在console里,点击需设置功能的调音台控制面,选择两个RM420-012模块的空白键(地址码#C11),分别定义为TV和JDH并选择好各自对应的音源。
图4 DSP frameI/O(左)及fader channels(右)中的设置
其次,是给这两个定义好的按键设置逻辑功能,实现A/B键切换的功能。以在第9路推子上实现A/B切换为例,在logic systemlogic function里增加两个判断逻辑量SEL TV和SEL JDH,同时在右侧的设置框里修改设置,这里面增加了一条FS Fader 9低电平的条件,意思是只有当第9路推子是未推起的状态时才能实现切换,目的是防止误操作,最后,在Edit script界面里编辑一段8位16进制数,图 5 所 示 是 SEL TV 的 脚 本 110D0000, 6, 00, 08, 00,20, 00, 00,其中的 6代表 6 选 1,08 代表推子序号为第9路推子,20为16进制,代表输入调音台的信号源序号即第32路CH32 TV,按下Select…键选择源为LF SEL TV。同样的设置SEL JDH的脚本为110D0000, 6, 00, 08, 00, 0A, 00, 00。 至 此,RM4200调音台A/B键切换功能实现。
图5 Logic Function(左)及Edit Script(右)中的设置
3.3.2 RX52
RX52调音台系列是DHD公司在RM4200系列调音台基础上进行了升级和改进后的产品,从硬件架构、DSP处理能力、软件控制等方面与RM4200系列相比,都更加简洁、强大和稳定,在A/B键切换功能设置上就能体现出来。
RX52调音台控制软件为TOOLBOX8。首先,在I/O overview里将TV推流解码电脑音频输入定义为TV,机顶盒音频输入定义为JDH,在fader channels里加入CH41 TV和CH9 JDH。
其次,在console里,点击需设置功能的调音台控制,选择两个模块空白键,分别定义为TV和JDH,并选择好各自对应的音源fader channel,function…里选择 Direct input select,Act…里选择on fader fader 9,同样选择在第9路推子上做切换。
至此,RX52的A/B键切换也设置完毕,可以明显看出,和RM4200D调音台相比,RX52的设置简便了许多。
此次广播直播室电视转播系统的改造,改变了原有模式信号源为单一外来信号的缺点。通过新增一路内部信号通路,使得信号源更稳定,即使出现问题也可以追根溯源。同时,新增系统与原机顶盒播出系统形成主备,从而加强了广播播出的安全性。
图6 RX52的console设置