媒体流网络自适应单向控制方法及系统与流程

文档序号:11961324阅读:288来源:国知局
媒体流网络自适应单向控制方法及系统与流程

本申请涉及通信领域,具体涉及一种媒体流网络自适应单向控制方法及系统。



背景技术:

目前,安防行业已经在各地建立了多种监控网络,基于视频应用产生的网络流量在互联网总流量所占的比例也越来越高,随着视频媒体流的增多,会产生网络拥塞的现象,直接导致客户端播放卡顿、停滞等现象,造成用户体验差,严重时可能存在概率性关键信息缺失。而视频效果对网络拥塞特别敏感,当前的视频编码大多采用预测编码架构,造成帧与帧之间很强的时域依赖性,一旦出现丢包造成当前帧的解码错误,这个错误会沿着预测线路传递到后续的图像帧中,最终呈现给用户时断时续、花屏等视频效果。

在网络传输过程中,对带宽的判断或者当前网络状况(如丢包率等信息)的获取是一个重要的技术环节,相关检测手段已存在很多,但多半实现复杂且可能最终还是无法完全应对当下复杂的网络组网环境。

当前针对网络传输中不稳定带宽而采取的自适应数据传输方法已存在很多,例如通过带宽预测来进行自适应。

现有的第一种媒体流自适应传输方法,通过在媒体流接收端建立网络拥塞检测模块并利用RTCP(Realtime Transport Control Protocol,实时传输控制协议,即反馈控制法)将检测结果反馈给发送端,发送端根据此信息触发编码器编码拓展策略(如针对实时流场景的跳帧编码等)或者选择性丢失帧传输(针对存储流点播场景)来完成自适应传输,最终实现在网络运行条件不断变化的情况下,客户端能够获得尽可能好的播放质量。该媒体流自适应传输方法需要多个对象(发送端和接收端)的配合,而多个对象不仅会带来不同厂商件产品的兼容问题,还增加了第三方配合的额外成本。

现有的第二种媒体流自适应传输方法,也是在媒体流接收端通过RTCP协议感知实时带宽并发送至发送端,发送端在启动选择性丢帧和动态码率控制之前,增加了对媒体流的分组处理,根据实时带宽来控制媒体流的组间发送间隔,以试图降低通信过程中的突发丢包对视频传输产生的影响。第二种媒体流自适应传输方法同样存在兼容和第三方配合增加的额外成本问题,该方法虽然在一定程度上降低突发丢包命中媒体流的概率,但再出现实时带宽不稳定且跨度较大的情况时,只能依赖减少发送数据(如选择性丢帧、降低码率等)的方式,使发送的总数据与带宽相匹配,这会造成图像细节的缺失。



技术实现要素:

有鉴于此,本申请提供一种媒体流网络自适应单向控制方法及系统,以解决现有技术中存在的接收端和发送端配合进行媒体流传输的自适应所带来的兼容和第三方配合的问题。

具体地,本申请是通过如下技术方案实现的:

一种媒体流网络自适应单向控制方法,应用于媒体流发送端,该方法包括:

缓存媒体流并发送该媒体流至接收端;

实时监测该发送端的缓存数据量与发送数据量,若缓存数据量大于发送数据量,则获取实时带宽;

根据所述实时带宽,触发媒体流的选择性发送。

进一步地,获取实时带宽的方式为:获取缓存数据量大于发送数据量的预设自适应时间,以及该预设自适应时间内所述发送端的自适应点累积数据量;

根据预设自适应时间、自适应点累积数据量以及预设的发送端的编码码率,计算实时带宽。

进一步地,所述媒体流选择性发送的时间为预设时间阈值时,若该发送端内的总数据量大于等于自适应点累积数据量,则根据预配置的媒体流编码配置表,降低该发送端的编码码率。

进一步地,所述发送端通过选择性丢帧实现媒体流的选择性发送,具体包括:

发送所述媒体流的I帧和紧邻该I帧的部分P帧。

进一步地,若该发送端恢复至缓存数据量等于发送数据量,则对单位时间内超出实时带宽的媒体流进行空操作;或者,按照预设帧间隙增加单位时间内发送的媒体流数据量。

对应用本申请的媒体流网络自适应单向控制方法,本申请还提供一种媒体流网络自适应单向控制系统。

一种媒体流网络自适应单向控制系统,应用于媒体流发送端,该系统包括:

缓存模块,缓存媒体流;

业务发送模块,从缓存模块取出媒体流并发送至接收端;

自适应控制模块,实时监测所述缓存模块的缓存数据量与取出数据量,若缓存数据量大于取出数据量,则获取实时带宽,并根据所述实时带宽,触发所述业务发送模块对媒体流的选择性发送。

