CN113873293A - 动态调整视频帧率自适应网络的方法及相关设备 - Google Patents

动态调整视频帧率自适应网络的方法及相关设备 Download PDF

Info

Publication number
CN113873293A
CN113873293A CN202111177907.1A CN202111177907A CN113873293A CN 113873293 A CN113873293 A CN 113873293A CN 202111177907 A CN202111177907 A CN 202111177907A CN 113873293 A CN113873293 A CN 113873293A
Authority
CN
China
Prior art keywords
video
frame
target
video frame
transmitted
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.)
Pending
Application number
CN202111177907.1A
Other languages
English (en)
Inventor
苏庆龙
张彦龙
刘凌志
王常悦
潘雨诗
曹军军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lanzhou Lezhi Education Technology Co ltd
Original Assignee
Lanzhou Lezhi Education Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lanzhou Lezhi Education Technology Co ltd filed Critical Lanzhou Lezhi Education Technology Co ltd
Priority to CN202111177907.1A priority Critical patent/CN113873293A/zh
Publication of CN113873293A publication Critical patent/CN113873293A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26216Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请涉及一种动态调整视频帧率自适应网络的方法及相关设备,涉及视频技术领域,该动态调整视频帧率自适应网络的方法包括:获取待传输视频帧;针对所述待传输视频帧,确定视频缓冲区的占用信息;依据所述占用信息对所述待传输视频帧进行丢帧处理,得到目标视频帧;将所述目标视频帧缓存到所述视频缓冲区;依据所述视频缓冲区中的目标视频帧进行视频发送。本申请能够有效防止不合理的连续丢帧所造成的视频卡顿问题,保障视频的观看体验。

Description

