基于RTP/RTCP的HEVC实时视频传输控制方法转让专利

申请号 : CN201811104877.X

文献号 : CN109151611B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李雄陈舒潘颋璇向阳

申请人 : 深圳市璇玑实验室有限公司

摘要 :

本发明公开一种基于RTP/RTCP的HEVC实时视频传输控制方法,其传输控制机制主要是利用RTCP反馈信息,发送端发送RTCP报文,接收端反馈RTCP报文,发送端利用RTCP‑RR报文分析网络状况。同时发送端定时发送RTCP探测包给接收端,探测网络带宽。本发明利用多媒体实时传输技术RTP/RTCP协议在不增加网络负载的前提下,及时、快速、有效的对HEVC视频实现实时传输,适应当前网络状况。本发明方法的RTCP灵活且体积小,不会给网络带来负担。

权利要求 :

1.一种基于RTP/RTCP的HEVC实时视频传输控制方法,其特征在于:该方法包括发送程序和接收程序两部分:

(一)发送程序如下:视频采集使用根据25帧/秒~35帧/秒的采样频率,定时23ms~

33ms从视频文件中读取图像帧数据放入视频采集缓存,并记录下此时时间戳值,由HEVC视频编码读取待编码图像,进行编码后,送至RTP数据打包发送模块进行处理后得到RTP数据包,发送到接收端;RTP数据打包发送模块根据RTP协议要求,在发送RTP数据包的同时发送RTCP数据包,RTCP数据包为RTP数据包的传送管理提供支持;通过RTCP数据包的NTP时间戳值,接收端恢复出RTP数据包中媒体数据的采样时刻,发送端传送比特计数数据域提供了发送端数据发送速率信息;

同时接收来自接收端传送的RTCP数据包,并进行处理;

RTP数据打包发送线程和视频编码线程之间的同步采用事件内核对象来进行同步;程序运行之后,RTP数据打包发送线程处于等待之中,当视频编码完成一帧图像编码后,设置事件对象,通知RTP数据打包发送线程进行处理;当RTP数据打包发送线程处理完成后,又重置内核对象,然后进入等待下一次事件;

(二)接收程序如下:网络接收模块接收到RTP数据包后对其进行解包,存放在缓存中,同时把时间戳值存放在一个队列中,由HEVC视频解码模块进行解码,解码数据存放在显示缓存中,最后,显示模块根据时间戳值从缓存中读取视频数据,并进行显示;同时,网络模块统计RTP数据包的接收情况,并把数据接收情况反馈到RTP数据发送端;

每个RTP数据包中只包含一个编码单元CU的数据,只有当视频连续产生的CU数据很少时,一个数据包容纳多个CU数据时,才将多个CU连接起来,放在一个RTP数据包中传送;RTP数据包的长度小于网络链路层的MTU值,网络链路层对传送的数据包的大小的限制,以太网的MTU值为1500字节,公用电话网的MTU值为576字节;在实际制作中,如果当前CU被分割成多个数据包,最后一个数据包长度小于CU数据包载荷长度的情况下,不把后一个CU的数据放入,而是按最后一个数据包原始长度大小发送;当多个CU被放在一个RTP数据包中进行传送时,用时间戳值表明这些CU中最早的采样时间,其它CU的时间戳值通过CU头中的时间戳值来恢复;时间戳值的分辨率为80~90kHz;

根据以上规则,RTP数据打包发送模块将HEVC视频编码模块传送过来的视频码流和时间戳值打成RTP数据包,并通过网络传送到接收端。

说明书 :

基于RTP/RTCP的HEVC实时视频传输控制方法

技术领域

[0001] 本发明一种基于RTP/RTCP的HEVC实时视频传输控制方法,涉及一种流媒体传输控制方法,特别是针对HEVC视频传输的基于RTP/RTCP反馈的控制机制。

背景技术

