西安通视数据有限责任公司


 

8路高清直播流编码器设计
 


   【摘要
】随着技术进步,高清节目直播成为视频网站的重要功能。本文在介绍目前网络直播编码器构成与性能基础上,设计并实现了一种高性能高密度8路HDMI输入高清直播流编码器,在1U小机箱内实现8路HDMI采集、实时高清编码、
RTMP/UDP/RTP推送,并进行了长期测试。与当前主流编码器方案比较,编码效率提高50%,功耗下降65%,体积减少80%,是一款创新性的网络高清直播流编码器。

1.网络高清直播流编码器现状
    网络高清直播是人们获得实时信息的一种重要手段,大有取代卫星或有线电视的趋势。

1.1高清信源的采集接口
    绝大多数高清编码采用HDMI接口作为信源输入。
    高清直播源大都来自现有电视信号,鉴于很多电视信号压缩加密传送,需要专用机顶盒方能解码显示,一般是从机顶盒HDMI输出采集信号。
    信源还可来自蓝光DVD播放机、高清游戏机和电脑,这些设备均有HDMI输出接口。
    对于只有SDI输出的高清摄像机,可以通过转换器转换成HDMI输出。

1.2 现有高清直播流编码器方案
    由于网络高清直播是新生事物,每个直播服务商都有自己的实现方案,总体可分为以下几种形式:
1)单路方案:一路HDMI输入,一路RTMP输出。又有两种实现形式:
    A)专用设备
    图1-1是一款HDMI进,RTMP出的设备,能够完成HDMI采集,H264压缩,RTMP推送,但它不关注编码效率,估计使用了类似网络摄像头的压缩芯片。
          
                         

    B)组装设备
    图1-2是常见实现方式,由一块单路HDMI采集卡和一台小PC,配合Flash Media Live Encoder软件构成。Flash Media Live Encoder使用简单方便,但其低码流下压缩质量常招人诟病。

                      

2)多路方案:多路方案采用多路HDMI采集卡加高性能PC实现,目前市面上HDMI采集卡最多为4路。
   多路方案均采用软件压缩,为了4路高清实时编码,CPU必须是4核或以上。根据组装人员技术水平,软件分为两类:

                      

    A)直接采用Flash Media Live Encoder。使用简单方便,但其低码流下编码质量不好;

    B)采用X264编码。X264是目前最好的H264编码软件,在低码流情况下,压缩质量有较大提升,但其配置复杂,且还要自己完成RTMP推送工作,对技术人员要求较高。

2.高性能8路高清直播流编码器设计
    设计思路是完成FPGA与CPU、GPU间的紧耦合,在1U机箱内实现8路采集、编码、RTMP推送,并将目前编码效率提升50%以上;操作界面简单实用,便于非技术人员操作。

                        

                         

 
 

2.1 采集卡及驱动设计
    目前市面上HDMI采集卡最多集成4路输入,配备AVSTREAM驱动,通用性强,适应面广,但未考虑与新型CPU的紧耦合。 
    本采集卡唯一使用对象是高性能编码系统,可以降低通用性考虑,而更关注其高性能。因此在设计上有几个特点:
    1)集成度高,允许8路HDMI同时输入和实时采集;
    2)DMA传输效率高。传统采集卡设计为了兼容性,常采用页表方式申请内存,导致传输效率下降。本设计对象为专用设备,在开机加载驱动时申请大量连续内存,提高DMA传输效率;
    3)使用图形加速内存。普通采集卡使用系统内存,便于CPU获得图像数据进行软件压缩。本设计主要依靠硬件压缩,使用图形内存,无需CPU干预,借助DXVA加速,提高压缩速度。