进一步地,所述自适应控制模块获取实时带宽的方式为:获取所述缓存模块的缓存数据量大于取出数据量的预设自适应时间,以及该预设自适应时间内所述缓存模块缓存的自适应点累积数据量;

根据预设自适应时间、自适应点累积数据量以及预设的缓存模块的编码码率,计算实时带宽。

进一步地,该系统还包括:

视频编码模块,按照预设编码码率存储媒体流至缓存模块中;

所述业务发送模块进行媒体流选择性发送的时间为预设时间阈值时,所述自适应控制模块获取所述缓存模块内的总数据量,若所述缓存模块内的总数据量大于等于自适应点累积数据量,所述视频编码模块则根据预配置的媒体流编码配置表,降低编码码率。

进一步地,所述业务发送模块是通过选择性丢帧实现对媒体流的选择性发送,所述业务发送模块具体包括:

发送所述媒体流的I帧和紧邻该I帧的部分P帧。

进一步地,所述自适应控制模块若判断所述缓存模块恢复至缓存数据量等于取出数据量,则触发所述业务发送模块对单位时间内超出实时带宽的媒体流进行空操作;或者,触发所述业务发送模块按照预设帧间隙增加单位时间内发送的媒体流数据量。

本申请的有益效果:通过在发送端使用了单向感测实时带宽的方式来调节该发送端的数据发送,以适应带宽变差时的数据的发送,改善接收端由于实时带宽剧烈波动导致的图像时断时续、卡顿和停滞等问题,同时,单向(发送端)感测带宽无需考虑多设备的兼容和第三方配合问题,大大降低了由于复杂组网、复杂技术和复杂交互等可能带来的维护成本和风险因素。

附图说明

图1是本实施例提供的媒体流网络自适应单向控制方法流程图;

图2是本实施例提供的发送端在网络波动时的数据发送示意图;

图3是本实施例提供的媒体流网络自适应单向控制系统结构框图;

图4是本实施例提供的缓存模块在网络正常时的数据读/取示意图;

图5是本实施例提供的缓存模块存储的数据结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

参见图1,本实施例提供的一种媒体流网络自适应单向控制方法,应用于媒体流发送端(例如视频监控设备),包括如下步骤:

S101:缓存媒体流并发送该媒体流至接收端(例如服务器)。

按照用户配置参数(例如预设的编码码率)进行编码,并将编码后的媒体流数据缓存于该发送端中,发送端定时ts(单位:ms)时间取出ES(Elementary Steams,原始流)数据,按照预定格式封装打包后发送至接收端。

其中,媒体流数据是以帧为单位的。

本实施例的ts=1000/帧率,ts即为发送端发送一帧媒体流数据的时间间隔。

预定格式在媒体流创建时已经确认,例如该媒体流的格式可以为MPEG(Moving Picture Experts Group,动态图像专家组)格式。

在一具体实施例中,为了保证媒体流数据能够完整的发送到接收端,选择具有重传机制的TCP协议(Transmission Control Protocol,传输控制协议)作为发送端与接收端的传输层协议,发送端通过TCP协议将媒体流发送至接收端,以保证发送端与接收端之间通信的可靠性。

S102:实时监测该发送端的缓存数据量与发送数据量,若缓存数据量大于发送数据量,则获取实时带宽。

在网络环境顺畅时,发送端的媒体流缓存速率vg(即编码码率)与发送速率vs是相等的,发送端中的数据状态类似“即入即出”。当网络出现波动(带宽变差)时,TCP协议启动重传,会存在通过TCP协议无法成功将发送端的数据发送至接收端的情况,此时,发送端的缓存数据量大于发送数据量,数据堆积在发送端中。网络状况越差,发送端堆积的数据量越严重。

在一个具体实施例中,参见图2,由于TCP协议的可靠性传输机制,在网络波动时,已通过TCP协议发送出去的数据可保证到达接收端,但会导致发送端每隔ts时间发送给基于TCP协议的网络结构的数据不一定能成功,常规情况下该未发送成功的数据会被丢弃,因而导致接收端卡顿。本实施例中,发送端会对未成功的送入基于TCP协议的网络结构的数据进行保存,ts时间后的下次发送被触发时,会优先发送该未发送成功的数据。

本实施例获取实时带宽的方式为:获取该发送端缓存的缓存数据量大于发送数据量的预设自适应时间t(单位:s),以及该预设自适应时间t内,发送端中堆积的自适应点累积数据量A(单位:KB);

