CN111107382B - 数据流的控制方法、装置和*** - Google Patents

数据流的控制方法、装置和*** Download PDF

Info

Publication number
CN111107382B
CN111107382B CN201811270591.9A CN201811270591A CN111107382B CN 111107382 B CN111107382 B CN 111107382B CN 201811270591 A CN201811270591 A CN 201811270591A CN 111107382 B CN111107382 B CN 111107382B
Authority
CN
China
Prior art keywords
code rate
streaming media
media file
network
coding
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.)
Active
Application number
CN201811270591.9A
Other languages
English (en)
Other versions
CN111107382A (zh
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201811270591.9A priority Critical patent/CN111107382B/zh
Publication of CN111107382A publication Critical patent/CN111107382A/zh
Application granted granted Critical
Publication of CN111107382B publication Critical patent/CN111107382B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • 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/234309Processing 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 transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/442Monitoring 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/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network

Landscapes

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

Abstract

本发明公开了一种数据流的控制方法、装置和***。其中,该方法包括:获取流媒体缓冲区的缓冲状态;根据网络带宽状态和流媒体文件的发送码率,确定网络状态;依据缓冲状态和网络状态,确定是否需要调整编码码率;在需要调整编码码率的情况下,获取目标码率;依据目标码率对流媒体文件进行编码。本发明解决了由于现有技术中针对网络带宽变化的检测仅通过发送视频数据缓冲区的缓存来判断,导致判断的准确率低进而导致控制失调发生卡顿的技术问题。

Description

数据流的控制方法、装置和***
技术领域
本发明涉及互联网技术领域,具体而言,涉及一种数据流的控制方法、装置和***。
背景技术
当前流媒体直播技术通过互联网在用户和主播之间实时传播音视频数据并产生良好的互动体验,被广泛地应用在手机,平板和PC等智能设备终端,直播业务也拓展到各个领域。
由于流媒体数据需要通过网络传输,而网络的带宽会受到地理位置、信号强弱、网络设备、运营商等因数的影响,在直播过程中会发生网络带宽变化、网络抖动等情况,从而影响流媒体数据发送速度和直播的实时性,导致用户观看时产生延时、卡顿、数据丢失和花屏等比较差的体验。
所以为了实现在网络带宽发生变化的情况下提供良好的直播体验,需要在直播***中通过技术手段实时检测网络状况,判断网络带宽是否发生改变,自适应调整直播的流媒体数据码率以接近实际网络带宽能力。
其中,直播流媒体数据主要包含视频、音频和其他一些文本信息,由于视频的数据量比较大,一般直播中的视频码率基本在几百Kbps到几Mbps之间,而音频的码率通常在几十Kbps,其他文本信息等只有几Kbps,所以流媒的码率控制主要是针对视频的码率的控制。视频采集之后都是通过编码器编码压缩后发送到网络,而视频码率的控制也就是对视频编码器的编码码率的控制,
在相关技术中通常直播***中针对网络带宽变化的检测仅通过发送视频数据缓冲区的缓存来判断,导致判断不够及时和准确,以往对视频码率的下降和上升控制也比较直接,没有限制合理的调节范围,且码率上升时很容易超过实际网络带宽,导致卡顿。
针对上述由于现有技术中针对网络带宽变化的检测仅通过发送视频数据缓冲区的缓存来判断,导致判断的准确率低进而导致控制失调发生卡顿的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据流的控制方法、装置和***,以至少解决由于现有技术中针对网络带宽变化的检测仅通过发送视频数据缓冲区的缓存来判断,导致判断的准确率低进而导致控制失调发生卡顿的技术问题。
根据本发明实施例的一个方面,提供了一种数据流的控制方法,包括:获取流媒体缓冲区的缓冲状态;根据网络带宽状态和流媒体文件的发送码率,确定网络状态;依据缓冲状态和网络状态,确定是否需要调整编码码率;在需要调整编码码率的情况下,获取目标码率;依据目标码率对流媒体文件进行编码。
可选的,该方法还包括:设置输出流媒体文件的初始码率,最小码率和最大码率;将初始码率确定为编码码率,并对流媒体文件进行编码。
可选的,获取流媒体缓冲区的缓冲状态包括:监控视频缓存数据量;在当前网络带宽大于流媒体平均码率的情况下,若流媒体缓冲区的缓存视频数据帧数小于或等于阈值,则确定流媒体缓冲区发生下溢;或,若缓存的流媒体帧大于阈值,则确定网络带宽异常,流媒体缓冲区发生上溢;或,在流媒体缓冲区没有缓存的情况下,确定网络状态正常。
可选的,根据网络带宽状态和流媒体文件的发送码率,确定网络状态包括:通过对单位流媒体文件的数据包的平均发送耗时进行统计,得到网络带宽状态以及流媒体文件的发送码率;根据网络带宽状态以及流媒体文件的发送码率,确定网络状态。
进一步地,可选的,单位流媒体文件的数据包包括:套接字数据包。
可选的,根据网络带宽状态和流媒体文件的发送码率,确定网络状态包括:通过统计流媒体缓冲区中缓存buffer的大小,得到网络带宽状态;通过统计每秒内发送流媒体文件的数据量,得到流媒体文件的发送码率;依据网络带宽状态和流媒体文件的发送码率,确定网络状态。
可选的,根据网络带宽状态和流媒体文件的发送码率,确定网络状态包括:通过对单位流媒体文件的数据包的平均发送耗时以及流媒体缓冲区中缓存buffer的大小进行统计,得到网络带宽状态;通过统计每秒内发送流媒体文件的数据量,得到流媒体文件的发送码率;依据网络带宽状态和流媒体文件的发送码率,确定网络状态。
可选的,获取目标码率包括:当缓冲状态发生上溢,同时网络状况异常时,对流媒体文件的发送码率值取百分比,得到目标码率;若目标码率在最小码率和最大码率之间,同时小于当前编码码率,则调节当前编码码率下降到目标码率。
可选的,获取目标码率包括:当缓冲状态发生下溢,同时网络状况正常时,若编码码率小于初始码率,则将编码码率的预设倍数确定为目标码率;若目标码率小于最大码率,则调节编码码率上升到目标码率;若目标码率大于或等于最大码率,则确定最大码率为目标码率;若编码码率大于初始码率且小于最大码率,则对编码码率增加单位系数得到目标码率,并通过预设周期上升编码码率,直到目标码率大于或等于最大码率,停止调节。
根据本发明实施例的另一方面,还提供了一种数据流的控制装置,包括:第一获取模块,用于获取流媒体缓冲区的缓冲状态;第二获取模块,用于根据网络带宽状态和流媒体文件的发送码率,确定网络状态;判断模块,用于依据缓冲状态和网络状态,确定是否需要调整编码码率;控制模块,用于在需要调整编码码率的情况下,获取目标码率;编码模块,用于依据目标码率对流媒体文件进行编码。
根据本发明实施例的又一方面,还提供了一种数据流的控制***,包括:视频码率设置单元、视频编码器单元、视频缓冲区单元和网络发送单元,其中,视频码率设置单元,用于设置各分辨率流媒体文件的初始码率,最小码率和最大码率;初始码率用于首次设置编码码率;最小码率用于调节码率下限;最大码率用于调节码率上限;视频编码器单元,用于对流媒体文件进行编码,输出指定码率的编码后流媒体文件,其中,还用于控制流媒体文件的编码码率以及统计实时编码码率;视频缓冲区单元,用于发送到网络的流媒体缓冲区,其中,流媒体缓冲区用于按顺序保存编码后流媒体文件;网络发送单元,用于从流媒体缓冲区中获取流媒体文件,并根据直播协议将流媒体文件打包发送到网络;码率控制模块,用于通过实时检测视频缓冲区单元的缓存状况和网络发送单元的网络状况,并参考视频编码器单元的编码码率,实际发送码率以及视频码率设置单元的设置参数来决定是否上升或下降视频编码码率以及计算调整后的视频编码码率。
根据本发明实施例的再一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述的数据流的控制方法。
在本发明实施例中,采用通过检测socket发包平均耗时和视频缓冲区的缓存情况两个因素的方式,通过获取流媒体缓冲区的缓冲状态;根据网络带宽状态和流媒体文件的发送码率,确定网络状态;依据缓冲状态和网络状态,确定是否需要调整编码码率;在需要调整编码码率的情况下,获取目标码率;依据目标码率对流媒体文件进行编码,达到了精确和及时地判断当前网络带宽的实际状况的目的,从而实现了避免判断失误造成的控制失误的技术效果,进而解决了由于现有技术中针对网络带宽变化的检测仅通过发送视频数据缓冲区的缓存来判断,导致判断的准确率低进而导致控制失调发生卡顿的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种数据流的控制方法的计算机终端的硬件结构框图;
图2是根据本发明实施例一的数据流的控制方法的流程图;
图3是根据本发明实施例二的数据流的控制装置的结构图;
图4是根据本发明实施例三的数据流的控制***在执行时的流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请涉及的技术名词:
流媒体:流媒体就是指采用流式传输技术在网络上连续实时播放的媒体格式,如音频、视频或多媒体文件。
socket(套接字):网络进程间通讯接口,网络通信通过socket建立连接,接收和发送数据。
实施例1
根据本发明实施例,还提供了一种数据流的控制方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种数据流的控制方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的数据流的控制方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的数据流的控制方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在上述运行环境下,本申请提供了如图2所示的数据流的控制方法。图2是根据本发明实施例一的数据流的控制方法的流程图。
步骤S200,获取流媒体缓冲区的缓冲状态;
具体的,在步骤S200中,获取流媒体缓冲区的缓冲状态可以应用于视频直播场景,为保障流媒体文件的顺利播放,在对流媒体文件进行编码前,需获取流媒体缓冲区的缓冲状态,其中,以流媒体文件为视频数据为例,该缓冲状态可以包括:视频缓冲区中缓存数据的数据量会根据网络带宽状况发生变化,当网络状况正常的情况,缓冲区中视频数据会立刻被发送到网络而没有缓存;而网络状况比较差的情况下,缓冲区中的视频数据会产生缓存,并随着网络状况越来越差,视频数据缓存会越来越多。在当前网络带宽高于视频数据平均码率的情况下,视频缓冲区的缓存视频数据帧数应该小于等于一个,此时缓冲区发生下溢,而当缓存视频数据帧高于一秒以上则认为网络带宽异常,缓冲区发生上溢。
步骤S202,根据网络带宽状态和流媒体文件的发送码率,确定网络状态;
具体的,在步骤S202中,通过对单位数据包的平均发送耗时统计可以反映网络的带宽状况以及获取实时视频数据的发送码率。
其中,由于单次发送数据包的大小通常为几百字节数,正常情况下将几百字节填充到***缓冲区中的耗时通常为数十微秒,而当发生阻塞时这个时间会达到毫秒甚至秒级别,网络发送模块通过统计1秒内所有发送数据包的平均耗时T,当连续3秒内T的数值大于100微秒认为网络带宽出现下降,网络状况发生异常,否则视为网络状况正常。
此外,通过统计每秒内发送视频数据量可以得出当前视频的实际发送码率(即,本申请实施例中的)。
步骤S204,依据缓冲状态和网络状态,确定是否需要调整编码码率;
步骤S206,在需要调整编码码率的情况下,获取目标码率;
基于步骤S204的判断,在步骤S206中,通过实时检测缓存状况和网络状况,并参考编码码率,实际发送码率以及设置参数来决定是否上升或下降视频编码码率以及计算调整后的视频编码码率,这里调整后的视频编码码率为本申请实施例中的目标码率。
步骤S208,依据目标码率对流媒体文件进行编码。
在步骤S208中,基于步骤S206中的目标码率对流媒体文件进行编码,从而减小对网络带宽的占用,减轻网络负担。
在本发明实施例中,采用通过检测socket发包平均耗时和视频缓冲区的缓存情况两个因素的方式,通过获取流媒体缓冲区的缓冲状态;根据网络带宽状态和流媒体文件的发送码率,确定网络状态;依据缓冲状态和网络状态,确定是否需要调整编码码率;在需要调整编码码率的情况下,获取目标码率;依据目标码率对流媒体文件进行编码,达到了精确和及时地判断当前网络带宽的实际状况的目的,从而实现了避免判断失误造成的控制失误的技术效果,进而解决了由于现有技术中针对网络带宽变化的检测仅通过发送视频数据缓冲区的缓存来判断,导致判断的准确率低进而导致控制失调发生卡顿的技术问题。
可选的,本申请实施例提供的数据流的控制方法还包括:
步骤S198,设置输出流媒体文件的初始码率,最小码率和最大码率;
步骤S199,将初始码率确定为编码码率,并对流媒体文件进行编码。
具体的,结合步骤S198和步骤S199,由于流媒体直播中不同的直播场景对视频清晰度和流畅度的不同需求,所以对各分辨率的视频编码码率做限制以达到最佳的清晰度和流畅度。通过设置以下三个参数:初始码率,最小码率和最大码率来控制视频码率调整的范围。初始码率就是首次设置给视频编码器的编码码率,最小码率和最大码率对应编码器可调节的码率下限和上限。
可选的,步骤S200中获取流媒体缓冲区的缓冲状态包括:
步骤S2001,监控视频缓存数据量;
步骤S2002,在当前网络带宽大于流媒体平均码率的情况下,若流媒体缓冲区的缓存视频数据帧数小于或等于阈值,则确定流媒体缓冲区发生下溢;或,
步骤S2002’,若缓存的流媒体帧大于阈值,则确定网络带宽异常,流媒体缓冲区发生上溢;或,
步骤S2002”,在流媒体缓冲区没有缓存的情况下,确定网络状态正常。
具体的,基于步骤S2001对视频缓存数据量的监控,判断当前流媒体缓冲区的缓冲状态是否处于下溢、上溢或正常。其中,本申请实施例中的阈值以1秒为例进行说明。需要说明的是,本申请实施例中阈值的设定仅以1秒为例,以实现本申请实施例提供的数据流的控制方法为准,具体不做限定。
可选的,步骤S202中根据网络带宽状态和流媒体文件的发送码率,确定网络状态包括:
步骤S2021,通过对单位流媒体文件的数据包的平均发送耗时进行统计,得到网络带宽状态以及流媒体文件的发送码率;
步骤S2022,根据网络带宽状态以及流媒体文件的发送码率,确定网络状态。
进一步地,可选的,单位流媒体文件的数据包包括:套接字数据包。
这里结合步骤S2021和步骤S2022,在确定网络状态的过程中,通过对单位数据包(即,本申请实施例中的单位流媒体文件的数据包)的平均发送耗时统计可以反映网络的带宽状况以及获取实时视频数据的发送码率。
其中,直播协议是通过编程接口Socket(套接字)来实现网络数据的交换,Socket(套接字)向网络发出请求或者应答网络请求来发送和接收数据。发送视频数据到网络时,Socket(套接字)建立连接,将视频数据分解成若干个很小的网络数据包并填充到操作***的内核发送缓冲区中,***底层的网络模块再将发送缓冲区中的数据发送到网络。
Socket(套接字)发送方法有阻塞和非阻塞两种模式,当***发送缓冲区中剩余空间不够填充本次发送数据大小时,阻塞模式下会导致发送程序等待直到数据完全填充到***发送缓冲区中或者设定的最大超时等待时间到达才会解除等待;
非阻塞模式下发送程序不用等待填满***发送缓冲区后立刻返回,不会阻塞发送程序。
本申请实施例提供的数据流的控制方法可以适用于阻塞模式发送数据,通过设置固定的***发送缓冲区大小以及最大超时等待时间,在网络不稳定时,发送缓冲区会出现上溢,导致单次发送数据发生阻塞,通过统计单位时间内单次发送数据包的平均耗时可以用来判断网络带宽状况。
由于单次发送数据包的大小通常为几百字节数,正常情况下将几百字节填充到***缓冲区中的耗时通常为数十微秒,而当发生阻塞时这个时间会达到毫秒甚至秒级别,通过统计1秒内所有发送数据包的平均耗时T,当连续3秒内T的数值大于100微秒认为网络带宽出现下降,网络状况发生异常,否则视为网络状况正常。另外通过统计每秒内发送视频数据量可以得出当前视频的实际发送码率。
需要说明的是,对统计时间的设定仅以上述示例为优选示例,以实现本申请实施例提供的数据流的控制方法为准,具体不做限定。
除此之外,本申请实施例中根据socket发包耗时来判断网络状况,还可以通过***发送缓冲区中缓存buffer的大小来判断网络状况,或,结合socket发包耗时和***发送缓冲区中缓存buffer的大小判断网络状况,具体的如下:
方式一:通过***发送缓冲区中缓存buffer的大小来判断网络状况;
根据网络带宽状态和流媒体文件的发送码率,确定网络状态包括:通过统计流媒体缓冲区中缓存buffer的大小,得到网络带宽状态;通过统计每秒内发送流媒体文件的数据量,得到流媒体文件的发送码率;依据网络带宽状态和流媒体文件的发送码率,确定网络状态。
方式二:结合socket发包耗时和***发送缓冲区中缓存buffer的大小判断网络状况;
根据网络带宽状态和流媒体文件的发送码率,确定网络状态包括:通过对单位流媒体文件的数据包的平均发送耗时以及流媒体缓冲区中缓存buffer的大小进行统计,得到网络带宽状态;通过统计每秒内发送流媒体文件的数据量,得到流媒体文件的发送码率;依据网络带宽状态和流媒体文件的发送码率,确定网络状态。
其中,以根据socket发包耗时来判断网络状况为优选示例进行说明。
可选的,步骤S206中获取目标码率包括:
步骤S2061,当缓冲状态发生上溢,同时网络状况异常时,对流媒体文件的发送码率值取百分比,得到目标码率;
步骤S2062,若目标码率在最小码率和最大码率之间,同时小于当前编码码率,则调节当前编码码率下降到目标码率。
具体的,结合步骤S2061和步骤S2062,当发生上溢状况,同时网络异常状况时,取视频发送码率值(即,本申请实施例中的流媒体文件的发送码率值)的百分之九十五作为目标码率,若目标码率在设置的最小码率和最大码率之间,同时小于当前编码码率,则目标码率有效,通知下降当前编码码率到目标码率。
其中,本申请实施例中以“取视频发送码率值的百分之九十五作为目标码率”为例进行说明,以实现本申请实施例提供的数据流的控制方法为准,具体不做限定。
可选的,步骤S206中获取目标码率包括:
步骤S2061’,当缓冲状态发生下溢,同时网络状况正常时,若编码码率小于初始码率,则将编码码率的预设倍数确定为目标码率;
步骤S2062’,若目标码率小于最大码率,则调节编码码率上升到目标码率;
步骤S2063’,若目标码率大于或等于最大码率,则确定最大码率为目标码率;
步骤S2064’,若编码码率大于初始码率且小于最大码率,则对编码码率增加单位系数得到目标码率,并通过预设周期上升编码码率,直到目标码率大于或等于最大码率,停止调节。
具体的,结合步骤S2061’至步骤S2064’,当发生下溢状况,同时网络正常状况时,若当前编码码率小于初始码率,则取当前编码码率的1.1倍作为目标码率;若目标码率小于最大码率,则上升当前编码码率到目标码率,否则上升到最大码率。若当前编码码率大于初始码率且小于最大码率,则此时目标码率=编码码率+20kbps,每隔10秒通知编码器上升编码码率到目标码率,直到目标码率大于等于最大码率,停止调节。
由于在网络正常的情况下不能确定实际的网络带宽,在当前编码码率大于初始码率的情况下,因为此时编码码率已经满足正常直播的需求,此时为了避免大幅度的上升而触及或者超过实际网络带宽所引发的卡顿,通过周期性地小幅度上升编码码率以接近实际的网络带宽来提供更优的视频编码质量,从而达到最佳的用户观看体验。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的数据流的控制方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述数据流的控制方法的装置,图3是根据本发明实施例二的数据流的控制装置的结构图,如图3所示,该装置包括:第一获取模块30,第二获取模块32,判断模块34,控制模块36和编码模块38。
其中,第一获取模块30,用于获取流媒体缓冲区的缓冲状态;第二获取模块32,用于根据网络带宽状态和流媒体文件的发送码率,确定网络状态;判断模块34,用于依据缓冲状态和网络状态,确定是否需要调整编码码率;控制模块36,用于在需要调整编码码率的情况下,获取目标码率;编码模块38,用于依据目标码率对流媒体文件进行编码。
在本发明实施例中,采用通过检测socket发包平均耗时和视频缓冲区的缓存情况两个因素的方式,通过获取流媒体缓冲区的缓冲状态;根据网络带宽状态和流媒体文件的发送码率,确定网络状态;依据缓冲状态和网络状态,确定是否需要调整编码码率;在需要调整编码码率的情况下,获取目标码率;依据目标码率对流媒体文件进行编码,达到了精确和及时地判断当前网络带宽的实际状况的目的,从而实现了避免判断失误造成的控制失误的技术效果,进而解决了由于现有技术中针对网络带宽变化的检测仅通过发送视频数据缓冲区的缓存来判断,导致判断的准确率低进而导致控制失调发生卡顿的技术问题。
实施例3
根据本发明实施例的又一方面,还提供了一种数据流的控制***,图4是根据本发明实施例三的数据流的控制***在执行时的流程示意图,如图4所示,包括:视频码率设置单元,视频编码器单元,视频缓冲区单元,网络发送单元和码率控制模块。
其中,视频码率设置单元,用于设置各分辨率流媒体文件的初始码率,最小码率和最大码率;初始码率用于首次设置编码码率;最小码率用于调节码率下限;最大码率用于调节码率上限;视频编码器单元,用于对流媒体文件进行编码,输出指定码率的编码后流媒体文件,其中,还用于控制流媒体文件的编码码率以及统计实时编码码率;视频缓冲区单元,用于发送到网络的流媒体缓冲区,其中,流媒体缓冲区用于按顺序保存编码后流媒体文件;网络发送单元,用于从流媒体缓冲区中获取流媒体文件,并根据直播协议将流媒体文件打包发送到网络;码率控制模块,用于通过实时检测视频缓冲区单元44的缓存状况和网络发送单元的网络状况,并参考视频编码器单元的编码码率,实际发送码率以及视频码率设置单元的设置参数来决定是否上升或下降视频编码码率以及计算调整后的视频编码码率。
具体的,如图4所示,本申请实施例提供的数据流的控制***在执行时的流程具体如下:
Step1:通过视频码率设置单元设置输出视频的初始码率,最小码率和目标码率。
Step2:设置初始码率给视频编码器单元作为编码器的编码码率。
Step3:监控视频缓冲区单元的视频缓存数据量,获取视频缓冲区状况。
Step4:监控网络发送单元的统计结果,获取到当前网络带宽状况以及当前视频发送码率。
Step5:码率控制单元通过步骤三获取视频缓冲区单元是否下溢或者上溢,通过步骤四获取网络带宽状况是否正常或者异常,决定是否调整编码码率,如果不需要调整码率,回到步骤三继续监控,如果需要调整码率,计算出下降或者上升的目标码率,回到步骤二控制编码器调节编码码率到目标码率。
实施例4
根据本发明实施例的再一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述的数据流的控制方法。
实施例5
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的数据流的控制方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取流媒体缓冲区的缓冲状态;根据网络带宽状态和流媒体文件的发送码率,确定网络状态;依据缓冲状态和网络状态,确定是否需要调整编码码率;在需要调整编码码率的情况下,获取目标码率;依据目标码率对流媒体文件进行编码。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:设置输出流媒体文件的初始码率,最小码率和最大码率;将初始码率确定为编码码率,并对流媒体文件进行编码。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取流媒体缓冲区的缓冲状态包括:监控视频缓存数据量;在当前网络带宽大于流媒体平均码率的情况下,若流媒体缓冲区的缓存视频数据帧数小于或等于阈值,则确定流媒体缓冲区发生下溢;或,若缓存的流媒体帧大于阈值,则确定网络带宽异常,流媒体缓冲区发生上溢;或,在流媒体缓冲区没有缓存的情况下,确定网络状态正常。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:根据网络带宽状态和流媒体文件的发送码率,确定网络状态包括:通过对单位流媒体文件的数据包的平均发送耗时进行统计,得到网络带宽状态以及流媒体文件的发送码率;根据网络带宽状态以及流媒体文件的发送码率,确定网络状态。
进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:单位流媒体文件的数据包包括:套接字数据包。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:根据网络带宽状态和流媒体文件的发送码率,确定网络状态包括:通过统计流媒体缓冲区中缓存buffer的大小,得到网络带宽状态;通过统计每秒内发送流媒体文件的数据量,得到流媒体文件的发送码率;依据网络带宽状态和流媒体文件的发送码率,确定网络状态。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:根据网络带宽状态和流媒体文件的发送码率,确定网络状态包括:通过对单位流媒体文件的数据包的平均发送耗时以及流媒体缓冲区中缓存buffer的大小进行统计,得到网络带宽状态;通过统计每秒内发送流媒体文件的数据量,得到流媒体文件的发送码率;依据网络带宽状态和流媒体文件的发送码率,确定网络状态。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取目标码率包括:当缓冲状态发生上溢,同时网络状况异常时,对流媒体文件的发送码率值取百分比,得到目标码率;若目标码率在最小码率和最大码率之间,同时小于当前编码码率,则调节当前编码码率下降到目标码率。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取目标码率包括:当缓冲状态发生下溢,同时网络状况正常时,若编码码率小于初始码率,则将编码码率的预设倍数确定为目标码率;若目标码率小于最大码率,则调节编码码率上升到目标码率;若目标码率大于或等于最大码率,则确定最大码率为目标码率;若编码码率大于初始码率且小于最大码率,则对编码码率增加单位系数得到目标码率,并通过预设周期上升编码码率,直到目标码率大于或等于最大码率,停止调节。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种数据流的控制方法,包括:
获取流媒体缓冲区的缓冲状态;
根据网络带宽状态和流媒体文件的发送码率,确定网络状态,其中,所述网络带宽状态通过如下至少之一方式确定:统计单位流媒体文件的数据包的平均发送耗时,统计所述流媒体缓冲区中缓存buffer的大小,所述发送码率通过统计每秒内发送流媒体文件的数据量来确定;
依据所述缓冲状态和所述网络状态,确定是否需要调整编码码率;
在需要调整所述编码码率的情况下,获取目标码率;
依据所述目标码率对流媒体文件进行编码。
2.根据权利要求1所述的数据流的控制方法,其中,所述方法还包括:
设置输出流媒体文件的初始码率,最小码率和最大码率;
将所述初始码率确定为编码码率,并对所述流媒体文件进行编码。
3.根据权利要求1所述的数据流的控制方法,其中,所述获取流媒体缓冲区的缓冲状态包括:
监控视频缓存数据量;
在当前网络带宽大于流媒体平均码率的情况下,若流媒体缓冲区的缓存视频数据帧数小于或等于阈值,则确定所述流媒体缓冲区发生下溢;或,
若缓存的流媒体帧大于阈值,则确定网络带宽异常,所述流媒体缓冲区发生上溢;或,
在所述流媒体缓冲区没有缓存的情况下,确定网络状态正常。
4.根据权利要求1所述的数据流的控制方法,其中,所述根据网络带宽状态和流媒体文件的发送码率,确定网络状态包括:
通过对单位流媒体文件的数据包的平均发送耗时进行统计,得到所述网络带宽状态以及所述流媒体文件的发送码率;
根据所述网络带宽状态以及所述流媒体文件的发送码率,确定网络状态。
5.根据权利要求4所述的数据流的控制方法,其中,所述单位流媒体文件的数据包包括:套接字数据包。
6.根据权利要求1所述的数据流的控制方法,其中,所述根据网络带宽状态和流媒体文件的发送码率,确定网络状态包括:
通过统计流媒体缓冲区中缓存buffer的大小,得到所述网络带宽状态;
通过统计每秒内发送流媒体文件的数据量,得到所述流媒体文件的发送码率;
依据所述网络带宽状态和所述流媒体文件的发送码率,确定网络状态。
7.根据权利要求1所述的数据流的控制方法,其中,所述根据网络带宽状态和流媒体文件的发送码率,确定网络状态包括:
通过对单位流媒体文件的数据包的平均发送耗时以及所述流媒体缓冲区中缓存buffer的大小进行统计,得到所述网络带宽状态;
通过统计每秒内发送流媒体文件的数据量,得到所述流媒体文件的发送码率;
依据所述网络带宽状态和所述流媒体文件的发送码率,确定网络状态。
8.根据权利要求1至7中任一项所述的数据流的控制方法,其中,所述获取目标码率包括:
当所述缓冲状态发生上溢,同时所述网络状态异常时,对所述流媒体文件的发送码率值取百分比,得到所述目标码率;
若所述目标码率在最小码率和最大码率之间,同时小于当前编码码率,则调节当前编码码率下降到所述目标码率。
9.根据权利要求1至5中任一项所述的数据流的控制方法,其中,所述获取目标码率包括:
当所述缓冲状态发生下溢,同时所述网络状态正常时,若编码码率小于初始码率,则将所述编码码率的预设倍数确定为所述目标码率;
若所述目标码率小于最大码率,则调节所述编码码率上升到所述目标码率;
若所述目标码率大于或等于所述最大码率,则确定所述最大码率为所述目标码率;
若所述编码码率大于初始码率且小于最大码率,则对所述编码码率增加单位系数得到所述目标码率,并通过预设周期上升所述编码码率,直到所述目标码率大于或等于最大码率,停止调节。
10.一种数据流的控制装置,包括:
第一获取模块,用于获取流媒体缓冲区的缓冲状态;
第二获取模块,用于根据网络带宽状态和流媒体文件的发送码率,确定网络状态,其中,所述网络带宽状态通过如下至少之一方式确定:统计单位流媒体文件的数据包的平均发送耗时,统计所述流媒体缓冲区中缓存buffer的大小,所述发送码率通过统计每秒内发送流媒体文件的数据量来确定;
判断模块,用于依据所述缓冲状态和所述网络状态,确定是否需要调整编码码率;
控制模块,用于在需要调整所述编码码率的情况下,获取目标码率;
编码模块,用于依据所述目标码率对流媒体文件进行编码。
11.一种数据流的控制***,包括:视频码率设置单元、视频编码器单元、视频缓冲区单元、网络发送单元和码率控制模块,其中,
所述视频码率设置单元,用于设置各分辨率流媒体文件的初始码率,最小码率和最大码率;所述初始码率用于首次设置编码码率;所述最小码率用于调节码率下限;所述最大码率用于调节码率上限;
所述视频编码器单元,用于对流媒体文件进行编码,输出指定码率的编码后流媒体文件,其中,还用于控制流媒体文件的编码码率以及统计实时编码码率;
所述视频缓冲区单元,用于发送到网络的流媒体缓冲区,其中,所述流媒体缓冲区用于按顺序保存编码后流媒体文件;所述网络发送单元,用于从所述流媒体缓冲区中获取流媒体文件,并根据直播协议将所述流媒体文件打包发送到网络;
所述码率控制模块,用于通过实时检测所述视频缓冲区单元的缓存状况和所述网络发送单元的网络状态,并参考所述视频编码器单元的编码码率,实际发送码率以及所述视频码率设置单元的设置参数来决定是否上升或下降视频编码码率以及计算调整后的视频编码码率,其中,所述网络状态依据根据网络带宽状态和所述实际发送码率确定,所述网络带宽状态通过如下至少之一方式确定:统计单位流媒体文件的数据包的平均发送耗时,统计所述流媒体缓冲区中缓存buffer的大小,所述发送码率通过统计每秒内发送流媒体文件的数据量来确定。
12.一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行:权利要求1所述的数据流的控制方法。
CN201811270591.9A 2018-10-29 2018-10-29 数据流的控制方法、装置和*** Active CN111107382B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811270591.9A CN111107382B (zh) 2018-10-29 2018-10-29 数据流的控制方法、装置和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811270591.9A CN111107382B (zh) 2018-10-29 2018-10-29 数据流的控制方法、装置和***

Publications (2)

Publication Number Publication Date
CN111107382A CN111107382A (zh) 2020-05-05
CN111107382B true CN111107382B (zh) 2022-05-06

Family

ID=70419705

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811270591.9A Active CN111107382B (zh) 2018-10-29 2018-10-29 数据流的控制方法、装置和***

Country Status (1)

Country Link
CN (1) CN111107382B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112468855B (zh) * 2020-11-11 2023-01-24 西安万像电子科技有限公司 数据传输方法及装置、非易失性存储介质
CN112565762B (zh) * 2020-12-04 2022-08-12 上海航天计算机技术研究所 适用运载火箭的多通道视频图像的均衡编码方法和装置
CN113162895B (zh) * 2020-12-22 2023-04-07 咪咕文化科技有限公司 动态编码方法、流媒体质量确定方法及电子设备
CN112579210A (zh) * 2020-12-30 2021-03-30 上海众源网络有限公司 一种应用程序控制方法及装置
CN116074554A (zh) * 2021-10-29 2023-05-05 重庆紫光华山智安科技有限公司 一种流媒体数据量控制方法、***、设备和介质
WO2023115414A1 (zh) * 2021-12-22 2023-06-29 深圳Tcl新技术有限公司 数据处理方法、视频播放***及终端设备和存储介质
CN114629894B (zh) * 2022-03-19 2024-03-19 敦和万物信息技术(苏州)有限公司 一种用于电子数据取证的物联网数据的传输方法及装置
CN115103235B (zh) * 2022-06-21 2023-10-20 咪咕互动娱乐有限公司 数据传输方法、装置、设备与介质
CN115278319A (zh) * 2022-07-13 2022-11-01 海信视像科技股份有限公司 一种投屏数据传输方法、装置、电子设备和存储介质
CN117750014A (zh) * 2022-11-24 2024-03-22 行吟信息科技(武汉)有限公司 视频编码方法、装置及存储介质
CN117789734B (zh) * 2024-02-28 2024-05-28 腾讯科技(深圳)有限公司 音频处理方法、装置、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103702237A (zh) * 2012-09-28 2014-04-02 北京大学 Http流媒体的速率自适方法及装置
CN105744342A (zh) * 2016-01-28 2016-07-06 腾讯科技(深圳)有限公司 移动终端的数据传输方法和装置
CN205545722U (zh) * 2016-04-27 2016-08-31 上海象融蓝海文化传媒有限公司 一种视频在线播放***
CN107295395A (zh) * 2017-06-27 2017-10-24 武汉斗鱼网络科技有限公司 码率自适应调节方法、装置及电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7359004B2 (en) * 2003-05-23 2008-04-15 Microsoft Corporation Bi-level and full-color video combination for video communication
CN101068236B (zh) * 2007-04-13 2011-10-26 华为技术有限公司 流媒体码率控制方法、***和设备
CN101296158A (zh) * 2007-04-26 2008-10-29 深圳市同洲电子股份有限公司 一种流媒体数据传输方法及其数据传输装置
US9276967B2 (en) * 2012-07-27 2016-03-01 Centurylink Intellectual Property Llc System and method for determining optimal bandwidth for streaming to a client device in an adjustable bit rate video system
US9756112B2 (en) * 2015-02-11 2017-09-05 At&T Intellectual Property I, L.P. Method and system for managing service quality according to network status predictions
US10530683B2 (en) * 2016-08-31 2020-01-07 Citrix Systems, Inc. High-quality adaptive bitrate video through multiple links

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103702237A (zh) * 2012-09-28 2014-04-02 北京大学 Http流媒体的速率自适方法及装置
CN105744342A (zh) * 2016-01-28 2016-07-06 腾讯科技(深圳)有限公司 移动终端的数据传输方法和装置
CN205545722U (zh) * 2016-04-27 2016-08-31 上海象融蓝海文化传媒有限公司 一种视频在线播放***
CN107295395A (zh) * 2017-06-27 2017-10-24 武汉斗鱼网络科技有限公司 码率自适应调节方法、装置及电子设备

Also Published As

Publication number Publication date
CN111107382A (zh) 2020-05-05

Similar Documents

Publication Publication Date Title
CN111107382B (zh) 数据流的控制方法、装置和***
US11503307B2 (en) System and method for automatic encoder adjustment based on transport data
EP2888844B1 (en) Device and method for adaptive rate multimedia communications on a wireless network
KR101942208B1 (ko) Dlna http 스트리밍 클라이언트들을 위한 서버측 적응형 비트 레이트 제어
US9398488B2 (en) Video service buffer management in a mobile rate control enabled network
EP2859703B1 (en) Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network
US9532062B2 (en) Controlling player buffer and video encoder for adaptive video streaming
US9042444B2 (en) System and method for transmission of data signals over a wireless network
CN102710374B (zh) 无线流媒体传输中的速率控制方法
US9247448B2 (en) Device and method for adaptive rate multimedia communications on a wireless network
CN106576081B (zh) 视频电话中由接收器驱动的向上切换
US20140181266A1 (en) System, streaming media optimizer and methods for use therewith
EP2589223B1 (en) Video streaming
CN107295395A (zh) 码率自适应调节方法、装置及电子设备
CN104270649A (zh) 影像编码装置及影像编码方法
AU2021200428B2 (en) System and method for automatic encoder adjustment based on transport data
WO2014209493A1 (en) State management for video streaming quality of experience degradation control and recovery using a video quality metric
WO2015044104A1 (en) Video traffic management
Dong et al. A joint rate and buffer control scheme for video transmission over LTE wireless networks
WO2018002687A1 (en) Estimating a buffer level in a playout device
EP2408204A1 (en) Video streaming

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