2.2 编码算法优化
    编码算法优化,是本设计一大亮点,优化后的算法,比目前市面常用算法,编码效率提高50%以上,且同时支持8路高清实时编码。
    算法优化分为多个方面:
    1)数据采集优化。采集卡硬件直接转换数据格式,将数据写入需要的缓冲区,无需CPU参与数据拷贝与格式转换;
    2)硬件加速编码。采用最新硬件加速编码技术,在不影响实时编码速度情况下,采用H264 HighProfile最复杂编码配置,提高编码质量;
    3)多B帧编码。 B帧能够显著提高编码效率,但一般视频服务器遇到2个以上连续B帧,就会产生画面抖动,本算法对其做了预矫正,在连续5个B帧时,能够流畅播放。
    4)智能的码率控制。按常识,运动图像会增大码流,运动越剧烈,码流越高。但人眼对快速运动物体的分辨率会下降,利用该特性,在宏块(MB)级分析其运动特性,较静止的MB分配较高质量,运动大的MB分配较低质量,从而在不降低视觉效果基础上,大大降低码流。
    5)多路统计复用。本设计为8路实时编码,考虑到8路输入信号的非相关性,采用统计复用的方式,将总码流控制在一定范围,8路编码码流可相互借用。

    X264是目前公认最好的H264编码软件,在720P分辨率下,本优化算法与X264性能比较见图2-2。

                          


    现有编码系统,使用4路HDMI采集卡(或4块单路HDMI采集卡)+ CPU软压,为了满足4路高清编码速度,常采用X264 fast或veryfast模式。

    从图上可以看出,在低码率情况下,优化编码算法优于X264算法1~2db, 或者说,优化算法600Kbps码流效果相当于原来1~1.4Mbps码流效果。

2.3 软件设计
     软件基本功能是完成图像采集、编码、RTMP/UDP/RTP发送。为了达到良好的编码效率,需要动态配置大量编码参数;为了通过RTMP/UDP/RTP与流媒体服务器连接,还需设置相关连接参数。
     软件界面极为简洁,见图2-3,用户仅需设置每路的压缩质量与流媒体服务器地址即可,内部复杂设置与优化均由软件内部完成。

                              


    压缩质量分为Excellent,Good,Fair,Poor 4种,对应的平均码流分别为1.3Mbps,1.0Mbps,800Kbps,600Kbps,该码流是综艺节目的平均码流,对于体育节目,码流上浮15~20%,对于新闻节目,码率下浮10~15%。
    第一版软件界面,会实时显示各路实时平均码率,第二版软件,增加实时监控8路HDMI采集原始图像及流媒体服务器发布后的回环图像功能。


2.4 整机装配
    整机采用1U 250mm短机箱,由I3 4370(或G3220)CPU,微星H81I miniITX主板,双滚珠涡轮风扇,2x2GB DDR3双通道内存,1U Flex电源,32GB SSD,专用8路HDMI采集卡构成,见图2-4,2-5,2-6。

                  

                   


                           
 

3. 整机测试
3.1 整机接口及测试
  
1)输入接口:HDMI(x8);
    2)高清格式:1280*720p50/60;
    3)输出接口:RJ45 100/1000Mbps;
    4)输出协议:RTMP/UDP/RTP;
    5)供电:AC110/220 50/60Hz。
    重量4Kg, 满负荷工作时,整机功耗小于70W。
    测试:输入信号采用8台机顶盒实时接收不同的卫星高清节目,经多台HDMI分配器,将信号送到3台机器的24路HDMI输入;编码后的码流封成RTMP包,经交换机送到WOWZA流媒体服务器。
    

3.2 与现有同类设备的比较
    比较时,同类4路编码产品,体积、功耗均按两台设备计算。
    编码效率:600Kbps达到同类1~1.4Mbps编码效果,效率提升50%以上
    功耗:75W与同类2x100W 相比,下降65%以上
    体积:1U与2x3U机箱相比,减少80%以上

4.总结
    综上所述,高性能8路高清直播流编码器的使用,将极大节省网络流量、电费及空间占用率,提高设备可靠性,降低运营成本和入门门槛。







    1)Excellent(优):1.3Mbps     www.tongshi.com/temp/Excellent.rar
    2)Good(良):1.0Mbps         
 www.tongshi.com/temp/Good.rar
    3)Fair(中):800Kbps         
 www.tongshi.com/temp/Fair.rar
    4)Poor(一般):600Kbps        www.tongshi.com/temp/Poor.rar 
    观看实时编码效果,写信给support@tongshi.com,获得直播地址URL后,粘贴到VLC中观看。










 


 

asdfasdf
联系我们 | 备案编号:陕ICP备05003038