动态调整视频帧率自适应网络的方法及相关设备
技术领域
本申请涉及视频技术领域,尤其涉及一种动态调整视频帧率自适应网络的方法及相关设备。
背景技术
随着流媒体技术的飞速发展,流媒体数据量的不断增大,传统的流媒体传输方式主要是基于固定码率进行传输,不能满足高质量的流媒体需求。
具体而言,现有传统的视频传输方案主要是基于固定视频帧率进行视频传输。在视频清晰度较高的情况下,相应的其传输过程对网络带宽的要求也会更高。当网络传输带宽无法满足视频流传输所需带宽时,就会出现视频丢包所造成的马赛克现象,视频传输时延也会增加。例如,在发送视频流时,如果遇到网络带宽发生波动,则网络带宽无法满足视频流传输所需带宽,视频帧无法及时发送,将导致视频发送端的视频发送缓冲区满,发送端就会直接丢弃视频帧,导致视频跳帧,这样就会使得后续播放视频时会出现卡顿,影响用户观看体验。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种动态调整视频帧率自适应网络的方法及相关设备。
第一方面,本申请提供了一种动态调整视频帧率自适应网络的方法,包括:
获取待传输视频帧;
针对所述待传输视频帧,确定视频缓冲区的占用信息;
依据所述占用信息对所述待传输视频帧进行丢帧处理,得到目标视频帧;
将所述目标视频帧缓存到所述视频缓冲区;
依据所述视频缓冲区中的目标视频帧进行视频发送。
可选的,所述待传输视频帧包括视频编码器输出的视频帧,在获取待传输视频帧之前,还包括:
确定待传输的目标视频;
通过视频编码器对所述目标视频进行编码处理,得到所述待传输视频帧。
可选的,所述针对所述待传输视频帧,确定视频缓冲区的占用信息,包括:
获取视频帧占用数量,所述视频帧占用数量为所述当前所述视频缓冲区中的视频帧数量;
依据所述视频帧占用数量和所述视频缓冲区的预设存储阈值,确定所述占用信息。
可选的,所述依据所述占用信息对所述待传输视频帧进行丢帧处理,得到目标视频帧,包括:
确定所述占用信息对应的目标丢帧间隔信息;
基于所述目标丢帧间隔信息对所述待传输视频帧进行丢帧处理,得到目标视频帧。
可选的,所述确定所述占用信息对应的目标丢帧间隔信息,包括:
基于所述占用信息确定缓冲占用率;
判断所述缓冲占用率是否属于预设的目标丢帧区间;
若缓冲占用率属于目标丢帧区间,则将所述目标丢帧区间对应预设的丢帧数量确定为所述目标丢帧间隔信息。
可选的,所述依据所述视频缓冲区中的目标视频帧进行视频发送,包括:
调用视频发送线程;
通过所述视频发送线程,读取视频缓冲区内的目标视频帧并发送。
第二方面,本申请提供了一种动态调整视频帧率自适应网络的装置,包括:
获取模块,用于获取待传输视频帧;
占用信息确定模块,用于针对所述待传输视频帧,确定视频缓冲区的占用信息;
丢帧处理模块,用于依据所述占用信息对所述待传输视频帧进行丢帧处理,得到目标视频帧;
缓存模块,用于将所述目标视频帧缓存到所述视频缓冲区;
发送模块,用于依据所述视频缓冲区中的目标视频帧进行视频发送。
可选的,所述待传输视频帧包括视频编码器输出的视频帧,上述动态调整视频帧率自适应网络的装置还包括:
目标视频确定模块,用于确定待传输的目标视频;
编码处理模块,用于通过视频编码器对所述目标视频进行编码处理,得到所述待传输视频帧。
可选的,所述占用信息确定模块包括:
获取子模块,用于获取视频帧占用数量,所述视频帧占用数量为所述当前所述视频缓冲区中的视频帧数量;
获取子模块,用于依据所述视频帧占用数量和所述视频缓冲区的预设存储阈值,确定所述占用信息。
可选的,所述丢帧处理模块包括:
获取子模块,用于确定所述占用信息对应的目标丢帧间隔信息;
丢帧处理子模块,用于基于所述目标丢帧间隔信息对所述待传输视频帧进行丢帧处理,得到目标视频帧。
可选的,所述丢帧处理子模块包括:
缓冲占用率确定单元,用于基于所述占用信息确定缓冲占用率;
缓冲占用率判断单元,用于判断所述缓冲占用率是否属于预设的目标丢帧区间;
获取子模块,用于在所述缓冲占用率属于目标丢帧区间时,将所述目标丢帧区间对应预设的丢帧数量确定为所述目标丢帧间隔信息。
可选的,所述发送模块包括:
调用子模块,用于调用视频发送线程;
发送子模块,用于通过所述视频发送线程,读取视频缓冲区内的目标视频帧并发送。
第三方面,本申请提供了一种视频传输设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面任一项实施例所述的动态调整视频帧率自适应网络的方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项实施例所述的动态调整视频帧率自适应网络的方法的步骤。
综上,本申请在获取到待传输视频帧后,通过针对待传输视频帧确定视频缓冲区的占用信息,并依据该占用信息对获取到的待传输视频帧进行丢帧处理,实现视频均匀丢帧,随后将丢帧处理后的目标视频帧缓存到视频缓冲区帧,以便后续可以依据该视频缓冲区中的目标视频帧进行视频发送,使得视频流能够自适应当前网络带宽的变化,达到动态调整视频带宽的目的,使得视频流数据传输具有动态网络的自适应性,在保障流媒体数据的低延时传输的同时能够防止不合理的连续丢帧所造成的视频卡顿问题,进而保障视频的观看体验。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种动态调整视频帧率自适应网络的方法的流程示意图;
图2是本申请一个可选实施例提供的一种动态调整视频帧率自适应网络的方法的步骤流程示意图;
图3是本申请一个示例中的视频发送端进行视频传输的示意图;
图4是本申请实施例提供的一种动态调整视频帧率自适应网络的装置的结构框图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种动态调整视频帧率自适应网络的方法的流程示意图。如图1所示,本申请提供的动态调整视频帧率自适应网络的方法具体可以包括如下步骤:
步骤110,获取待传输视频帧。
在本申请实施例中,待传输视频帧可以是指当前所需要传输的视频帧,如可以包括视频编码器输出的视频帧。该视频编码器用于对视频发送端所需要发送的目标视频进行编码处理,输出该目标视频所包含的各个视频帧。
进一步而言,本申请实施例中的动态调整视频帧率自适应网络的方法作为一种视频传输方法,获取的待传输视频帧可以包括视频编码器输出的视频帧。可选的本申请实施例在获取待传输视频帧之前,还包括:确定待传输的目标视频;通过视频编码器对所述目标视频进行编码处理,得到所述待传输视频帧。其中,目标视频可以是指当前所需要发送的视频。例如,在需要发送视频A的情况下,可以将该视频A确定为目标视频,以通过视频编码器对该视频A进行编码处理,得到该视频A所包含的各个视频帧,进而可以将视频A所包含的各个视频帧确定为待传输的视频帧。
步骤120,针对所述待传输视频帧,确定视频缓冲区的占用信息。
在具体实现中,可以预先设置一个视频缓冲区,用于缓冲当前所需要发送的视频帧,以便后续可通过读取该视频缓冲区的视频帧实现视频发送。为了防止不合理的连续丢帧,本申请实施例在获取到待传输视频帧后,可以针对该待传输视频帧,获取当前视频缓冲区的视频帧数量,以根据当前缓冲区的视频帧数量确定出当前视频缓冲区的占用信息,以便后续可以根据当前视频缓冲区的占用信息确定是否需要丢弃当前所获取到的待传输视频帧,即执行步骤130。
步骤130,依据所述占用信息对所述待传输视频帧进行丢帧处理,得到目标视频帧。
其中,目标视频帧可以包括丢帧处理后所保留的视频帧。具体的,本申请实施例在确定视频缓冲区的占用信息后,可以根据该占用信息确定是否需要丢帧;若不需丢帧,则可以将当前获取到的待传输帧确定为目标视频帧,以保留不需要丢弃的视频帧;若需要丢帧,可以基于该占用信息,通过丢帧分析算法对当前获取到的待传输视频帧进行丢帧处理,以将丢弃需要丢弃的待传输的视频帧,实现视频均匀丢帧,防止不合理的连续丢帧造成视频卡的问题。
其中,目标视频帧可以包括经丢帧处理后所得到的视频帧,如在获取到的待传输视频帧包含视频帧A、视频帧B、视频帧C、视频帧D、视频帧E的情况下,在基于当前视频缓冲区的占用信息将视频帧B和视频帧D丢弃后,可以将丢帧处理后所保留的视频帧A、视频帧C、以及视频帧E确定为目标视频帧。
步骤140,将所述目标视频帧缓存到所述视频缓冲区。
具体的,本申请实施例在得到目标视频帧后,可将该目标视频帧缓存到视频缓冲区中,以便后续可以依据该视频缓冲区中存储的视频帧进行视频帧。例如,结合上述例子,视频帧A是经由丢帧算法进行丢帧处理后得到的目标视频帧,在将视频帧A作为目标视频帧A后,可以将目标视频帧A缓存到视频缓冲区内;同理,在将视频帧C以及视频帧E确定为目标视频帧后,可以将视频帧A和视频帧E存储到视频缓冲区中,以便后续可以依据该视频缓冲区中存储的目标视频帧进行视频帧发送,从而可以依次实现视频帧A、视频帧C、以及视频帧E的发送。
步骤150,依据所述视频缓冲区中的目标视频帧进行视频发送。
具体而言,在视频发送过程中,可以通过读取视频缓冲区的目标视频帧,以将读取到的视频帧发送出去,从而实现视频的发送。
可见,本申请实施例针对获取到的待传输视频帧确定视频缓冲区的占用信息,并依据该占用信息对获取到的待传输视频帧进行丢帧处理,实现视频均匀丢帧,随后将丢帧处理后的目标视频帧缓存到视频缓冲区,以便后续可以依据该视频缓冲区中的目标视频帧进行视频发送,使得视频流能够自适应当前网络带宽的变化,达到动态调整视频带宽的目的,使得视频流数据传输具有动态网络的自适应性,在保障流媒体数据的低延时传输的同时能够防止不合理的连续丢帧所造成的视频卡顿问题,进而保障视频的观看体验。
在实际处理中,在将目标视频帧缓存到视频缓冲区后,视频发送端可以通过调用诸如视频发送线程等发送工具,以通过发送工具对该视频缓冲区中的目标视频帧进行发送,从而实现视频发送。因此,在本申请的一个可选实施中,上述依据所述视频缓冲区中的目标视频帧进行视频发送,具体可以包括:调用视频发送线程;通过所述视频发送线程,读取视频缓冲区内的目标视频帧并发送。
参照图2,示出了本申请一个可选实施例提供的一种动态调整视频帧率自适应网络的方法的步骤流程示意图。该动态调整视频帧率自适应网络的方法可以具体可以包括如下步骤:
步骤210,确定待传输的目标视频。
步骤220,通过视频编码器对所述目标视频进行编码处理,得到所述待传输视频帧。
具体而言,本申请实施例在视频传输前,可以确定当前所需要传输的视频,并可将当前所需要传输的视频确定为待传输的目标视频,以将该当前所需要传输的视频作为目标视频输入到视频编码器中,使得视频编码器对该目标视频进行编码处理,得到该目标视频所包含的各个视频帧,进而可以将该目标视频所包含的各个视频帧确定为待传输视频帧,以便后续可以通过获取待传输视频帧实现视频发送。
步骤230,获取待传输视频帧。
步骤240,针对所述待传输视频帧,确定视频缓冲区的占用信息。
其中,视频缓冲区的占用信息可以表示当前视频缓冲区的占用情况,在一定程度上可以反映当前的网络拥塞情况,如在网络带宽比较小的情况下,缓存到该视频缓冲区的视频帧就会越来越多,即视频缓冲区中存储的视频帧就会越来越多,这样就使得视频缓冲区的占用率越来越高,甚至会被缓存到该视频缓冲区的目标视频帧充满,即视频缓冲区的占用率为100%。
在一个实施例中,占用信息可以通过当前视频缓冲区内的视频帧占用数量与视频缓冲区预先设置的存储阈值之间的比值来确定。进一步而言,本申请实施例针对所述传输视频帧,确定视频缓冲区的占用信息,具体包括如下子步骤:
子步骤2401,获取视频帧占用数量,所述视频帧占用数量为所述当前所述视频缓冲区中的视频帧数量。
子步骤2402,依据所述视频帧占用数量和所述视频缓冲区的预设存储阈值,确定所述占用信息。
具体的,本申请实施例在获取到视频编码器输出的待传输视频帧后,可以针对该待传输视频帧获取视频缓冲区当前的视频帧占数量,以根据该视频帧占用数量,结合视频缓冲区的预设存储阈值进行计算,进而可以根据计算结果确定出视频缓冲区的占用信息。其中,视频缓冲区的预设存储阈值可以是指视频缓存区所能够存储的视频帧数量的最大值。在实际处理中,视频缓冲区的预设存储阈值可以根据视频发送缓冲需求进行设置,本申请实施例对此不作具体限制。
例如,在视频编码器输出视频帧后,可以获取该视频编码器输出的视频帧,以确定为待传输视频帧,随后可针对该待传输视频帧获取当前的视频帧占用数量buff_occupy,然后可结合视频缓冲区的预设存储阈值buff_total进行计算,如按照公式r=buff_occupy/buff_total进行计算,可以计算得到占用参数值r,进而可以将计算得到的占用参数值r作为视频缓冲区的占用信息,以便后续可依据该视频缓冲区的占用信息进行丢帧处理。其中,视频帧占用数量buff_occupy可以代表当前视频缓冲区被占用的视频帧数;预设存储阈值buff_total可以代表视频缓冲区被占用的最大视频帧数。
步骤250,依据所述占用信息对所述待传输视频帧进行丢帧处理,得到目标视频帧。
具体的,本申请实施例在确定出视频缓冲区的占用信息后,可以根据该占用信息对应的目标丢帧间隔信息进行丢帧处理,以根据当前网络带宽变化情况动态调整视频帧率,从而能够动态调整视频码率,达到动态调整视频带宽的目的。进一步而言,本申请实施例依据所述占用信息对所述待传输视频帧进行丢帧处理,得到目标视频帧,具体可以包括:确定所述占用信息对应的目标丢帧间隔信息;基于所述目标丢帧间隔信息对所述待传输视频帧进行丢帧处理,得到目标视频帧。其中,目标丢帧间隔信息可以用于确定视频丢帧间隔,如可以是视频丢帧间隔数据,该丢帧间隔数据可以是每4帧就丢1帧送3帧或者是每3帧就丢1帧送2帧等,本实施例对此不作具体限制。
在实际处理中,本申请实施例可以基于当前视频缓冲区的占用信息确定出当前的缓冲占用率,以通过判断该缓冲占用率是否属于预设的目标丢帧区间,确定当前是否需要丢帧;若缓冲占用率属于预设的目标丢帧区间,则可以根据该目标丢帧区间对应的丢帧数量确定为目标丢帧间隔信息;若缓冲占用率不属于预设的目标丢帧区间,则可以确定当前不需要丢帧,直接将当前获取到的待传输视频帧确定为目标视频帧,并可发送到视频缓存区中进行存储,以便后续视频发送线程可以通过从该视频缓冲区读取视频帧进行视频发送。进一步的,本申请实施例确定所述占用信息对应的目标丢帧间隔信息,具体包括:基于所述占用信息确定缓冲占用率;判断所述缓冲占用率是否属于预设的目标丢帧区间;若所述缓冲占用率属于目标丢帧区间,则将所述目标丢帧区间对应预设的丢帧数量确定为所述目标丢帧间隔信息。
具体而言,本申请实施例可以预先设置有一个或多个目标丢帧区间和目标丢帧区间对应预设的丢帧数量,以便后续可以按照目标丢帧区间对应预设的丢帧数量进行丢帧处理。
作为本申请的一个示例,如图3所示,在视频编码器输视频帧后,可以获取该视频编码器输出的视频帧确定为待传输视频帧,随后可通过丢帧算法分析,以确定是否需要丢弃当前获取到的待传输视频帧。具体的,可针对当前获取到的待传输视频帧获取当前的视频帧占用数量buff_occupy,然后可结合视频缓冲区的预设存储阈值buff_total进行计算,得到占用参数值r,随后可以将计算得到的占用参数值r作为视频缓冲区的占用信息,以根据该占用参数值r确定出缓冲占用率,进而可以根据该缓冲占用率确实现视频均匀丢帧,能够有效防止合理的连续丢帧造成视频卡顿的问题。
具体而言,在预先设置有多个目标丢帧区间和各个目标丢帧对应的丢帧数量的情况下,如在设置有目标丢帧区间(0,0.1)、目标丢帧区间[0.1,0.2)、目标丢帧区间[0.2,0.4)、目标丢帧区间[0.4,0.6)、目标丢帧区间[0.6,0.8)、目标丢帧区间[0.8,0.95)、目标丢帧区间[0.95,1],且目标丢帧区间(0,0.1)对应的丢帧数量为0,标丢帧区间[0.1,0.2)对应的丢帧数量为每4帧丢1帧、目标丢帧区间[0.2,0.4)对应的丢帧数量为每3帧丢1帧、目标丢帧区间
[0.4,0.6)对应的丢帧数量为每2帧丢1帧、目标丢帧区间[0.6,0.8)对应的丢帧数量为每3帧丢2帧、目标丢帧区间[0.8,0.95)对应的丢帧数量为每4帧丢3帧、目标丢帧区间[0.95,1]对应的丢帧数量为获取到的全部视频帧,则在确定出的缓冲占用率r多于0且小于0.1时,对获取到的待传输的视频帧不进行丢弃,将获取到的待传输的视频帧全部缓存至视频缓冲区作为目标视频帧,即在r<0.1时不丢帧;而在确定出的缓冲占用率r不小于0.1且小于0.2时,对获取到的待传输的视频帧,每获取到4帧待传输的视频帧时,丢弃其中1帧,将剩余3帧缓存至视频缓冲区作为目标视频帧,即在0.1<=r<0.2时丢1帧送3帧;同理,在缓冲占用率r不小于0.2且小于0.4时,对获取到的待传输的视频帧,每获取到3帧待传输的视频帧时,丢弃其中1帧,将剩余2帧缓存至视频缓冲区作为目标视频帧,即在0.2<=r<0.4时丢1帧送2帧;在缓冲占用率r不小于0.4且小于0.6时,对获取到的待传输的视频帧,每获取到2帧待传输的视频帧时,丢弃其中1帧,将剩余1帧缓存至视频缓冲区作为目标视频帧,即在0.4<=r<0.6时丢1帧送1帧;在缓冲占用率r不小于0.6且小于0.8时,对获取到的待传输的视频帧,每获取到3帧待传输的视频帧时,丢弃其中2帧,将剩余1帧缓存至视频缓冲区作为目标视频帧,即在0.6<=r<0.8时丢2帧送1帧;在缓冲占用率r不小于0.8且小于0.95时,对获取到的待传输的视频帧,每获取到4帧待传输的视频帧时,丢弃其中3帧,将剩余1帧缓存至视频缓冲区作为目标视频帧,即在0.8<=r<0.95时丢3帧送1帧;在缓冲占用率r多于0.95且少于1时,对获取到的待传输的视频帧,将获取到的待传输的视频帧全部丢弃,即在0.95<=r<=1时丢弃当前获取到的全部待传输视频帧。可见,本示例通过上述丢帧算法对获取到的待传输视频帧进行丢帧处理,使得后续视频的输出帧率非常准确,同时实现视频均匀丢帧。
步骤260,将所述目标视频帧缓存到所述视频缓冲区。
步骤270,调用视频发送线程。
步骤280,通过所述视频发送线程,读取视频缓冲区内的目标视频帧并发送。
具体的,本实施例在将目标视频帧缓存到视频缓冲区后,可以调用的的视频发送线程从视频缓冲区帧读取其所缓存的目标视频帧,然后通过网络将读取到的目标视频帧发送出去,实现视频传输。例如,诸如用户手机、平板设备、网络设备等视频发送端在成功调用视频发送线程后,可以通过视频发送线程读取该视频缓冲区帧的目标视频帧,如图3所示,视频发送线程在读取到视频缓冲区中的目标视频帧后,可以将该目标视频帧发送出去,以通过网络传输该目标视频帧,实现视频传输。
综上,本申请实施例通过视频编码器对视频发送端所需要发送到目标视频进行编码处理,得到待传输视频帧,并针对该待传输视频帧,通过获取当前视频缓冲区的视频帧数量,确定当前视频缓冲区的占用信息,随后根据该占用信息待传输视频帧进行丢帧处理,实现视频均匀、合理丢帧,得到目标视频帧,并将得到的目标视频帧缓存到视频缓冲区内,使得视频发送线程可以通过读取该视频缓冲区中的目标视频帧进行视频帧发送,进而可以生成合适于当前网络的视频流,使得视频流数据传输具有动态网络的自适应性,达到动态调整视频带宽的目的,在保障流媒体数据的低时延传输的同时,防止了不合理的连续丢帧造成视频卡顿,解决了由于网络带宽不满足视频传输所需带宽导致视频连续丢包造成的视频播放出现马赛克的问题,保障视频观看体验。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。
本申请实施例还提供了一种动态调整视频帧率自适应网络的装置。如图4所示,本申请实施例提供的动态调整视频帧率自适应网络的装置400,具体可以包括如下模块:
获取模块410,用于获取待传输视频帧;
占用信息确定模块420,用于针对所述待传输视频帧,确定视频缓冲区的占用信息;
丢帧处理模块430,用于依据所述占用信息对所述待传输视频帧进行丢帧处理,得到目标视频帧;
缓存模块440,用于将所述目标视频帧缓存到所述视频缓冲区;
发送模块450,用于依据所述视频缓冲区中的目标视频帧进行视频发送。
可选的,所述待传输视频帧包括视频编码器输出的视频帧,上述动态调整视频帧率自适应网络的装置还包括:
目标视频确定模块,用于确定待传输的目标视频;
编码处理模块,用于通过视频编码器对所述目标视频进行编码处理,得到所述待传输视频帧。
可选的,所述占用信息确定模块420包括:
获取子模块,用于获取视频帧占用数量,所述视频帧占用数量为所述当前所述视频缓冲区中的视频帧数量;
获取子模块,用于依据所述视频帧占用数量和所述视频缓冲区的预设存储阈值,确定所述占用信息。
可选的,所述丢帧处理模块包括:
获取子模块,用于确定所述占用信息对应的目标丢帧间隔信息;
丢帧处理子模块,用于基于所述目标丢帧间隔信息对所述待传输视频帧进行丢帧处理,得到目标视频帧。
可选的,所述丢帧处理子模块包括:
缓冲占用率确定单元,用于基于所述占用信息确定缓冲占用率;
缓冲占用率判断单元,用于判断所述缓冲占用率是否属于预设的目标丢帧区间;
获取子模块,用于在所述缓冲占用率属于目标丢帧区间时,将所述目标丢帧区间对应预设的丢帧数量确定为所述目标丢帧间隔信息。
可选的,所述发送模块包括:
调用子模块,用于调用视频发送线程;
发送子模块,用于通过所述视频发送线程读取视频缓冲区内的目标视频帧并发送。
需要说明的是,本申请实施例提供的动态调整视频帧率自适应网络的装置可执行本申请任意实施例所提供的动态调整视频帧率自适应网络的方法,具备执行方法相应的功能和有益效果。
在具体实现中,上述动态调整视频帧率自适应网络的装置可作为一种视频传输装置,并可集成在设备中,使得该设备可以依据视频缓冲区的占用信息对获取到的待传输视频帧进行丢帧处理,以作为视频传输设备,实现视频均匀丢帧。该视频传输设备可以是由两个或多个物理实体构成,也可以是一个物理实体构成,如设备可以是个人计算机(PersonalComputer,PC)、电脑、服务器等,本申请实施例对此不作具体限制。
如图5所示,本申请实施例提供提供了一种视频传输设备,包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信;存储器113,用于存放计算机程序;处理器111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例提供的动态调整视频帧率自适应网络的方法的步骤。示例性的,动态调整视频帧率自适应网络的方法的步骤可以包括如下步骤:获取待传输视频帧;针对所述待传输视频帧,确定视频缓冲区的占用信息;依据所述占用信息对所述待传输视频帧进行丢帧处理,得到目标视频帧;将所述目标视频帧缓存到所述视频缓冲区;依据所述视频缓冲区中的目标视频帧进行视频发送。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述任意一个方法实施例提供的动态调整视频帧率自适应网络的方法的步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种动态调整视频帧率自适应网络的方法,其特征在于,包括:
获取待传输视频帧;
针对所述待传输视频帧,确定视频缓冲区的占用信息;
依据所述占用信息对所述待传输视频帧进行丢帧处理,得到目标视频帧;
将所述目标视频帧缓存到所述视频缓冲区;
依据所述视频缓冲区中的目标视频帧进行视频发送。
2.根据权利要求1所述的方法,其特征在于,所述待传输视频帧包括视频编码器输出的视频帧,在获取待传输视频帧之前,还包括:
确定待传输的目标视频;
通过视频编码器对所述目标视频进行编码处理,得到所述待传输视频帧。
3.根据权利要求1所述的方法,其特征在于,所述针对所述待传输视频帧,确定视频缓冲区的占用信息,包括:
获取视频帧占用数量,所述视频帧占用数量为所述当前所述视频缓冲区中的视频帧数量;
依据所述视频帧占用数量和所述视频缓冲区的预设存储阈值,确定所述占用信息。
4.根据权利要求1所述的方法,其特征在于,所述依据所述占用信息对所述待传输视频帧进行丢帧处理,得到目标视频帧,包括:
确定所述占用信息对应的目标丢帧间隔信息;
基于所述目标丢帧间隔信息对所述待传输视频帧进行丢帧处理,得到目标视频帧。
5.根据权利要求4所述的方法,其特征在于,所述确定所述占用信息对应的目标丢帧间隔信息,包括:
基于所述占用信息确定缓冲占用率;
判断所述缓冲占用率是否属于预设的目标丢帧区间;
若所述缓冲占用率属于目标丢帧区间,则将所述目标丢帧区间对应预设的丢帧数量确定为所述目标丢帧间隔信息。
6.根据权利要求1至5任一所述的方法,其特征在于,所述依据所述视频缓冲区中的目标视频帧进行视频发送,包括:
调用视频发送线程;
通过所述视频发送线程,读取视频缓冲区内的目标视频帧并发送。
7.一种动态调整视频帧率自适应网络的装置,其特征在于,包括:
获取模块,用于获取待传输视频帧;
占用信息确定模块,用于针对所述待传输视频帧,确定视频缓冲区的占用信息;
丢帧处理模块,用于依据所述占用信息对所述待传输视频帧进行丢帧处理,得到目标视频帧;
缓存模块,用于将所述目标视频帧缓存到所述视频缓冲区;
发送模块,用于依据所述视频缓冲区中的目标视频帧进行视频发送。
8.根据权利要求7所述的动态调整视频帧率自适应网络的装置,其特征在于,所述待传输视频帧包括视频编码器输出的视频帧,所述动态调整视频帧率自适应网络的装置还包括:
目标视频确定模块,用于确定待传输的目标视频;
编码处理模块,用于通过视频编码器对所述目标视频进行编码处理,得到所述待传输视频帧。
9.一种视频传输设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一项所述的动态调整视频帧率自适应网络的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的动态调整视频帧率自适应网络的方法的步骤。
CN202111177907.1A 2021-10-09 2021-10-09 动态调整视频帧率自适应网络的方法及相关设备 Pending CN113873293A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111177907.1A CN113873293A (zh) 2021-10-09 2021-10-09 动态调整视频帧率自适应网络的方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111177907.1A CN113873293A (zh) 2021-10-09 2021-10-09 动态调整视频帧率自适应网络的方法及相关设备