根据预设自适应时间t、自适应点累积数据量A以及预设的发送端的编码码率Bv(单位:kbps),计算实时带宽Ba(单位:kbps):

Ba=kBv; (1)

A=(t(1-k)Bv)/8; (2)

其中,k为实时带宽占预设的编码码率Bv的比例系数。

结合公式(1)和(2),得出:Ba=Bv-(A*8)/t。

由于发送端的数据堆积,预设自适应时间t若取得较大,若发送端继续按照缓存速率vg=发送速率vs来进行数据的缓存与发送,则传输到接收端的媒体流会产生显著的延时。预设自适应时间t若取得较小,容易导致自适应点累积数据量A统计不准确,导致实时带宽Ba计算不准确。

在本实施例中,预设自适应时间t是动态配置的,为叠带自适应的中间过渡,本实施例的预设自适应时间t取值的依据是:在该预设自适应时间t内,自适应点累积数据量小于等于预设数据量阈值。

在一较为优选的实施例中,预设数据量阈值=(该发送端允许存储的数据量/2)。

本实施例的预设自适应时间t默认取值为2tm/5,其中,tm为在常规码率下,发送端允许存储数据量的最大时间,单位为s(秒)。

S103:根据实时带宽,触发媒体流的选择性发送。

本实施例中,发送端进行媒体流的选择性发送是通过选择性丢帧实现的。

在一较为优选的实施例中,选择性丢帧是通过如下方式实现:发送端只发送媒体流的I帧和紧邻该I帧的部分P帧,使得单位时间内发送的媒体流数据量为:实时带宽Ba,从而减少发送的数据量,使得发送端发送的数据量与实时带宽相匹配,以兼顾当前实际网络带宽变差造成的图像时断时续、卡顿或停滞等问题,又不会影响接收端(即解码端)正常解码。

正常(即网络顺畅)每个间隔时间到时,发送端会取连贯的下一帧组数据发送,由于带宽变差,若发送端继续按照上述方式发送数据,会造成显著的延时,故本实施例通过选择性丢帧,将每个发送间隔内,发送端本该发送每一帧组数据中的若干P帧(例如每一帧组数据末尾几个P帧)设置成发送下一帧组数据,以减少发送端发送的数据量,逐步追上该发送端存储的最新帧,从而使延时恢复。

在一具体实施例中,发送端被配置为在网络顺畅时每秒发送一个帧组数据(一个帧组数据由1个I帧和24个P帧组成),ts=40ms,即每隔40ms发送一帧数据。实际带宽不足会导致发送端缓存数据的累积,从而触发发送端的选择性发送,发送端只发送I帧和10个P帧的数据量,以达到实际网络能够承受的带宽,此时,下一个发送间隔到达时,本该发送当前I/P帧组中的第11个P帧,发送端直接跳过第11-24个P帧并遍历该发送端的缓存,直至查询到下个帧组的I帧,进行发送。

在发送端选择性发送媒体流数据后,发送端会实时获取缓存数据量和发送数据量并进行判断,若该发送端恢复至缓存数据量等于发送数据量(即“即入即出”状态),则发送端对单位时间内超出实时带宽Ba的媒体流进行空操作。即在发送端恢复至“即入即出”状态后,发送端在每个间隔发送的媒体流数据量恢复至与该发送端缓存的媒体流数据量相等,只是对于单位时间内已超出Ba的媒体流只进行缓存操作,但不发送(即无需取新的帧发送)至接收端。

同时,若该发送端恢复至缓存数据量等于发送数据量,发送端则按照预设帧间隙增加单位时间内发送的媒体流数据量。若发送端维持“即入即出”状态t秒,发送端则持续按照预设帧间隙增加发送的数据量直至接收端的图像恢复正常。

在本实施例中,预设帧间隙为多发送一个P帧(慢升,单级逐步回升策略),发送端通过该小间隙持续恢复发送的数据量,可保证发送端在发送媒体流时基本不丢失数据并且达到平滑试探回升的效果。

本实施例中,在发送端选择性发送媒体流数据后,当发送端进行媒体流选择性发送的时间为预设时间阈值时,若该发送端内缓存堆积的总数据量≥自适应点累积数据量A,则发送端会根据预配置的媒体流编码配置表,降低该发送端的编码码率。

在一较为优选的实施例中,预设时间阈值=(预设自适应时间t/2)。

由于在高分辨率下,编码的码率过低会导致图像的效果不好,故本实施例根据图像效果建立一张各分辨率下的媒体流低配置表。参见表1,为本实施例的媒体流编码配置表。

表1

表1中,码率、帧率以及GOP(Group of Pictures,画面组)相对应,GOP=帧率。