[0002] 21世纪是信息时代,各种媒介飞速发展,视频传输也不例外。现代视频在逐步的向以下几个方向发展:高清晰度、高帧率、高压缩率。
[0003] 面对以上的发展趋势,HEVC标准应运而生。HEVC是由ISO/IEC和ITU-T共同研发的继H.264/AVC后新一代高效视频编码标准。HEVC主要针对高清以及超高清的视频图像,其主要目标是在H.264/AVC标准的基础上,将高分辨率/高保真度的视频图像压缩效率提高一倍。即在保证相同视频图像质量的前提下,使视频流的码率减少50%,进而更好地适应各种不同的网络环境,同时能够支持多核并行编解码等新技术,将被广泛应用到流媒体、数字电视领域。在基于RTP的流媒体服务中,RTP自适应传输控制算法有十分重要的作用。利用反馈的网络状况、服务质量信息来调整传输速率,从而降低端到端延迟,预防网络拥塞,保证一定的服务质量,实现端到端的流量控制。因此,随着目前网上流媒体服务的进一步发展,该算法正受到越来越多的重视。因此,随着目前网上流媒体服务的进一步发展,如何在IP网上实时传输HEVC视频流对于IPTV,对于视频点播系统的应用有重要意义,正受到越来越多的重视。

发明内容

[0004] 本发明的目的是提供一种基于RTP/RTCP的HEVC实时视频传输控制方法,以提供一种端到端的传输控制方法,在不增加网络负载的前提下,提供准确有效的反馈信息,提高HEVC视频流媒体服务质量。
[0005] 一种基于RTP/RTCP的HEVC实时视频传输控制方法,具体控制方法如下:
[0006] 该方法包括发送程序和接收程序两部分:
[0007] (一)发送程序如下:视频采集使用根据25帧/秒~35帧/秒的采样频率,定时23ms~33ms从视频文件中读取图像帧数据放入视频采集缓存,并记录下此时时间戳值,由HEVC视频编码读取待编码图像,进行编码后,送至RTP数据打包发送模块进行处理后得到RTP数据包,发送到接收端。RTP数据打包发送模块根据RTP协议要求,在发送RTP数据包的同时发送RTCP数据包,RTCP数据包为RTP数据包的传送管理提供支持。通过RTCP数据包的NTP时间戳数据域和时间戳域,接收端可以恢复出RTP数据包中媒体数据的采样时刻,发送端传送比特计数数据域提供了发送端数据发送速率信息。
[0008] 同时接收来自接收端传送的RTCP数据包,并进行处理。
[0009] 其中,RTP数据打包发送模块进行处理后得到RTP数据包即对HEVC视频流打包的具体方法如下:
[0010] 通常情况下每个RTP数据包中只包含一个CU(Coding Unit,编码单元)的数据,只有当视频连续产生的CU数据很少时,一个数据包可以容纳多个CU数据时,才将多个CU连接起来,放在一个RTP数据包中传送。RTP数据包的长度小于网络链路层的MTU值(网络链路层对传送的数据包的大小的限制,以太网的MTU值为1500字节,公用电话网的MTU值为576字节)。在实际制作中,如果当前CU被分割成多个数据包,最后一个数据包长度小于CU数据包载荷长度的情况下,不把后一个CU的数据放入,而是按最后一个数据包原始长度大小发送。当多个CU被放在一个RTP数据包中进行传送时,用时间戳表明这些CU中最早的采样时间,其它CU的时间戳信息通过CU头中的时间戳域来恢复。时间戳的分辨率为80~90kHz。
[0011] 根据以上规则,RTP打包发送模块将HEVC视频编码模块传送过来的视频码流和时间戳信息打成RTP数据包,并通过网络传送到接收端。
[0012] RTP数据打包发送线程和视频编码线程之间的同步采用了事件内核对象来进行同步。程序运行之后,RTP数据打包发送线程处于等待之中,当视频编码完成一帧图像编码后,设置事件对象,通知RTP数据打包发送线程进行处理。当RTP数据打包发送线程处理完成后,又重置内核对象,然后进入等待下一次事件。
[0013] (二)接收程序如下:网络接收模块接收到RTP数据包后对其进行解包,存放在缓存中,同时把时间戳信息存放在一个队列中,由HEVC视频解码模块进行解码,解码数据存放在显示缓存中,最后,显示模块根据时间戳信息从缓存中读取视频数据,并进行显示。同时,网络模块统计RTP数据包的接收情况,并把数据接收情况反馈到RTP数据发送端。
[0014] 本发明基于RTP/RTCP的HEVC实时视频传输控制方法,其优点及功效在于:利用多媒体实时传输技术RTP/RTCP协议在不增加网络负载的前提下,及时、快速、有效的对HEVC视频实现实时传输,适应当前网络状况。

