CN111757151A - 基于rtp协议的视频流发送方法、装置、设备和介质 - Google Patents
基于rtp协议的视频流发送方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN111757151A CN111757151A CN202010624290.2A CN202010624290A CN111757151A CN 111757151 A CN111757151 A CN 111757151A CN 202010624290 A CN202010624290 A CN 202010624290A CN 111757151 A CN111757151 A CN 111757151A
- Authority
- CN
- China
- Prior art keywords
- bandwidth
- time slot
- current
- sent
- sending
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2385—Channel allocation; Bandwidth allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44245—Monitoring the upstream path of the transmission network, e.g. its availability, bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请属于研发管理技术领域,公开了一种基于RTP协议的视频流发送方法、装置、计算机设备及可读存储介质。所述方法包括根据视频流的时间戳以及系统时间,计算所述视频流中当前关键帧周期的时隙号;获取当前时隙号对应的当前时隙的已发送带宽,其中,所述已发送带宽为当前时隙已发送的数据包的数据量;判断所述已发送带宽是否小于目标数据量;并根据判断结果发送所述当前数据包。其中,所述视频流可存储于区块链中。采用本方法解决了现有技术中由于关键帧与非关键帧在数据体量上的巨大差异,导致发送带宽不平滑,不利于估算整个网络的带宽需求的技术问题。
Description
技术领域
本申请涉及研发管理技术领域,特别是涉及一种基于RTP协议的视频流发送方法、装置、计算机设备和存储介质。
背景技术
在一个视频流中,各帧的间隔一般是相同的,但是编码后的数据量却有很大的差异。比如在H.264编码中,关键帧(IDR,大数据量)与非关键帧(Non-IDR,小数据量),可能会有数倍,甚至数百倍的差异。发送端严格匹配时间戳(RTP包头中的时间戳,表示所带负载数据所属视频帧期望被回放的时间)进行发送时,发送带宽上会有明显的峰谷效应,导致网络负载不平衡,同时,由于UDP协议不可靠的特点,突发的大量关键帧数据包,容易导致接收端缓存溢出发生丢包。且在单个关键帧周期内,由于关键帧与非关键帧在数据体量上的巨大差异,导致发送带宽不平滑,不利于估算整个网络的带宽需求,增加了多个数据量波峰重叠,降低了全网带宽的实际利用率。
发明内容
基于此,本申请提供一种基于RTP协议的视频流发送方法、装置、计算机设备及存储介质,以解决现有技术中由于关键帧与非关键帧在数据体量上的巨大差异,导致发送带宽不平滑,不利于估算整个网络的带宽需求的技术问题。
一种基于RTP协议的视频流发送方法,所述方法包括:
根据视频流的时间戳以及系统时间,计算所述视频流中当前关键帧周期的时隙号;
获取当前时隙号对应的当前时隙的已发送带宽,其中,所述已发送带宽为当前时隙已发送的数据包的数据量;
判断所述已发送带宽是否小于目标数据量SBW;并
根据判断结果发送当前数据包。
一种基于RTP协议的视频流发送装置,所述装置包括:
时隙模块,用于根据视频流的时间戳以及系统时间,计算所述视频流中当前关键帧周期的时隙号和时隙数量;
带宽模块,用于获取当前时隙号对应的当前时隙的已发送带宽,其中,所述已发送带宽为当前时隙已发送的数据包的数据量;
判断模块,用于判断所述已发送带宽是否小于目标数据量SBW;并
发送模块,用于根据判断结果发送当前数据包。
一种计算机设备,包括存储器和处理器,以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于RTP协议的视频流发送方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于RTP协议的视频流发送方法的步骤。
上述基于RTP协议的视频流发送方法、装置、计算机设备和存储介质,通过在接收节点根据实时带宽动态计算,并依据平均带宽,在下一关键帧周期控制每一个时隙的发送带宽,使含当前关键帧在内的所有关键帧的数据包都以平滑的方式发送,消除了发送带宽的峰谷效应,即使关键帧与非关键帧在数据体量上存在巨大差异,也能保证发送带宽平滑,有利于估算整个网络的带宽需求。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的基于RTP协议的视频流发送方法的应用环境示意图;
图2为本申请实施例提供的基于RTP协议的视频流发送方法的流程示意图;
图3为图2的逻辑流程图;
图4为发送后带宽后的曲线图;
图5为本申请实施例提供的基于RTP协议的视频流发送方法的另一实施例的流程示意图;
图6为本申请实施例提供的基于RTP协议的视频流发送装置的示意图;
图7为一个实施例中计算机设备的示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本申请的目的、技术方案及优点更加清楚明白,下面结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的基于RTP协议的视频流发送方法,可以应用于如图1所示的应用环境中。其中,该应用环境可以包括终端102、网络以及服务端104,网络用于在终端102和服务端104之间提供通信链路介质,网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端102通过网络与服务端104交互,以接收或发送消息等。终端102上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端102可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group AudioLayer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts GroupAudio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务端104可以是提供各种服务的服务器,例如对终端102上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的基于RTP协议的视频流发送方法一般由服务端/终端执行,相应地,基于RTP协议的视频流发送装置一般设置于服务端/终端设备中。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中
应该理解,图1中的终端、网络和服务端的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
其中,终端102通过网络与服务端104进行通信。服务端104根据视频流的时间戳以及系统时间计算视频流中当前关键帧周期的时隙号,并获取该时隙对应的已发送带宽,判断已发送带宽与目标数据量后,再根据判断结果发送当前数据包,当前数据包可以发送到终端102上,也可以发送到服务端上的其他存储节点上。其中,终端102和服务端104之间通过网络进行连接,该网络可以是有线网络或者无线网络,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务端104可以用独立的服务器或者是多个组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种基于RTP协议的视频流发送方法,以该方法应用于图1中的服务端为例进行说明,包括以下步骤:
步骤202,根据视频流的时间戳以及系统时间,计算视频流中当前关键帧周期的时隙号。
关键帧周期:两个相邻关键帧的时间戳差值。
关键帧周期带宽(BW):关键帧周期内所有帧的数据总量/关键帧周期;
具体地,时隙号的计算方式为:
获取预设时间时隙;根据系统时间、时间戳以及预设时间时隙,计算当前关键帧周期的时隙号SegId。
比如,预设时间时隙设定为10ms时,可取系统时间,并对预设时间时隙为10ms取模计算,即将一个时隙长度设为10ms,长度决定后,即可以根据视频流上的时间戳计算出一个关键帧周期包含多少个时隙,每个时隙在系统上所对应的时隙号。比如,典型高清H264流,带宽一般几百KB,则平均每10ms需要传输几个KB,而一个满载的RTP数据包为1.5KB,这样,每个时隙几个到十几个数据包,容易体现控制效果。
一个固定的时间间隙,作为控制发送数据量的统计周期单元,如设定为10ms,则相对于把1秒钟分割为100个控制单元,本实施例的目的就是控制每个时隙的平均包数量在10个左右(5~15个),过大与过小都影响效果。
需要强调的是,为进一步保证上述视频流信息的私密和安全性,上述视频流信息还可以存储于一区块链的节点中。
步骤204,获取当前关键帧周期的时隙号对应的当前时隙的已发送带宽,其中,已发送带宽为当前时隙已发送的数据包的数据量。
根据计数器检测当前时隙是否为新时隙;若是新时隙,则清空所述已发送带宽;若不是新时隙,则获取所述已发送带宽。可以用一个计数器,检测当前的时隙是否为新的时隙;计数器用于记录当前时隙的时隙号,每进入一个新的时隙,计数器都会新增一个数。本实施例中,每当进入一个新时隙,则将已发送带宽清空为0,然后每发送一个数据包,则加上一个数据包的大小,等进入下一个时隙再清空已发送带宽。通过这种方式获取当前时隙的已发送带宽。
步骤206,判断已发送带宽是否小于目标数据量。
目标数据量SBW为当前时隙预期应该发送的带宽大小。
若已发送带宽小于目标数据量SBW,则说明还有剩余的带宽发送当前数据包。比如,如果有待发送1500,已发送7500<目标数据量SBW为8000,则在当前时隙发送大小为1500的数据包,虽然最终当前时隙的已发送带宽大于目标数据量,但是在下一次判断时会直接通过新的时隙发送新的数据包,防止数据包都在同一时隙发送导致的波峰的情况。
其中,系统时间轴中的每一个具体时间点,都有一个确定的间隙号,称为SegId;整个工作过程,从算法开始点为原点,其实际时间的流逝过程,构成一个时间轴。将目标带宽,即关键帧周期带宽BW平均分布到每一个间隙,此间隙目标数据量称为SBW。
步骤208,根据判断结果发送当前数据包。
判断结果若是小于,则在当前时隙发送当前数据包,将当前数据包的数据量更新到当前时隙的已发送带宽中,并重复判断已发送带宽是否小于目标数据量SBW的过程,发送下一数据包。
其中,在当前数据包发送完成后,会处理下一数据包,所以需要重复判断的过程,进行关键帧周期的其他数据包的发送。因为所有的待发送数据包都在一个队列中,本实施例就是逐个处理这些数据包的。
若大于,则暂停发送数据包进行等待,直到当前时隙结束,将下一时隙作为当前时隙,并重复获取当前时隙的已发送带宽、判断当前时隙的已发送带宽是否小于目标数据量SBW,发送当前数据包的操作,直到当前关键帧周期的所有数据包依次发送完毕。
本实施例的算法是运行服务端的视频流处理节点上,处理和控制发送端源源不断发送来的视频流,本节点处理和控制时会有暂停向接收端发送的情况,等待期间,本节点不往外发送数据,但是发送端是自由发送的,所以本节点依然在接收数据,并对收到的数据进行预处理,将需转发的置入待发送数据包队列)。等待相当于强制暂停的发送,发生等待说明这个时隙期望发送的数据包太多,如果不暂停那么就会导致下发数据出现一个波峰。暂停以后,数据延缓到后续时隙(或者多个时隙)发出,填补了后续时隙的波谷,但保持每个关键帧周期内发送的数据总量不变。
如图3是数据包发送的流程图:
其中,LEN为一个数据包的大小,以字节表示;
CurSegID为当前时隙的时隙号,CalcSegID()为计算当前时隙号的函数。
Used为在当前时隙已发送的数据量,SBW为当前时隙可以发送的数据量,称为目标数据量。
Sleep为当前时隙不能发送当前数据包时,在等待下一时隙时所需要等待的过程。
如图3所示,以一个具体实例解释附图中的流程:
若,开始时的参数值:
SegId=158048364783
SBW=8000字节
Used=6000(此时隙已发送6000字节);
1)第1个包(第1次循环)
假设LEN=1500字节;当前时间1580483647833(ms),计算CurSegId=158048364783,CurSegId==SegId(还处于同一个时隙);
检查使用量,即当前时隙的已发送带宽;
若Used(6000)<SBW(8000),表示当前时隙还能够发送,将将要发送的数据包的大小更新到已发送带宽中,Used=Used+LEN,即Used=6000+1500=7500;
发送数据包。
2)第2个包(第2次循环)
假设LEN=1300字节;
当前时间1580483647835(ms),计算CurSegId=158048364783;
CurSegId==SegId(还处于同一个时隙);
检查使用量,Used(7500)<SBW(8000),还能发送,更新Used=Used+LEN,即Used=7500+1300=8800;
发送数据包。
2)第3个包(第3次循环);
假设LEN=1300字节,当前时间1580483647837(ms),计算CurSegId=158048364783
CurSegId==SegId(还处于同一个时隙);检查使用量,Used(8800)>=SBW(8000);
已超量,等待至下一Seg(1580483647840毫秒,还差3ms)开始;
即,Sleep(3ms);
Sleep结束后(第4次循环),当前时间1580483647840(ms),计算CurSegId=158048364784;
CurSegId<>SegId(已进入另外时隙),更新SegId=CurSegId(158048364784)
更新Used=LEN(1300);
发送数据包。
其中,图3中:当CurSegId==SegID判断为No,说明现在进入了一个新的时隙。
做两个操作:
SegId=CurSegId;把时隙号更新为当前的实际时隙;
Used=LEN;
已经决定发这个数据包,将Used(即计数器)置为当前数据包的大小(图中省略了清零)。
通过上述方式进行视频流发送后带宽曲线表示如图4所示。
上述基于RTP协议的视频流发送方法中,通过在接收节点根据实时带宽动态计算,并依据平均带宽,在下一关键帧周期控制每一个时隙的发送带宽,使含当前关键帧在内的所有关键帧的数据包都以平滑的方式发送,消除了发送带宽的峰谷效应。
在一个实施例中,如图5所示,在步骤206之前,还包括:
步骤502,根据时隙号、时间戳确定当前关键帧周期的时隙数量。
步骤504,获取上一关键帧周期的实际带宽。
步骤506,根据实际带宽获取当前关键帧周期的发送带宽。
进一步地,可以根据公式(1):
TBW=(LBW×0.75+TBW×0.25)×GAIN×Max(1.0,log BL) (1)
计算得到当前关键帧周期的发送带宽,其中,公式(1)等号右侧的TBW为上一关键帧周期的发送带宽,公式(1)等号左侧的TBW为当前关键帧周期的发送带宽,LBW为实际带宽,,GAIN为发送带宽增益,BL为发送缓存排队时长。
具体地,GAIN为发送带宽增益GAIN>=1.0,以略高于发送带宽发送,避免数据积压,因为实际带宽的起伏不受节点的控制,为了尽量避免积压,引入大于1.0的GAIN,适度调大控制值。公式(1)中,当第一次发送数据包时,需要设定一个初始的TBW,比如300KB/s,一般也是根据经验得到的。
在计算当前关键帧周期的发送带宽TBW时,加入一个GAIN,适度调大,发送增益GAIN,用于调整算法对带宽的平抑力度,越大的值倾向于减弱算法效果,同时降低算法导致的时延。因为TBW根据过往统计计算,对于数据量将可能增大的情况,其反应始终有所滞后,所以在计算时适度调大,以减缓这种效应。
发送缓存排队长度(BL):BL是缓存中视频帧的数量。本节点作为视频流的转发节点,一直在接收上游发送的数据,所以在完成向下游发送之前,都需要缓存至发送队列。实际过程会包括数据收取、数据解析、处理、发送前打包、加入发送队列、由算法安排时间点发出。
具体地,LBW和TBW的权重是实际测试经验值,增加TBW的权重可减少相邻控制周期的带宽变化。
由于视频流实际上会由于图像内容变化而发生带宽变化,内容的变化经常体现一种时间上的连续性,所以分配LBW(即上一关键帧周期实际值)更大的权重(0.75),以更快的跟踪匹配变化趋势。上一个周期计算出来的TBW,这个是历史,这个周期开始后,重新计算。重新计算时,按一定权重(0.25)保留历史值,避免过大而引起起伏。更多考虑上一周期统计值(LBW),考虑带宽变化往往有连续性,这样能更快跟踪变化。
步骤508,按照时隙数量将发送带宽平均分布到每一时隙,得到每一时隙的目标数据量。
计算得到发送带宽后,可以按照时隙数量将发送带宽平均分布到每一个时隙,得到每一实习的目标数据量。
具体地,时间轴中的每一个具体时间点,都有一个确定的间隙号,称为SegId;整个工作过程,从算法开始点为原点,其实际时间的流逝过程,构成一个时间轴。将目标带宽,即当前关键帧周期带宽(BW)平均分布到每一个间隙,此间隙目标数据量称为SBW。
本实施例通过上一关键帧的发送带宽和实际发送带宽计算当前关键帧周期的每一时隙的目标数据量,对当前数据包进行发送,使得接收端能够以平滑的方式收到节点发送的数据包,平抑了负载波动,不易造成突发流量导致的接收缓存溢出,减少了丢包概率。这一点对低处理能力设备,效果将更为明显。同时,平滑的带宽占用,对整个网络各个中间转发节点,也有明显的好处,有利于更为精确的估算带宽需求,减少多个并发数据流波峰重叠而导致的QoS降级,最终达到全网带宽更高的实际利用率。
应该理解的是,虽然图2、图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种基于RTP协议的视频流发送装置,该基于RTP协议的视频流发送装置与上述实施例中基于RTP协议的视频流发送方法一一对应,包括:
时隙模块602,用于根据视频流的时间戳以及系统时间,计算视频流中当前关键帧周期的时隙号和时隙数量。
带宽模块604,用于获取当前关键帧周期的时隙号对应的当前时隙的已发送带宽,其中,已发送带宽为当前时隙已发送的数据包的数据量。
判断模块606,用于判断已发送带宽是否小于目标数据量SBW;以及
发送模块608,用于根据判断结果发送当前数据包。
需要强调的是,为进一步保证上述视频流信息的私密和安全性,上述视频流信息还可以存储于一区块链的节点中。
进一步地,时隙模块602,包括:
时隙子模块,用于获取预设时间时隙。
序号子模块,用于根据系统时间以及预设时间时隙,计算当前关键帧周期的时隙号。
进一步地,带宽模块604,包括;
检测子模块,用于检测当前时隙是否为新时隙;
清空子模块,用于若是新时隙,则清空已发送带宽;
获取子模块,用于若不是新时隙,则获取已发送带宽。
进一步地,在判断模块之前,基于RTP协议的视频流发送装置,还包括:
数量模块,用于根据时隙号、时间戳确定当前关键帧周期的时隙数量;
带宽模块,用于获取上一关键帧周期的实际带宽;
计算模块,用于根据实际带宽获取当前关键帧周期的发送带宽;
目标模块,用于按照时隙数量将发送带宽平均分布到每一时隙,得到每一时隙的目标数据量。
进一步地,发送模块608,包括:
第一判断子模块,用于当判断结果为已发送带宽不大于目标数据量,则在当前时隙发送当前关键帧周期的当前数据包;以及
第一发送子模块,用于将当前数据包的数据量更新到已发送带宽中,重复判断已发送带宽是否小于目标数据量的操作,发送下一数据包;
第二判断子模块,用于当判断结果为已发送带宽大于目标数据量,暂停发送数据包,直到系统时间到达下一时隙号;则
第二发送子模块,用于将下一时隙号对应的时隙作为当前时隙,并重复获取已发送带宽、判断已发送带宽是否小于目标数据量、发送当前数据包的操作,直到当前关键帧周期的所有数据包依次发送完毕。
上述基于RTP协议的视频流发送装置,通过在接收节点根据实时带宽动态计算,并依据平均带宽,在下一关键帧周期控制每一个时隙的发送带宽,使含当前关键帧在内的所有关键帧的数据包都以平滑的方式发送,消除了发送带宽的峰谷效应。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储视频流。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于RTP协议的视频流发送方法,通过在接收节点根据实时带宽动态计算,并依据平均带宽,在下一关键帧周期控制每一个时隙的发送带宽,使含当前关键帧在内的所有关键帧的数据包都以平滑的方式发送,消除了发送带宽的峰谷效应。
其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中基于RTP协议的视频流发送方法的步骤,例如图2所示的步骤202至步骤208,或者,处理器执行计算机程序时实现上述实施例中基于RTP协议的视频流发送装置的各模块/单元的功能,例如图5所示模块502至模块508的功能。为避免重复,通过在接收节点根据实时带宽动态计算,并依据平均带宽,在下一关键帧周期控制每一个时隙的发送带宽,使含当前关键帧在内的所有关键帧的数据包都以平滑的方式发送,消除了发送带宽的峰谷效应。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形、改进或者对部分技术特征进行等同替换,而这些修改或者替换,并不使相同技术方案的本质脱离本发明个实施例技术方案地精神和范畴,都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于RTP协议的视频流发送方法,其特征在于,所述方法包括:
根据视频流的时间戳以及系统时间,计算所述视频流中当前关键帧周期的时隙号;
获取当前关键帧周期的时隙号对应的当前时隙的已发送带宽,其中,所述已发送带宽为当前时隙已发送的数据包的数据量;
判断所述已发送带宽是否小于目标数据量;并
根据判断结果发送当前数据包。
2.根据权利要求1所述的方法,其特征在于,所述根据视频流的时间戳以及系统时间,计算所述视频流中当前关键帧周期的时隙号,包括:
获取预设时间时隙;
根据所述系统时间、所述时间戳以及所述预设时间时隙,计算所述当前关键帧周期的时隙号。
3.根据权利要求1所述的方法,其特征在于,所述获取当前关键帧周期的时隙号对应的当前时隙的已发送带宽,包括:
根据计数器检测当前时隙是否为新时隙;
若是新时隙,则清空所述已发送带宽;
若不是新时隙,则获取所述已发送带宽。
4.根据权利要求1所述的方法,其特征在于,在所述判断所述已发送带宽是否小于目标数据量之前,还包括:
根据所述时隙号、所述时间戳确定当前关键帧周期的时隙数量;
获取上一关键帧周期的实际带宽;
根据所述实际带宽获取当前关键帧周期的发送带宽;
按照所述时隙数量将所述发送带宽平均分布到每一时隙,得到每一时隙的所述目标数据量。
5.根据权利要求4所述的方法,其特征在于,所述根据所述实际带宽获取当前关键帧周期的发送带宽,包括:
根据公式:
TBW=(LBW×0.75+TBW×0.25)×GAIN×Max(1.0,logBL)
计算得到所述当前关键帧周期的发送带宽,其中,公式等号右侧的TBW为上一关键帧周期的发送带宽,公式等号右侧的TBW为当前关键帧周期的发送带宽,LBW为实际带宽,GAIN为发送带宽增益,BL为发送缓存排队时长。
6.根据权利要求1所述的方法,其特征在于,所述根据判断结果发送当前数据包,包括:
当所述判断结果为所述已发送带宽不大于所述目标数据量时,则在当前时隙发送所述当前关键帧周期的当前数据包;并
将所述当前数据包的数据量更新到所述已发送带宽中,重复判断所述已发送带宽是否小于所述目标数据量的操作,发送下一数据包;
当所述判断结果为所述已发送带宽大于所述目标数据量时,暂停发送数据包,直到系统时间到达下一时隙号;则
将下一时隙号对应的时隙作为当前时隙,并重复获取所述已发送带宽、判断所述已发送带宽是否小于所述目标数据量、发送当前数据包的操作,直到所述当前关键帧周期的所有数据包依次发送完毕。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述视频流保存于区块链中。
8.一种基于RTP协议的视频流发送装置,其特征在于,包括:
时隙模块,用于根据视频流的时间戳以及系统时间,计算所述视频流中当前关键帧周期的时隙号和时隙数量;
带宽模块,用于获取当前时隙号对应的当前时隙的已发送带宽,其中,所述已发送带宽为当前时隙已发送的数据包的数据量;
判断模块,用于判断所述已发送带宽是否小于目标数据量SBW;并
发送模块,用于根据判断结果发送当前数据包。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010624290.2A CN111757151B (zh) | 2020-06-30 | 2020-06-30 | 基于rtp协议的视频流发送方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010624290.2A CN111757151B (zh) | 2020-06-30 | 2020-06-30 | 基于rtp协议的视频流发送方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111757151A true CN111757151A (zh) | 2020-10-09 |
CN111757151B CN111757151B (zh) | 2022-08-19 |
Family
ID=72680364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010624290.2A Active CN111757151B (zh) | 2020-06-30 | 2020-06-30 | 基于rtp协议的视频流发送方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111757151B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112839240A (zh) * | 2020-12-31 | 2021-05-25 | 福州大学 | 一种基于视频流的带宽探测方法与系统 |
CN114501066A (zh) * | 2021-12-30 | 2022-05-13 | 浙江大华技术股份有限公司 | 视频流处理方法、系统、计算机设备和存储介质 |
CN114640728A (zh) * | 2022-02-25 | 2022-06-17 | 烽火通信科技股份有限公司 | 协议帧定时发帧控制方法、装置、设备及存储介质 |
CN115734009A (zh) * | 2022-11-15 | 2023-03-03 | 深圳艾灵网络有限公司 | 视频流的碰撞消除方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6307835B1 (en) * | 1998-07-10 | 2001-10-23 | Stmicroelectronics, Inc. | Method and apparatus for controlling data flow in data communication networks |
US20070053428A1 (en) * | 2001-03-30 | 2007-03-08 | Vixs Systems, Inc. | Managed degradation of a video stream |
CN102045552A (zh) * | 2009-10-14 | 2011-05-04 | 中兴通讯股份有限公司 | 一种多媒体码流发送的方法和系统 |
CN104918133A (zh) * | 2014-03-12 | 2015-09-16 | 北京视联动力国际信息技术有限公司 | 一种视联网中视频流的播放方法和装置 |
CN105554517A (zh) * | 2015-12-03 | 2016-05-04 | 浙江大华技术股份有限公司 | 一种视频流发送方法及装置 |
CN106789385A (zh) * | 2015-11-23 | 2017-05-31 | 杭州海康威视数字技术股份有限公司 | 一种视频流的发送方法、发送装置和网络摄像机 |
CN106791575A (zh) * | 2016-12-22 | 2017-05-31 | 上海寰视网络科技有限公司 | 一种数据发送的控制方法及设备 |
CN110072143A (zh) * | 2019-03-18 | 2019-07-30 | 视联动力信息技术股份有限公司 | 一种视频流解码方法和装置 |
-
2020
- 2020-06-30 CN CN202010624290.2A patent/CN111757151B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6307835B1 (en) * | 1998-07-10 | 2001-10-23 | Stmicroelectronics, Inc. | Method and apparatus for controlling data flow in data communication networks |
US20070053428A1 (en) * | 2001-03-30 | 2007-03-08 | Vixs Systems, Inc. | Managed degradation of a video stream |
CN102045552A (zh) * | 2009-10-14 | 2011-05-04 | 中兴通讯股份有限公司 | 一种多媒体码流发送的方法和系统 |
CN104918133A (zh) * | 2014-03-12 | 2015-09-16 | 北京视联动力国际信息技术有限公司 | 一种视联网中视频流的播放方法和装置 |
CN106789385A (zh) * | 2015-11-23 | 2017-05-31 | 杭州海康威视数字技术股份有限公司 | 一种视频流的发送方法、发送装置和网络摄像机 |
CN105554517A (zh) * | 2015-12-03 | 2016-05-04 | 浙江大华技术股份有限公司 | 一种视频流发送方法及装置 |
CN106791575A (zh) * | 2016-12-22 | 2017-05-31 | 上海寰视网络科技有限公司 | 一种数据发送的控制方法及设备 |
CN110072143A (zh) * | 2019-03-18 | 2019-07-30 | 视联动力信息技术股份有限公司 | 一种视频流解码方法和装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112839240A (zh) * | 2020-12-31 | 2021-05-25 | 福州大学 | 一种基于视频流的带宽探测方法与系统 |
CN112839240B (zh) * | 2020-12-31 | 2022-03-22 | 福州大学 | 一种基于视频流的带宽探测方法与系统 |
CN114501066A (zh) * | 2021-12-30 | 2022-05-13 | 浙江大华技术股份有限公司 | 视频流处理方法、系统、计算机设备和存储介质 |
CN114640728A (zh) * | 2022-02-25 | 2022-06-17 | 烽火通信科技股份有限公司 | 协议帧定时发帧控制方法、装置、设备及存储介质 |
CN114640728B (zh) * | 2022-02-25 | 2023-05-16 | 烽火通信科技股份有限公司 | 协议帧定时发帧控制方法、装置、设备及存储介质 |
CN115734009A (zh) * | 2022-11-15 | 2023-03-03 | 深圳艾灵网络有限公司 | 视频流的碰撞消除方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111757151B (zh) | 2022-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111757151B (zh) | 基于rtp协议的视频流发送方法、装置、设备和介质 | |
KR102050816B1 (ko) | 통신 네트워크에서 강화된 체감 품질을 위해 클라이언트 측 비디오 버퍼 점유율을 사용하기 위한 방법 및 시스템 | |
US9197565B2 (en) | Network congestion prediction | |
KR20220007698A (ko) | 속도 최적화된 정체 관리 | |
CN110417650A (zh) | 多链路数据分配方法、装置及电子设备 | |
US20090161546A1 (en) | Methods and systems for alleviating network congestion | |
US10735338B2 (en) | Encoder-sensitive stream buffer management | |
CN105191334A (zh) | 用于自适应比特率视频回放的基于调度器的网络虚拟播放器 | |
CN109660467B (zh) | 用于控制流量的方法和装置 | |
WO2017052436A1 (en) | Method and interworking network node for enabling bit rate adaption in media streaming | |
CN110856214B (zh) | 一种tcp拥塞控制方法及装置 | |
US20200403913A1 (en) | Network Resource Scheduling Method, Apparatus, Electronic Device and Storage Medium | |
US9584420B2 (en) | Switching between loss-based and delay-based mode for real-time media congestion controllers | |
US20130089107A1 (en) | Method and Apparatus for Multimedia Queue Management | |
CN110098976B (zh) | 网络参数的测量方法、装置、计算机设备和存储介质 | |
CN114205310A (zh) | 一种基于时间敏感网络的数据传输方法、装置和电子设备 | |
JPH11289350A (ja) | データ伝送装置 | |
CN111918142A (zh) | 国标视频码流转rtp流的平顺方法、装置、设备及介质 | |
CN108924665B (zh) | 降低视频播放延时的方法、装置、计算机设备和存储介质 | |
CN113132256A (zh) | 一种数据传输方法、终端及存储介质 | |
WO2023274006A1 (zh) | 一种网络设备的主动队列管理方法及网络设备 | |
CN111917525B (zh) | 一种数据传输方法、装置、设备和可读存储介质 | |
Irawan et al. | Performance evaluation of queue algorithms for video-on-demand application | |
CN113542215A (zh) | 一种提升流媒体传输性能的方法及相关装置 | |
Zhirnov et al. | Mathematical model of a network slicing approach for video and Web traffic |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |