基于udt协议和ts切片相结合的视频实时推送的方法
【技术领域】
[0001 ]本发明涉及数据传输技术领域,尤其涉及一种基于UDT技术与MPEG-TS切片技术相结合的媒体流的实时推送的方法。
【背景技术】
[0002]目前市面上大多数的流媒体直播系统都是采用RTSP,RTMP或P2P的流媒体传输协议。RTSP/RTMP流媒体协议通常工作在一种被动式的流服务器工作方式,即必须有客户端通过拍摄装置的IP地址,采用RTSP/RTMP流媒体协议主动采集来自摄像头的视频数据。RTSP/RTMP流媒体协议通常工作在局域网内,因为无法穿透防火墙,所于不利于视频数据网络传输和网络直播。P2P的网络直播协议虽然可穿透防火墙,因为其即工作在客户端模式提供媒体流给服务器又充当流服务器模式提供媒体流数据给其它的客户端,所以对CPU、内存、网络带宽的资源占有率比较高,视频传输效率低,不利于小巧轻盈,资源有限的拍摄装置的视频实时推送。
【发明内容】
[0003]为了克服现有的拍摄装置视频推送技术的不足,本发明提供了一种基于UDT协议和TS切片相结合的视频实时推送的方法,针对拍摄装置有限的资源,快速的建立一个简单轻便的媒体流实时推送方式,且具有稳定的直播效果。
为了实现上述目的,本发明技术方案如下:
该基于UDT协议和TS切片相结合的视频实时推送的方法,包括以下步骤:
步骤(1)绑定拍摄装置、云端个人账号及流服务器的流ID,并将拍摄装置登录到云端个人账号:流ID是视频的媒体流在流服务器的存储位置,同时也媒体流的唯一标识。步骤(2)以TS切片为单元将视频的媒体流切分成MPEG-TS文件。步骤(3)将TS切片写入到环形缓存区:拍摄装置开启一个线程,将TS切片写入到一个暂时存储数据的环形缓存区内。步骤(4)根据流ID采用UDT协议将缓存区内的TS切片上传到流服务器指定的位置:拍摄装置开启另一个线程与流服务器连接,流服务器获取所述流ID,拍摄装置取出环形缓存区内的TS切片并采用UDT协议将取出的TS切片发送给流服务器保存。步骤(5)流服务器将TS切片拼接成媒体流并分发媒体流:流服务器对接收到的TS切片进行拼接,将TS切片解析成媒体流,然后将媒体流分发给智能终端。步骤(6)智能终端连接流服务器实时播放媒体流。
[0004]进一步地,步骤(1)包括一下步骤:步骤(101)绑定拍摄装置与云端个人账号;步骤(102)请求流服务器分配流ID;步骤(103)绑定拍摄装置、云端个人账号及流ID;步骤(104)将拍摄装置登录云端个人账号。
[0005]进一步地,步骤(2)包括一下步骤:步骤(201)将视频及其它数据进行编码压缩成原始流;步骤(202)将原始流打包成PES分组;步骤(203)将PES分组封装成TS切片。
[0006]进一步地,该方法中,先写入环形缓存区中的TS切片被先取出,后写入环形缓存区的TS切片被后取出。
[0007]进一步地,该TS切片的长度为266mS。
[0008]进一步地,该环形缓存区可容纳16个TS切片。
[0009]本发明的有益效果:
(1)该方法采用UDT传输协议进行视频传输,使得网络带宽的资源占有率低,视频传输效率高;
(2)该方法采用MPEG-TS切片技术,使得视频播放稳定,延时小,传输中丢失几个TS切片不会影响视频的播放;
(3)该方法采用环形缓存区对视频进行传送,使得视频传输更加快捷。
【附图说明】
[0010]图1为该基于无线WIFI克隆模式的户外拍摄方法的流程示意图。
[0011]图2为该方法的步骤(1)绑定拍摄装置、云端个人账号及流服务器的流ID,并将拍摄装置登录到云端个人账号的流程示意图。
[0012]图3为该方法的步骤(2)以TS切片为单元将视频的媒体流切分成MPEG-TS文件的流程不意图。
【具体实施方式】
[0013]该方法是在有可用的网络下实现,预先采用无线路由器或其它方式将拍摄装置与网络进行连接。该方法包括如下步骤:步骤(1)绑定拍摄装置、云端个人账号及流服务器的流ID,并将拍摄装置登录到云端个人账号;步骤(2)以TS切片为单元将视频的媒体流切分成MPEG-TS文件;步骤(3)将TS切片保存到环形缓存区;步骤(4)根据流ID采用UDT协议将缓存区内的TS切片上传到流服务器指定的位置;步骤(5)流服务器将TS切片拼接成媒体流并分发媒体流;步骤(6)智能终端连接流服务器实时播放媒体流。
[0014]具体步骤分析如下:
步骤(1)绑定拍摄装置、云端个人账号及流服务器的流ID,并将拍摄装置登录到云端个人账号。流ID用于存储拍摄装置传送的视频的媒体流路径,流服务器根据流ID确定媒体流的位置。具体分为以下步骤进行:
步骤(101)绑定拍摄装置与云端个人账号:首先,摄像机的内部系统将拍摄装置ID和预先申请的云端的个人账号报告给云端应用服务器;拍摄装置ID是一个拍摄装置的唯一标识。云端应用服务器将摄像机ID及云端的个人账号保存后,摄像机与云端个人账号绑定成功。
[0015]步骤(102)请求流服务器分配流ID:其次,云端应用服务器向流服务器请求分配相应的流ID,流ID是摄像机传送的媒体流在流服务器的存储位置,也是该媒体流的唯一标识。拍摄装置根据流ID将媒体流推流到云端的流服务器指定的位置。
[0016]步骤(103)绑定拍摄装置、云端个人账号及流ID:然后,云端的应用服务器将请求到的流ID保存在云端的应用服务器中,这样绑定拍摄装置、云端账号及流ID就建立了绑定关系。
[0017]步骤(104)将拍摄装置登录云端个人账号:拍摄装置向云端应用服务器发送登录请求,拍摄装置根据云端的IP地址登录到云端,登录后,拍摄装置处于待机状态,等待接收来自云端应用服务器的命令。
[0018]步骤(2)以TS切片为单元将视频的媒体流切分成MPEG-TS文件。
[0019]拍摄装置接收到视频传送命令后,以TS切片为单元将视频的媒体流切分成MPEG-TS文件。媒体流包括视频中的媒体流和音频流。TS切片是一种视频小文件格式,封装了 H264视频编码+AAC音频编码视流流包(Packet)的文件格式。每个TS切片流包包含包头(PacketHeader)和包数据(Packet Data),其中包头(Packet Header)含有该TS切片的验证信息,指示了该TS切片包是什么属性的,并给出了该包数据(Packet Data)的数据的唯一网络标识符PID,PID是当前TS切片的Packet区别于其他Packet类型的唯一识别符;包数据(PacketData)携带已编码的视音频数据流的有用信息。本实施例中一个切片的长度是266mS,单个切片包含完整的视频播放的最小单位G0P,可独立播放。采用这种切片格式的优点是,即使在传输过程中或视频采集过程中丢失了几个切片,也不影响视频的播放,不会引起花屏。另一个优点是两个切片段可以无缝拼接,有利于播放器连续播放。如果忽略网络延时,那么整个网络直播延时为一个TS切片,即266mS。
[0020]媒体流切分成MPEG-TS文件的具体过程如下:
步骤(201)将视频及其它数据进行编码压缩成原始流。拍摄装置采用编码器将视频及其它数据压缩后的数据流称为原始流(ES-Elementary Streams)。
[0021]步骤(202)将原始流打包成PES分组。拍摄装置采用打包器将原始流进行分组,分组的原始流称为PES(Packetized Elementary Streams)。每一组称为PES分组,是用来传递原始流的一种数据结构。由于视频、音频编码器本身的特性,PES的长度可在一定范围内变化。
[0022]步骤(203)将PES分组封装成TS切片。拍摄装置采用TS复用器将具有共同时间基准或独立时间基准的一个或多个PES组合(复合)而成
的单一的数据流,一个单一的数据流就是一个TS切片。MPEG-TS文件是将视频、音频的PES分组作为固定长度的TS切片的净荷,然后对TS切片进行复用形成的。因此,TS切片的长度固定,当传输误码破坏了某一 TS切片的同步信息时,接收机可在固定的位置检测他后面包中的同步信息,从而恢复同步,避免了信息的丢失。
[0023]步骤(3)将TS切片保存到环形缓存区。
[0024]为了提高TS切片的传输速度,本实施例中,拍摄装置开启一个线程将转化后的TS切片将TS切片写入到一个暂时存储数据的缓存区内,然后被流服务器读取,本实施例中优选地采用环形缓存区。环形缓冲区是一个先进先出的循环缓存区,其特点是环形缓冲区内的TS切片的写入或读取可以并发执行,写入进程与读取进程可以采用“生产者与消费者”的模型来缓冲区,从而方便了缓存的使用和管理。环形缓存区的容量大小可根据上传文件的大小来设置,本实施例中,环形缓存区可容纳16个TS切片。
[0025]下面介绍本实施例中环形缓存区的实现原理。
[0026]该环形缓存区中有一个读指针和一个写指针;读指针指向环形缓存区中可读的数据,写指针指向环形缓存区中可写的位置。通过移动读指针和写指针就可以实现环形缓存区的数据读取和写入了。读指针和写指针可以同时进行,环形缓存区中数据的读写采用了先进先出的方式,所以环形缓存区的写入与读取可以并发执行,这样就节省了数据上传到流服务器的时间,并且有利于数据收发的协调。
[0027]步骤(4)根据流ID采用UDT协议将缓存区内的TS切片上传到流服务器指定的位置。
[0028]本实施例中,采用UDT数据传输协议来替代互联网标准标准的TCP数据传输协议将TS切片上传到流媒体服务器上。拍摄装置开启另一个线程,然后连接流服务器,流服务器获取流路径,拍摄装置与流服务器连接成功后,拍摄装置采用“先进先出”的方式读取环形缓存区中最先写入的TS切片,然后将读取的TS切片采用UDT协议发送给流服务器保存。
[0029]TCP数据传输协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。“面向连接”就是在正式通信前必须要经过“三次握手”与对方建立起连接;TCP在数据传输时的确认机制、重传机制、拥塞控制机制保证了数据传输的可靠与稳定。然而,正是上述的连接方式和传输机制使得TCP协议数据传输慢、效率低、占用系统资源高,尤其在高带宽长距离网络上性能很差。
[0030]UDT数据传输协议是一种互联网数据传输协议。UDT的主要目的是支持高速广域网上的海量数据传输,可解决TCP占用系统资源高的问题。UDT数据传输协议建于UDP数据传输协议之上,UDP数据传输协议是一种无状态传输协议,数据传输非常快。并且UDT数据传输协议引入新的拥塞控制和数据可靠性控制机制。UDT数据传输协议是面向连接的双向的应用层协议。它同时支持可靠的数据流传输和部分可靠的数据报传输。由于UDT数据传输协议完全在UDP数据传输协议上实现,它也可以应用在除了高速数据传输之外的其它应用领域,例如点到点技术(P2P),防火墙穿透,多媒体数据传输等等。
[0031 ] UDT包通常有两种,分别为UDT数据包和UDT控制包。UDT数据包和UDT控制包通过包头的第一位(标志位)来区分,标志位0表示数据包,标识位1表示控制包。包序号是UDT数据包包头中唯一的内容,它是一个无符号整数,使用标志位后的31位来表示,每个非重传的UDT数据包的包序号都增加1,包序号在到达最大值231-1的时候覆盖,紧跟在包序号后面的是需要传输的正文内容。
[0032 ]步骤(5)流服务器将TS切片拼接成媒体流并分发媒体流。
[0033]流服务器根据每个TS切片包头内的验证信息对TS切片进行拼接,将TS切片解析成媒体流。TS切片解析是媒体流转化为MPEG-TS的逆过程。TS切片解析成媒体流后,流服务器根据接受来自各种智能终端视频播放请求,为媒体流分配接收和转发通道,并按照一定的策略,对媒体流进行分发和控制。
[0034]步骤(6)智能终端连接流服务器实时播放媒体流。
[0035]用户将智能终端连接到流服务器上,智能终端发出视频直播请求向媒体流服务器指定流ID,媒体流服务器将指定的媒体流传送给智能终端,然后智能终端接收到该媒体流并实时播放。
[0036]以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的基本构思的前提下直接导出或联想到的其它改进和变化均应认为包含在本发明的保护范围之内。
【主权项】
1.一种基于UDT协议和TS切片相结合的视频实时推送的方法,其特征在于,包括以下步骤: 步骤(1)绑定拍摄装置、云端个人账号及流服务器的流ID,并将拍摄装置登录到云端个人账号: 所述流ID是视频的媒体流在流服务器的存储位置,同时也媒体流的唯一标识; 步骤(2)以TS切片为单元将视频的媒体流切分成MPEG-TS文件; 步骤(3)将TS切片写入到环形缓存区: 拍摄装置开启一个线程,将TS切片写入到一个暂时存储数据的环形缓存区内; 步骤(4)根据流ID采用UDT协议将缓存区内的TS切片上传到流服务器指定的位置:拍摄装置开启另一个线程与流服务器连接,流服务器获取所述流ID,拍摄装置取出环形缓存区内的TS切片并采用UDT协议将取出的TS切片发送给流服务器保存; 步骤(5)流服务器将TS切片拼接成媒体流并分发媒体流: 流服务器对接收到的TS切片进行拼接,将TS切片解析成媒体流,然后将媒体流分发给智能终立而; 步骤(6)智能终端连接流服务器实时播放媒体流。2.根据权利1所述的基于UDT协议和TS切片相结合的视频实时推送的方法,其特征在于,所述步骤(1)包括: 步骤(101)绑定拍摄装置与云端个人账号; 步骤(102)请求流服务器分配流ID; 步骤(103)绑定拍摄装置、云端个人账号及流ID; 步骤(104)将拍摄装置登录云端个人账号。3.根据权利1所述的基于UDT协议和TS切片相结合的视频实时推送的方法,其特征在于,所述步骤(2)包括: 步骤(201)将视频及其它数据进行编码压缩成原始流; 步骤(202)将原始流打包成PES分组; 步骤(203)将PES分组封装成TS切片。4.根据权利1所述的基于UDT协议和TS切片相结合的视频实时推送的方法,其特征在于: 先写入所述环形缓存区中的TS切片被先取出,后写入所述环形缓存区的TS切片被后取出。5.根据权利1所述的基于UDT协议和TS切片相结合的视频实时推送的方法,其特征在于:所述TS切片的长度为266mS。6.根据权利1所述的基于UDT协议和TS切片相结合的视频实时推送的方法,其特征在于:所述环形缓存区可容纳16个TS切片。
【专利摘要】本发明公开了一种基于UDT协议和TS切片相结合的视频实时推送的方法,包括步骤(1)绑定拍摄装置、云端个人账号及流服务器的流ID,并将拍摄装置登录到云端个人账号;步骤(2)以TS切片为单元将视频的媒体流切分成MPEG-TS文件;步骤(3)将TS切片保存到环形缓存区;步骤(4)根据流ID采用UDT协议将缓存区内的TS切片上传到流服务器指定的位置;步骤(5)流服务器将TS切片拼接成媒体流并分发媒体流;步骤(6)智能终端连接流服务器实时播放媒体流。该方法采用UDT传输协议进行视频传输,网络带宽的资源占有率低,视频传输效率高;采用MPEG-TS切片技术,视频播放稳定,延时小,传输中丢失几个TS切片不会影响视频的播放;采用环形缓存区对视频进行传送,视频传输更加快捷。
【IPC分类】H04N21/236, H04N21/6437, H04N21/434, H04N21/234, H04N21/845
【公开号】CN105491397
【申请号】CN201510858655
【发明人】曾惠萍
【申请人】深圳市福云明网络科技有限公司
【公开日】2016年4月13日
【申请日】2015年12月1日