附图说明

[0015] 图1是本发明方法发送端流程框图。
[0016] 图2是本发明方法接收端流程框图。

具体实施方式

[0017] 下面结合附图和实施例,对本发明的技术方案做进一步的说明。
[0018] 图1,2是本发明的基于RTP/RTCP的HEVC实时视频传输控制方法过程图,其中图1是发送端流程框图,图2是接收端流程框图;
[0019] 其中,发送端程序包括三个模块:视频采集、HEVC视频编码和RTP打包发送模块。接收端程序包括三个模块,分别是网络接收模块、HEVC视频解码和显示。
[0020] 发送端视频采集使用根据25帧/秒~35帧/秒的采样频率,定时23ms~33ms从视频文件中读取图像帧数据放入视频采集缓存,并记录下此时时间戳值,由HEVC视频编码读取待编码图像,进行编码后,送至RTP数据打包发送模块进行处理后得到RTP数据包,发送到接收端。RTP数据打包发送模块根据RTP协议要求,在发送RTP数据包的同时发送RTCP数据包,RTCP数据包为RTP数据包的传送管理提供支持。通过RTCP数据包的NTP时间戳数据域和时间戳域,接收端可以恢复出RTP数据包中媒体数据的采样时刻,发送端传送比特计数数据域提供了发送端数据发送速率信息。
[0021] 同时接收来自接收端传送的RTCP数据包,并进行处理。
[0022] 其中,RTP数据打包发送模块中通常情况下每个RTP数据包中只包含一个CU(Coding Unit,编码单元)的数据,只有当视频连续产生的CU数据很少时,一个数据包可以容纳多个CU数据时,才将多个CU连接起来,放在一个RTP数据包中传送。RTP数据包的长度小于网络链路层的MTU值(网络链路层对传送的数据包的大小的限制,以太网的MTU值为1500字节,公用电话网的MTU值为576字节)。在实际制作中,如果当前CU被分割成多个数据包,最后一个数据包长度小于CU数据包载荷长度的情况下,不把后一个CU的数据放入,而是按最后一个数据包原始长度大小发送。当多个CU被放在一个RTP数据包中进行传送时,用时间戳表明这些CU中最早的采样时间,其它CU的时间戳信息通过CU头中的时间戳域来恢复。时间戳的分辨率为80~90kHz。
[0023] 根据以上规则,RTP打包发送模块将HEVC视频编码模块传送过来的视频码流和时间戳信息打成RTP数据包,并通过网络传送到接收端。
[0024] RTP数据打包发送线程和视频编码线程之间的同步采用了事件内核对象来进行同步。程序运行之后,RTP数据打包发送线程处于等待之中,当视频编码完成一帧图像编码后,设置事件对象,通知RTP数据打包发送线程进行处理。当RTP数据打包发送线程处理完成后,又重置内核对象,然后进入等待下一次事件。
[0025] 接收端接收数据后对RTP数据包进行解包,取出HEVC码流数据,送到HEVC解码器进行解码并显示,另外通过发送端发送的RTCP数据包的时间信息和RTP数据包的时间信息来对发送端传送的媒体流进行同步。接收端统计数据接收的状况,并将数据接收情况反馈到发送端。
[0026] 综上,本发明方法的传输控制机制主要是利用RTCP反馈信息,发送端发送RTCP报文,接收端反馈RTCP报文,发送端利用RTCP-RR报文分析网络状况。同时发送端定时发送RTCP探测包给接收端,探测网络带宽。RTCP灵活且体积小,不会给网络带来负担。