Publications (1)

Publication Number Publication Date
CN113873293A true CN113873293A (zh) 2021-12-31

Family

ID=79002271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111177907.1A Pending CN113873293A (zh) 2021-10-09 2021-10-09 动态调整视频帧率自适应网络的方法及相关设备

Country Status (1)

Country Link
CN (1) CN113873293A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110235709A1 (en) * 2010-03-25 2011-09-29 Apple Inc. Frame dropping algorithm for fast adaptation of buffered compressed video to network condition changes
CN102244773A (zh) * 2011-06-21 2011-11-16 浙江万里学院 一种基于窄变带宽网络的实时视频流传输方法
CN102378065A (zh) * 2011-10-19 2012-03-14 江西省南城县网信电子有限公司 基于mpeg-4的流媒体服务器端配置缓冲区的方法及系统
CN104185083A (zh) * 2013-05-20 2014-12-03 安凯(广州)微电子技术有限公司 一种自适应丢帧方法与装置
CN104702968A (zh) * 2015-02-17 2015-06-10 华为技术有限公司 一种视频帧丢帧方法及视频发送装置
CN105357592A (zh) * 2015-10-26 2016-02-24 山东大学苏州研究院 一种流媒体自适应传输选择性丢帧方法
CN105992023A (zh) * 2015-02-11 2016-10-05 杭州海康威视数字技术股份有限公司 视频图像数据的处理方法及装置
WO2019144818A1 (zh) * 2018-01-24 2019-08-01 深圳市道通科技股份有限公司 视频帧传输方法、探测器及用户设备

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110235709A1 (en) * 2010-03-25 2011-09-29 Apple Inc. Frame dropping algorithm for fast adaptation of buffered compressed video to network condition changes
CN102244773A (zh) * 2011-06-21 2011-11-16 浙江万里学院 一种基于窄变带宽网络的实时视频流传输方法
CN102378065A (zh) * 2011-10-19 2012-03-14 江西省南城县网信电子有限公司 基于mpeg-4的流媒体服务器端配置缓冲区的方法及系统
CN104185083A (zh) * 2013-05-20 2014-12-03 安凯(广州)微电子技术有限公司 一种自适应丢帧方法与装置
CN105992023A (zh) * 2015-02-11 2016-10-05 杭州海康威视数字技术股份有限公司 视频图像数据的处理方法及装置
CN104702968A (zh) * 2015-02-17 2015-06-10 华为技术有限公司 一种视频帧丢帧方法及视频发送装置
WO2016131223A1 (zh) * 2015-02-17 2016-08-25 华为技术有限公司 一种视频帧丢帧方法及视频发送装置
CN105357592A (zh) * 2015-10-26 2016-02-24 山东大学苏州研究院 一种流媒体自适应传输选择性丢帧方法
WO2019144818A1 (zh) * 2018-01-24 2019-08-01 深圳市道通科技股份有限公司 视频帧传输方法、探测器及用户设备

Similar Documents

Publication Publication Date Title
US11349900B2 (en) Voice encoding and sending method and apparatus
CN109600610B (zh) 一种数据编码方法、终端及计算机可读存储介质
CN109587510B (zh) 一种直播方法、装置、设备和存储介质
US7958532B2 (en) Method of transmitting layered video-coded information
US7734104B2 (en) Image coding apparatus, image decoding apparatus and image processing system
CN107342848B (zh) 一种自适应码流传输方法、装置及设备
US20140348246A1 (en) Video Conversion Method and Apparatus
CN109729437B (zh) 流媒体自适应传输方法、终端和系统
CN102984495A (zh) 一种视频图像的处理方法及装置
US9819715B2 (en) Client side control of adaptive streaming
CN114222194A (zh) 一种视频码流调整方法、装置及系统
EP2466911A1 (en) Method and device for fast pushing unicast stream in fast channel change
CN110996103A (zh) 一种根据网络情况对视频编码码率进行调节的方法
US20020054635A1 (en) Image transmitting method and apparatus and image receiving method and apparatus
CN113242436B (zh) 直播数据的处理方法、装置及电子设备
CN113490055B (zh) 数据处理方法和装置
CN112019384A (zh) 带宽预测方法、装置、设备及存储介质
CN112929712A (zh) 视频码率调整方法和装置
CN107801049A (zh) 一种实时视频传送、播放方法及装置
CN110996035A (zh) 信息发送方法及装置
CN111918142B (zh) 国标视频码流转rtp流的平顺方法、装置、设备及介质
JP2017076892A (ja) バッファサイズ決定装置、システム、バッファサイズ決定方法、映像データ再生方法およびプログラム
CN113873293A (zh) 动态调整视频帧率自适应网络的方法及相关设备
US11936698B2 (en) Systems and methods for adaptive video conferencing
CN116962613A (zh) 数据传输方法及装置、计算机设备、存储介质

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