在一具体实施例中,在分辨率为1080P下,编码码率配置为Bv=2048kbps,实际带宽Ba=1599kbps,根据表1,调整编码码率Bv=1024kbps,即至少降低两级(快降),以减少发送端存储的数据量,从而使得在带宽变差时,发送端能自动提供给接收端与带宽相契合的最佳图像,即发送端能根据该表1自动适配不同带宽。

本实施例通过媒体流低配置表和“快降慢升”的原则实现分级调整发送端的数据量发送,以逐步逼近实际带宽。

在另一实施例中,为使视频效果至少与常规码率下的视频效果相当,通过对视频进行智能编码或提高编码压缩率,再存储编码后的媒体流至发送端,减少发送端单位时间内发送的数据量,以降低发送端发送数据至接收端时,对于高带宽的依赖。

本实施例中,在网络波动时,由于发送端进行了媒体流的选择性发送,会造成图像细节的丢失,鉴于此,可触发发送端的本地化存储,实现对选择性发送的媒体流的全部存储,进而在关键敏感的场合达成双重保障的目标。

在需要浏览存储的媒体流时,可直接使用可热拔插的SD卡(Secure Digital Memory Card,安全数码卡)拷贝到接收端进行浏览;或者在带宽充足时,由FTP(File Transfer Protocol,文件传输协议)工具等进行上传到接收端进行浏览。

本实施例的媒体流网络自适应单向控制方法在发送端使用了单向感测实时带宽的方式来调节该发送端的数据发送,以适应带宽变差时的数据的发送,改善接收端由于实时带宽剧烈波动导致的图像时断时续、卡顿和停滞等问题,同时,单向(发送端)感测带宽无需考虑多设备的兼容和第三方配合问题,大大降低了由于复杂组网、复杂技术和复杂交互等可能带来的维护成本和风险因素。

参见图3,为本申请一实施例提供的媒体流网络自适应单向控制系统,与上述媒体流网络自适应单向控制方法相对应,可参照上述媒体流网络自适应单向控制方法的实施例来理解或解释该媒体流网络自适应单向控制系统的内容。

本实施例的媒体流网络自适应单向控制系统应用于媒体流发送端,该系统包括缓存模块2、自适应控制模块5和业务发送模块3。

其中,缓存模块2用以缓存媒体流。本实施例通过在发送端设置视频编码模块1,该视频编码模块1按照用户配置参数(例如预设的编码码率)进行编码,并按照预设编码码率将编码后的媒体流数据存储至缓存模块2中。

缓存模块2的存储数据量上限可根据需要选择。在本实施例中,设定缓存模块2允许缓存的数据量的上限为M0(单位:MB):

M0=(v*tm/8)/1024 (3)

其中,v为常规码率,单位为kbps;

tm为在常规码率下,发送端允许存储数据量的最大时间,单位为s(秒)。

业务发送模块3用以从缓存模块2取出媒体流并发送至接收端。其中,业务发送模块3是定时(例如选择业务发送模块3发送数据的时间为ts)取出缓存模块2中的数据,并按照预定格式封装打包后发送至接收端。

本实施例的业务发送模块3包括发送模块子缓存(图中未显示),存储业务发送模块3未成功发送至接收端的媒体流并在下次发送时,由业务发送模块3优先将该媒体流发送至接收端。

网络正常时,参见图4,在单位时间(例如1秒)内,业务发送模块3从缓存模块2中取出的数据量等于视频编码模块1编码存储至该缓存模块2的缓存数据量,缓存模块2处于“即入即出”的状态。

但在网络波动(带宽变差)时,将出现业务发送模块3无法成功将媒体流发送至接收端的状况,此时,业务发送模块3并不丢弃未能发送至接收端的媒体流,而是将该媒体流存储在发送模块子缓存中,下次发送触发时,业务发送模块3不再从缓存模块2中取数据,而是优先从发送模块子缓存中取前次发送未完成的数据进行发送,从而导致缓存中的数据产生堆积。发送模块子缓存的大小可根据需要设置,在本实施例中,发送模块子缓存的能存储的数据量为2-3帧数据量。

为保证媒体流数据能够完整的发送到接收端,本实施例还包括TCP可靠传输模块4,该TCP可靠传输模块4接收自业务发送单元的媒体流并通过TCP协议转发该媒体流至接收端,TCP协议能够保证发送端与接收端通信的可靠性。

