海思3716Mv300平台iPanel3.0对接华数VOD流程介绍

2015-02-26 15:38沈少锋陈建文张海泳
西部广播电视 2015年12期
关键词:海思解码器机顶盒

沈少锋 陈建文 张海泳

(作者单位:嵊州市广播电视总台)

海思3716Mv300平台iPanel3.0对接华数VOD流程介绍

沈少锋 陈建文 张海泳

(作者单位:嵊州市广播电视总台)

摘 要:华数VOD是一项双向互动点播增值业务,通过集成了该业务的高清机顶盒对当前的电视节目进行“播放、暂停、快进等操作”,从传统的被动看电视变为主动的看电视。目前嵊州广播电视总台为争取市场,主推具备该功能高清双向机顶盒。要求高清机顶盒集成华数VOD业务和iPanel3.0浏览器对接。

关键词:海思3716Mv300;iPanel3.0;华数VOD

1 前言

华数VOD 与iPanel浏览器紧密合作,市场占有率愈来愈高。作为广电营运,只有与他们保持良好的合作关系,才能抢先占有互动电视市场。海思3716Mv300芯片是目前高清主打产品,通过海思3716Mv300、 iPanel3.0对接华数VOD业务,本文档可供一定技术指导。

2 华数VOD的点播

2.1 华数点播方式介绍

华数点播方式有Over IP(数据流通过IP方式传输) 和over QAM(数据流通过QAM方式传输)两种方式,嵊州IP网络比较薄弱,建议采用over QAM方式。

over QAM是通过cable传输点播数据流,只要信号质量强度在机顶盒的接收范围内,数据传输就没有问题。over QAM方式的华数点播要确保获取到正确的RegionID,这可以通过查看iPanel的打印信息进行分析查看是否获取到RegionID,并与前端RegionID进行比较以便确认是否正确,当进入点播某部影片时,提示“无授权”的话,这时就要查询一下RegionID值获取是否正确。

无论采用哪种方式对接华数VOD,都要求机顶盒获取到正常合法的IP地址。在点播网络里面,有些运营商可能会将点播网络与PC使用网络混在一起,有可能导致机顶盒在自动获取IP地址时,有时会获取到PC使用的网络地址,出现首页访问失败及点播不成功的情况。这时就要注意机顶盒在自动获取IP地址,发送DHCP请求时,要加上option60协议,确保机顶盒只能获取指定服务器分配的IP地址。

2.2 电影及时移节目点播

进行点播之前,首先要确保机顶盒网络连接正确,获取到正确网段的IP地址,over QAM方式还要确保cable线连接好,信号质量强度正常。其次是盒子里面烧写权限可用于点播的stb_id,除了当地运营商有特殊要求,一般华数VOD点播服器都是根据交互时传入的stb_id来判断当前机顶盒有没有点播权限。而后菜单操作进入点播首页页面,通过页面浏览选择对应影片,查看影片内容简介及点播当前影片要花费的金额,按“确定”键选择播放即可,播放过程当中可以按确认键暂停或恢复播放,或通过按“左右”键拉动时间杆,跳转到时间杆所在时间点播放,也可按遥控器“黄色”功能键弹出选时菜单,输入指定时间,再按“确定”键跳入指定时间点进行播放。

时移节目还支持在DVB状态下快速进入当前播放节目回放,在全屏播放节目状态下可以通过按“回退”键、“确定”键或“黄色”功能键进入,进入后的三种状态分别为快退2倍播放、暂停及跳转到指定时间点进行播放,具体请参考《华数机顶盒VOD技术规范》。对于功能键的定义可以通过代码修改重新映射,确保在向iPanel发送按键消息时传递消息值与文件的定义一致。

3 iPanel3.0集成华数VOD接口介绍

3.1 涉及到的主要源文件

涉及到的源文件主要有iPanel要求实现的ipanel_demux.c、ipanel_vdec.c、ipanel_adec.c及新增加的ipanel_ipqam_ private.c和ipanel_ts_inject.c。

3.2 相关接口的具体说明

ipanel_demux.c:该文件里面的接口主要与解复用相关,重点说明的接口如下:

ipanel_porting_demux_ioctl接口主要用来设置当前点播节目点播数据是直接从cable获取还是先从cable获取传给iPanel,然后由iPanel封装好后再推送给应用层处理,同时通过全局变量将数据记录下来,以便在播放控制操作时根据获取方式分别进行处理。若是从cable直接获取,那点播当前影片与播放一个普通电视节目一致,流程就是iPanel先去锁频,再将当前节目音视频及PCR pid传下来,然后再由ipanel_vdec.c里面ipanel_porting_vdec_ioctl接口来启动播放;若是通过第二种方式获取数据,则播放流程就是通过该接口的IPANEL_ DEMUX_PUSH_STREAM操作将iPanel封装好的数据(主要是TS格式)下传并由应用层进行缓存,而后由ipanel_vdec.c 和ipanel_adec.c相关接口来进行TS注入播放。

ipanel_porting_demux_set_channel_pid接口用来设置当前点播影片或回放节目

的音视频及PCR PID和设置某些数据过滤的通道PID,同时将这些参数进行保存,若当前点播或回放节目的数据流获取方式是直接通过cable获取,则这些参数就用于其它接口调用进行播放。

ipanel_adec.c:ipanel_porting_adec_ ioctl接口用来设置点播音频数据的获取方式,即直接通过cable获取或是通过该接口的IPANEL_ADEC_PUSH_STREAM操作推送ES数据下来,并通过全局变量记录获取数据的方式;若是推送ES数据方式该接口还要获取音频sdp协议数据供其它接口解析获取音频流相关参数;获取音频数据并根据音频流相关参数封装成音频PES包保存供其它接口注入播放;设置音频声道、音量大小及静音等操作;设置音频解码器参数并进行初始化、启动音频播放;根据数据获取方式分别对音频进行播放暂停跳转等操作;

ipanel_vdec.c:ipanel_porting_vdec_ ioctl接口设置点播视频数据获取方式,即直接通过cable还是通过该接口的IPANEL_VDEC_PUSH_STREAM操作推送ES数据下来,并通过全局变量记录下来;若是通过推送ES方式,则要解析视频sdp协议数据获取当前视频流相关参数设置解码器;根据sdp协议解析得到的数据将推送下来的ES数据封装成视频PES包并缓存供该接口的其它操作注入播放;设置视频解码器参数并启动播放;对视频点播进行播放暂停等操作。

ipanel_ts_inject.c:该源文件主要是对iPanel传下来的ts格式的数据进行注入播放的相关操作接口。

4 iPanel3.0集成华数VOD的难点及海思平台的解决策略

4.1 播放过程中起马赛克问题

通过统计发现,播放过程中出现马赛克的问题主要是点播音视频分别注入播放的片源才会出现,进一步分析发现是由于在某些时刻保存数据的缓存buffer会溢出。通过与iPanel技术支持进行确认,当iPanel传下来的数据应用层不能及时处理,应该返回IPANEL_ERR,此时iPanel会知道当前所传数据应用层处理不成功,下次还要继续传,直到应用层处理完毕返回IPANEL_OK。所以在接收iPanel传的数据时添加一个判断,当要接收的数据长度加上已保存的数据大于数据缓存总大小时,此时不做处理,直接给iPanel返回IPANEL_ERR,直达注入播放任务消费掉一部分缓存时,再保存当前数据并返回IPANEL_OK。

4.2 暂停再恢复播放及选时播放出现画面卡顿问题

反复暂停播放和选时播放会出现画面卡顿的问题比较难解决,因为出现这种现象是有一定的概率,不是每次都必出,通过大量的添加测试代码发现,当将视频的Synchronisation同步处理去掉后,反复再暂停就不会出现马赛克了,此时会出现音视频不同步,通过修改在恢复播放时,先将video的Synchronisation处理diable,在300ms后再把video的Synchronisation处理加上就好了。对于选时播放起马赛克的问题,除了按照暂停播放处理一下外,还需要将音视频的缓存给清掉,对于注入播放而言,需要将缓存的数据全部清掉,再关闭重新打开音视频解码器,对于直接通过PID进入点播的片源而言,只需要关闭重启音视频解码器。

猜你喜欢
海思解码器机顶盒
科学解码器(一)
科学解码器(二)
科学解码器(三)
华为海思宣布推出首款华为海思LTE Cat4平台Balong 711
线圣AudioQuest 发布第三代Dragonfly Cobalt蓝蜻蜓解码器
机顶盒上别盖布
安全使用机顶盒注意五点
解密华为芯片技术实力
何庭波:逼出来的华为“芯片女皇”
机顶盒上别盖布