机顶盒对外测试媒体播放相关问题定位思路Word格式文档下载.docx
《机顶盒对外测试媒体播放相关问题定位思路Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《机顶盒对外测试媒体播放相关问题定位思路Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
A、抓包开始时,先要设置网卡等条件(wireshark——Capture——Options):
输入“hostIP地址”,这样就可以只抓这个IP地址(如133.40.179.75)的网络包了。
B、或者在抓取的网络包中输入“ip.addr==ip地址”来过滤
2)在wireshark——》Statistics——》IOGraphs,这样可以看到机顶盒的IO图,确定流的速率
设置X、Y轴的单位等,就可以根据包的数量、数据量等看到波形图了。
3)DRM配置
使用机顶盒现场配置工具,配置对应的DRM厂商。
并且要注意时区一定要保持一致。
因为DRM解密是需要时间戳的。
1.2、直播频道黑屏,但进入时移就有图像
这个一般情况下是因为组播引起的。
组播需要特殊的网络环境,如果是普通的链路,组播流没法下来,导致机顶盒虽然发送了加入组播的请求,但是网络设备实际上没有这个组播组。
抓取机顶盒的网络包;
或者使用monitor工具的10010端口,勾选IGMP和RTSP,判断黑屏时机顶盒是不是加入组播组。
因为时移是使用RTSP建链的单播,不需要特殊的链路支持,所以在建链成功之后,就会有媒体流下来。
1.3、RTSP建链正常,但是没有媒体流
这个现象在与其他平台流媒体对接时最容易出现。
这个是因为在UDP传输的时候,机顶盒处于NAT映射环境,而有些流媒体的UDP包没有进行相关NAT穿越处理,所以就没有传输过来给机顶盒。
请看案例
【问题描述】
1)机顶盒接入华为平台,播放频道或者点播节目,都是黑屏,没有流下来
2)通过抓取机顶盒的网络包;
或者使用monitor工具的10010端口,勾选IGMP和RTSP,可以看到RTSP交互进行到GET_PARAMETER环节。
一分钟后机顶盒发送TEARDOWN
【问题分析】
1)分析RTSP协议的SETUP命令,看到华为流媒体响应的传输方式为MP2T/RTP/UDP
2)如果采用UDP方式传输,而流媒体对此方式的NAT穿越的支持不够的话,UDP传输包就没法到达机顶盒,所以表现没有媒体流
【问题结论】
通过配置工具将机顶盒的优先传输方式调整为MP2T/RTP/TCP传输,这样就可以有流了
1.4、没有RTSP交互
在点播节目的时候,进入后没有流。
通过monitor工具的10010端口勾选RTSP选项,但是没有看到RTSP信令交互的过程。
这个有两个可能,这些都是属于浏览器类的错误,详情请参考《机顶盒对外测试页面&
浏览器相关问题定位思路_V1.0_2011-4-29.doc》:
1)进入播放的时候,页面播控脚本出现JS错误,停止执行,导致还没走到mediaplayer这一步。
2)页面本身没有RTSP节目的链接。
这种情况较少,通过搜索页面的RTSP链接代码,确定是否没有。
看以下案例:
接入华为平台央视模板,在回看页面,选择一个回看节目,进入后,发现没有视频流下来,屏幕黑屏。
在进入页面play_controlTVod.jsp时存在一处JS错误导致页面没法往下走正常流程
mphasnoproperties
这个JS错误的原因就是这个mp对象并未定义,看了一下页面是定义的调用mp之后,所以必然找不到这个对象,从而导致了JS错误。
出现JS错误的代码截图:
上面这段代码对应的行号为96行,而mp这个对象定义时在下面截图:
定义这个mediaplayer对象是在122行,这种写法在IE、opera、firefox都不支持。
从上面分析看出看来这段代码是没用的代码,只是用来定义一个变量,
即使去取也是取不到时间,因为当前媒体根本还未打开,可以改成如下
varcurrTime=0;
然后在初始化后再去取当前播放时间即可:
即在函数initMediaPlay里加上如下写法:
functioninitMediaPlay()
{
varinstanceId=mp.getNativePlayerInstanceID();
currTime=mp.getCurrentPlayTime();
…
}
2、播放花屏、马赛克、跳帧
一个节目播放过程中出现花屏、马赛克或者跳帧的现象。
这个现象出现的原因主要是出现了丢包,我们主要是确认其在哪个环节出现丢包。
2.1、media600工具
media600工具可以用来抓取机顶盒的VOD模块的媒体包,但不是每个版本都支持该工具。
在“媒体文件保存路径”里面创建文件后,在“单板地址”里面输入机顶盒的地址,然后按连接就可以抓取到在VOD模块的媒体包了。
1)如果media600抓取的媒体流不卡顿,那说明机顶盒的解码器模块有问题了。
如果media600抓取的网络包也卡顿,那这时候要排查网口的网络包了
2.2、FileReader工具
FileReader是可以将有RTP封装的TCP传输包,或者UDP传输包转化为TS流的工具。
判断网络包是否有丢包,有以下几种方法:
1)媒体流使用MP2T/RTP/TCP传输,FileReader生成TS文件。
A、打开FileReader——>
RTP2TS,就是将RTP封装的TCP流转换为TS格式文件
MP2T/RTP/TCP格式媒体流
注意:
RTP2TS选项一定要对应MP2T/RTP/TCP格式媒体流的网络包。
过几秒钟后弹出提示框
这样在与网络包同一个目录底下就可以看到生成的ts格式文件。
2)媒体流使用MP2T/RTP/UDP传输,FileReader生成TS文件
MP2T/RTP/UDP格式媒体流
按照上面的操作,可以将UDP传输的媒体流转换为TS流。
3)媒体流使用MP2T/RTP/UDP传输,通过wireshark计算丢包率。
A、选择一个UDP媒体流,右键——DecodeAs,
B、在Transport选项卡中选择“RTP”
这样就可以将网络包转换为可以看到RTP封装序号的包,如果序号不连续,那就是丢包了。
如果是音频文件,直接是看不到它序号的。
但是可以通过它的包解析可以看到序号。
如下图选中的MPEG-1文件对应的序号为“10680”
C、统计丢包率。
在网络包的RTP格式呈现下,wireshark——>
Telephony——>
RTP——>
ShowAllStreams,就可以统计出它的丢包率了。
2.3、丢包分析
如果通过以上的第三种方法,可以看到有丢包率的话,并且在RTP格式下能找到丢包的序号,那就说明从流媒体到机顶盒的网络链路有问题,存在丢包现象,这时候需要排查网络原因了。
但是通过网络包序号分析,没有出现丢包的现象,但是视频在播放的时候还是存在卡顿、跳帧、马赛克等现象,这是什么回事呢?
请看下面两个经典案例:
1)高清片源前一两分钟存在卡顿
【问题现象】
点播中兴平台高清片源(例如“K歌情人”),在开始播放的时候很卡,图像总是跳帧,但是过了一、两分钟后,播放就恢复正常。
A、因为VS8000C是通过MP2T/RTP/UPD方式传输媒体流,通过分析网络包的RTP序号,发现没有丢包。
B、通过FileReader.exe工具转换,发现时长为两分钟的网络包转换成TS媒体流后只有20秒。
也就是初步可以得到结论:
流媒体将20秒长度的媒体流拉成到2分钟发送。
C、Statistics——IOGraphs,可以看到流媒体发流的波形图是递增的,也就是前面发送的速率小于媒体流的正常速率,所以机顶盒没有接收到足够的媒体包,导致卡顿。
后面流媒体恢复以大于或等于媒体流的速率发包,所以表现正常。
需要流媒体排查原因。
经过黄华堂的排查,结论:
问题已经查清,是由于这个片源比较特殊,一开始有个波峰,把发送缓冲区(默认配置为512)填满并溢出,且有一段时间一直是满的。
而发送速率则由缓冲区里包的变化快慢来决定。
所以此时会以很低的速率发包。
解决方法是增大MediaDest缓存大小为1024。
这样的缺点是每个用户占用的内存增加,并发用户数目会减少。
解决办法是:
1、在网管上修改如下两个SS参数:
全称网管显示名默认值修改后
Queue_Number_Size_1024:
QN1001024
Media_Queue_Length_Net_Send:
QLNS5121024
2、在网管上复位所有MSTU。
2)中兴央视所有频道都有马赛克
中兴央视平台的所有频道在播放的时候都出现跳帧、马赛克等现象。
进入时移,现象依旧。
B、通过FileReader.exe工具转换,生成的TS视频文件播放的时候同样出现花屏、马赛克等现象。
因为频道的码率是固定的,所以不会是因为片源的格式问题导致。
那就只有流媒体有问题,或者进入流媒体的头端流就有问题。
C、因为进入时移,现象依旧,一般情况下流媒体在透传和压缩同事出问题时,不应该只有丢包的现象了。
所以基本肯定是媒体包在进入流媒体之前就已经丢掉了。
通过平台同事排查,发现进入MDU的链路是央视带宽不够的那条,当央视下推点播内容时,将会占用频道的推送带宽,频道码流没有足够的带宽,所以就出现了丢包。
通过将入口流倒换到央视正常的链路问题就解决了。