由于TCP协议的可靠性传输机制,在网络波动时,已通过TCP可靠传输模块4发送出去的数据可保证到达接收端,但会导致发送端每隔ts时间发送给TCP可靠传输模块4的数据不一定能成功,常规情况下该未发送成功的数据会被丢弃,因而导致接收端卡顿。本实施例中,业务发送模块3的发送模块子缓存会对未成功的送入TCP可靠传输模块4的数据进行保存,ts时间后的下次发送被触发时,会优先发送该未发送成功的数据。

自适应控制模块5实时监测缓存模块2的缓存数据量与取出数据量,若缓存数据量大于取出数据量,则获取实时带宽,并根据实时带宽,触发业务发送模块3对媒体流的选择性发送。

本实施例中,自适应控制模块5获取实时带宽的方式为:获取缓存模块2的缓存数据量大于取出数据量的预设自适应时间t,以及该预设自适应时间t内,缓存模块2缓存的自适应点累积数据量A;

根据预设自适应时间t、自适应点累积数据量A以及预设的缓存模块2的编码码率Bv,计算实时带宽Ba

参见图5,视频编码模块1缓存至缓存模块2的每一帧组数据均由一个I帧和若干P帧组成。其中,帧率为F,则GOP(Group of Pictures,画面组)=F。网络正常时,业务发送模块3在单位时间内会从缓存模块2中取出一个完整的帧组数据并发送。

在网络波动时,为适应变差的带宽,业务发送模块3需要减少发送的媒体流数据量,从而改善接收端由于带宽变差导致的图像时断时续、卡顿和停滞等问题,本实施例的业务发送模块3是通过选择性丢帧实现对媒体流的选择性发送。

在一较为优选的实施例中,业务发送模块3选择性丢帧是通过如下方式实现的:业务发送模块3只发送媒体流的I帧和紧邻该I帧的部分P帧,使得业务发送模块3在单位时间内发送至接收端的数据量近似等于实时带宽Ba,从而减少业务发送模块3发送的数据量,以兼顾当前实际网络带宽变差造成的图像时断时续、卡顿或停滞等问题,又不会影响接收端的正常解码。

业务发送模块3在每个发送间隔内,将本该发送每一帧组数据中的若干P帧(例如每一帧组数据末尾几个P帧)设置成发送下一帧组数据,以减少发送端发送的数据量,逐步追上该发送端存储的最新帧,从而使延时恢复。

同时,在自适应控制模块5判断缓存模块2恢复至缓存数据量等于取出数据量(即缓存模块2处于“即入即出”的状态)时,触发业务发送模块3对单位时间内超出实时带宽Ba的媒体流进行空操作,即业务发送模块3只从缓存模块2中读取媒体流而不发送该媒体流至TCP可靠传输模块4,以实现业务发送模块3在单位时间内发送的数据量恢复成与缓存模块2帧产生量(即视频编码模块1存储至缓存模块2的数据量)相同。

当然,在自适应控制模块5判断缓存模块2恢复至缓存数据量等于取出数据量时,还触发业务发送模块3按照预设帧间隙(例如一个P帧)增加单位时间内发送的媒体流数据量,可保证发送端在发送媒体流时基本不丢失数据并且达到平滑试探回升的效果。

当业务发送模块3进行媒体流选择性发送的时间为预设时间阈值(例如该预设时间阈值=预设自适应时间t/2)时,自适应控制模块5获取缓存模块2中的总数据量,若自适应控制模块5判断出缓存模块2中的总数据量≥自适应点累积数据量,则触发视频编码模块1根据预配置的媒体流编码配置表,降低存储至缓存模块2的编码码率,以减少缓存模块2存储的数据量,从而使得在带宽变差时,发送端能自动提供给接收端与带宽相契合的最佳图像,即发送端能根据该媒体流编码配置表自动适配不同带宽。

在网络波动时,由于业务发送模块3进行了媒体流的选择性发送,会造成图像细节的丢失,故在一具体实施例中,该媒体流网络自适应单向控制系统还包括本地存储模块6,该本地存储模块6在自适应控制模块5触发业务发送模块3进行媒体流的选择性发送时,接收自缓存模块2的媒体流并进行本地存储,实现对选择性发送的媒体流的全部存储,进而在关键敏感的场合达成双重保障的目标。

本实施例的媒体流网络自适应单向控制系统在发送端使用了单向感测实时带宽的方式来调节该发送端的数据发送,以适应带宽变差时的数据的发送,改善接收端由于实时带宽剧烈波动导致的图像时断时续、卡顿和停滞等问题,同时,单向(发送端)感测带宽无需考虑多设备的兼容和第三方配合问题,大大降低了由于复杂组网、复杂技术和复杂交互等可能带来的维护成本和风险因素。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1