华数传媒网络有限公司 陈 琦 杨煜红
OTT是近年来继广电网、电信网、互联网三网融合之后视频业务发展的又一个新阶段,无论是牌照方还是视频内容的提供商都在积极寻找这个产业中属于自己的领域。但是OTT的发展和早期IPTV业务的发展一样,服务、设备和系统的提供商众多,而可参考的规范和规则却较少,因此出现了多种类的视频格式和多样化的传输要求,给运营带来了一定的难度。本文主要结合实际的应用情况和可能出现的问题,探讨一下OTT应用中主流媒体格式的视频文件的分析思路和检测方法。
在OTT应用中,目前主流的视频编码格式有H.264,MPEG-2,MPEG-4等,主流的音频格式有MP2,AAC等,封装格式主要包括TS和MP4,视频和音频经过编码器的处理之后,作为两个基本的素材被封装在TS或者MP4的容器中,组成一个完整的可用的媒体文件在系统中传输,并通过分发网络最终在OTT终端上展现视频和音频的效果。
由于专业互联网公司、电信企业和广电所拥有的视频内容来源不一样,同时各家对视频内容的应用和传输的理解也不一样,导致了视频格式在实际应用中会出现多种多样的问题,甚至同样的参数和配置在不同的系统中会出现极其明显的效果差异。
根据国内目前的发展情况来看,大部分OTT应用都采用了TS或者MP4的封装方式。TS封装格式本身就是一个传输流的格式,一般由188个字节或204个字节组成(国内一般采用188字节)。TS由13818-1和DVB SI两个规范定义,13818-1明确了TS系统层面的框架,而DVB SI则定义了TS传输格式的语法结构。MP4的封装格式是一种存储格式,离线播放对文件本身没有要求,但是,如果需要进行分发,则必须进行流化处理,使之符合流传输的相关规则。因此,在拿到一个离线的媒体文件时,首先需要根据文件的后缀名来判断该文件采用的是何种封装格式,检测媒体文件所加载的容器是否正常。
TS封装的媒体文件,一般建议先检查文件是否存在TR101 290的错误。TR101 290是特别针对TS传输的特性制定了三级告警,每层告警针对不同程度的视频传输问题:一级告警是严重的网络传输问题,会对视频主观观看效果有明显的影响(如黑屏、马赛克等);二级告警是媒体文件的解码问题,一定情况下会对主观观看效果有部分的影响(如音视频不同步等);三级告警则主要针对更高要求的视频传输(如HFC网络等特定应用下的视频传输)。对于OTT的应用,这里需要特别关注的是同步字节丢失、同步字节错误、连续计数错误和PCR错误,这些参数可能导致无法正常解码或严重马赛克。
(1)同步字节丢失:检测到连续5个同步字段为正常同步,连续检测到2个以上不正确同步字段为同步丢失错误。传输流同步字节丢失,意味着传输过程中会有一部分数据丢失,直接影响解码后的画面质量。
(2)同步字节错误:TS流的同步字节值是0X47,同步字节错误和同步丢失错误的区别在于,同步字节错误传输数据仍是188或204包长,但同步字头的0X47被其他数字代替。这表明传输的部分数据有错误,严重时会导致解码器解不出信号。
(3)连续计数错误:TS包头中的连续计数器是随着每个具有相同PID的TS包的增加而增加,为解码器确定正确的解码顺序。TS包头连续计数不正确,说明当前传输流有丢包、包重叠、包顺序错误等现象,会导致解码器不能正确解码。
(4)PCR错误:PCR 用于恢复接收端解码本地的系统时钟。PCR不连续发送时间一次超过100ms或PCR整个发送间隔超过40ms(两个连续的PCR值之间的间隔),会引起接收端时钟抖动,影响画面显示时间。PCR精度必须高于500ns或PCR抖动量不得大于±500ns,PCR抖动过大,会影响解码时钟抖动。
MP4封装的媒体文件需要检测封装的格式数据是否完整,尤其重要的是MOOV的数据中是否包含完整的信息以及MOOV数据的位置,对于某些解码终端来说,MOOV数据存放在头部、中部、尾部都会对影响最终的解码,有些甚至可能导致无法解码,一般的规则都要求MOOV的数据放在视频文件的头部,以避免出现文件需要被完全下载后才能播放的问题。
视频数据和音频数据在媒体文件中是以基本的元素流的方式独立存在的,不同的编码方式会对视频和音频的主观观看和收听效果产生非常明显的影响,同时,不同的压缩方式也会对文件的大小产生影响,压缩率越高,文件越小,反之,文件越大。
在视频数据中,基本的参数包括编码方式、编码级别、分辨率、宽高比、码率、帧率、流控方式等,这些都比较容易理解,一般也不会对解码产生较大的影响。应用分析中,需要特别注意视频的主缓冲区溢出情况和GOP结构的组成方式。
(1)主缓冲区溢出:主缓冲区溢出分为上溢(overflow)和下溢(underflow)。上溢会导致数据量超过缓冲区的大小,引起数据丢失,产生卡顿、画面静止、马赛克等现象,严重时可能导致无法解码;下溢由于解码的数据量不够,系统不停的缓冲,也可能引起解码错误,导致卡顿等现象。
(2)GOP结构:也称为图像序列组,由I帧、P帧和B帧三类最基本的帧组成。GOP结构分为开放结构和封闭结构,对于OTT应用而言,理论上GOP结构开放或者封闭都应该兼容,不过,根据笔者近些年来从事视频应用的总结来看,大部分还是需要满足第一个GOP必须为封闭结构的要求,如果全部为开放GOP结构,可能会引起影片片头马赛克的情况。
相对于视频数据,音频数据就会简单很多,其基本的参数包括编码方式、采样率、码率和声道数。音频同样存在缓冲区溢出的问题,音频缓冲区溢出最明显表现为声音“兹兹声”或者声音卡顿。此外,响度也是音频中需要注意的一个方面,由于响度对听觉效果的影响小,常常被忽视,响度过大也会引起解码后出现爆音的现象。
媒体文件经过上述分析和检测,都达到规范和规则的要求,已经可以在系统中进行正常播放了,也就是说是一个可用视频了,那么,对于专业互联网公司、电信企业和广电等OTT的运营商来说,下一步需要考量的重要因素就是视频的主观观看效果了。下文对主观观看效果涉及的几个分析思路做一下简单的探讨。
观看一个视频文件的效果,最首要的最基本的是要确认播放出来的画面是否完整、有效,整体的协调性是否较好。由于内容来源的渠道不同,会存在高清16∶9,1080P的画面、标清4∶3、576i的画面,因此在宽高比调整和分辨率下变换的过程中,必须要进行加黑边的处理,画面由16∶9调整为4∶3,需要在画面的上下加黑边(称为letterbox)。根据笔者对市面上电视机屏幕的可见像素的测试,一般屏幕左右的可见扫描线在600线左右,上下则576线都可见,因此根据4:3的宽高比要求,4∶3=600 450=600∶576-126),又由于视频像素的调整必须是8的倍数,因此比较合理的黑边线数为上下分别加72线左右。由此,画面的上下黑边是否正常、展现比例是否合理、是否存在被压扁和拉升的现象、整体的画面协调性是否良好,与黑边的添加方式有较大的影响,需要在应用中关注这个参数。
对于运动着的画面来说,场景切换的自然流畅、运动过程的清晰完整是观看者体验视频质量的最直观的感受。场景切换意味着一个连续序列的终止,会新起一个序列,而I帧的出现必然会导致码率的增大,所以在编码CBR的情况下,需要适当的调整GOP的结构和长度,以确保编码器合理的重新分配码率资源,或者将视频素材的编码流控方式开放为VBR,以使场景切换的情况下获得更多的码率资源,保障主观质量。而运动画面的拖影涉及的因素较多,可能会与编码的去交织有关,也可能与B帧的适应性有关,还可能是运动估值算法引起,具体的情况需要做不同的分析。
在观看视频时,还有一种现象会对观看者产生困扰,就是在画面上会出现类似于波浪状的线条,俗称“图像水波纹”,水波纹不仅会影响清晰度,而且会有图像交错的视觉。目前由于很大一部分的节目源都来自电视台,而电视机的显示原理决定了节目源很多都是隔行扫描的方式,在OTT的应用中,显示终端已经从传统的电视机扩展到了手机、PAD、PC等各种多媒体设备,而这些多媒体终端都只支持逐行扫描,所以在发现明显水波纹的情况下,需要对影片的扫描方式进行分析。一般情况下,OTT应用的影片需要做逐行扫描处理或者需要优化去交织的效果。此外,H.264格式特别提出了针对该问题的帧场自适应(MBAFF)的扫描方式,可以优化视频的主观质量。
在同样视频效果的情况下,色彩的饱和度、对比度和亮度的协调良好也会起到锦上添花的作用,对于视频结构来说,影响这些因素的参数较多,一般在应用中需要检测的参数包括:像素的色彩位数(Bits Per Pixel)、色度的抽样模式(Chroma Format)、彩色矩阵信息(Color Information)、活跃像素比例(Percentage of Active Pixels)、色块(Blockiness)、色域(RGB Color Gamut)、色度陡变(Chroma Change)、块错误(Block Errors)、底片颗粒噪声(Film Grain Noise)等,不同的终端不同的应用,以上参数的配置需要达到最佳状态,才能在有效码率下起到更加直观的效果。此外,还有彩条、场序、白色基准信号等参数,也对整体视频会产生一些影响,但并非主要参数。
在OTT的应用中,视频的质量和效果始终是最重要的,媒体文件可用进而高质量也始终是OTT应用的从业者们努力的方向,学会判断和分析媒体文件的基本方法,建立基本的分析流程和解决思路,是OTT运营需要一直关心、关注和不断持续完善的课题。