CN106851337B - 视频缓冲控制方法及装置 - Google Patents

视频缓冲控制方法及装置 Download PDF

Info

Publication number
CN106851337B
CN106851337B CN201710093459.4A CN201710093459A CN106851337B CN 106851337 B CN106851337 B CN 106851337B CN 201710093459 A CN201710093459 A CN 201710093459A CN 106851337 B CN106851337 B CN 106851337B
Authority
CN
China
Prior art keywords
video
pushing
code rate
stream pushing
accelerated
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
CN201710093459.4A
Other languages
English (en)
Other versions
CN106851337A (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.)
Poly Polytron Technologies Inc
Original Assignee
Poly Polytron Technologies Inc
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 Poly Polytron Technologies Inc filed Critical Poly Polytron Technologies Inc
Priority to CN201710093459.4A priority Critical patent/CN106851337B/zh
Publication of CN106851337A publication Critical patent/CN106851337A/zh
Application granted granted Critical
Publication of CN106851337B publication Critical patent/CN106851337B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/234363Processing 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 spatial resolution, e.g. for clients with a lower screen resolution
    • 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/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • 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
    • 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/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/44004Processing 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 video buffer management, e.g. video decoder buffer or video display buffer

Landscapes

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

Abstract

本发明实施例提供一种视频缓冲控制方法及装置,该方法包括:获取目标视频的平均推流码率、所述目标视频的加速推流码率、及预设视频缓冲时长,所述加速推流码率大于所述平均推流码率;根据所述平均推流码率、所述加速推流码率、及所述预设视频缓冲时长,确定所述目标视频的加速推流时长;根据所述目标视频的起始推流时刻和当前时刻,确定所述目标视频的当前推流时长;在所述目标视频的当前推流时长首次大于或等于所述加速推流时长之前,根据所述加速推流码率,向客户端推送视频;在所述目标视频的当前推流时长首次大于或等于所述加速推流时长之后,根据所述平均推流码率,向客户端推送视频。用于提高视频推流的稳定性。

Description

视频缓冲控制方法及装置
技术领域
本发明实施例涉及视频技术领域,尤其涉及一种视频缓冲控制方法及装置。
背景技术
用户可以通过客户端(电视等设备)观看网络直播、网络点播等视频,为了保证用户能够观看流畅的视频,客户端通常设置视频缓冲区,在视频缓冲区中缓存未播放的视频。
在现有技术中,在客户端向视频服务器发送视频请求之后,视频服务器以系统调度时长(通常大于或等于1秒)为单位向客户端推流,每个系统调度时长向客户端发送固定大小的视频。客户端根据自身内存、及视频服务器发送视频的码率,确定用于缓存视频的视频缓冲区,将视频服务器发送的视频数据缓存在视频缓冲区,并根据视频播放速度在视频缓冲区中获取视频数据进行播放。客户端还实时检测视频缓冲区中缓存的视频数据量,若缓冲区中缓存的视频数据量小于预设最小值时,则客户端请求视频服务器加快向客户端发送视频数据的码率,在缓存区中缓存的视频数量大于预设最大值时,则客户端请求视频服务器降低向客户端发送视频数据的码率。
由上可知,在现有技术中,由客户端对视频缓冲进行控制,这就要求所有进行视频播放的客户端均具备视频缓冲控制的功能,导致对客户端的要求较高;进一步的,由客户端根据视频缓冲区中的视频数据,确定视频服务器发送视频数据的码率,会导致视频服务器发送视频数据的码率波动较大,导致视频推流的稳定性较低。
发明内容
本发明实施例提供一种视频缓冲控制方法及装置,提高了视频推流的稳定性。
第一方面,本发明实施例提供一种视频缓冲控制方法,包括:
获取目标视频的平均推流码率、所述目标视频的加速推流码率、及预设视频缓冲时长,所述加速推流码率大于所述平均推流码率;
根据所述平均推流码率、所述加速推流码率、及所述预设视频缓冲时长,确定所述目标视频的加速推流时长;
根据所述目标视频的起始推流时刻和当前时刻,确定所述目标视频的当前推流时长;
在所述目标视频的当前推流时长首次大于或等于所述加速推流时长之前,根据所述加速推流码率,向客户端推送视频;
在所述目标视频的当前推流时长首次大于或等于所述加速推流时长之后,根据所述平均推流码率,向客户端推送视频。
在一种可能的实施方式中,获取所述目标视频的平均推流码率,包括:
获取所述目标视频的文件大小和所述目标视频的播放时长;
根据所述目标视频的文件大小和所述目标视频的播放时长,确定所述目标视频的平均推流码率。
在另一种可能的实施方式中,获取所述目标视频的加速推流码率,包括:
获取预设加速推流增量;
根据所述平均推流码率和所述加速推流增量,确定所述加速推流码率。
在另一种可能的实施方式中,根据所述平均推流码率、所述加速推流码率、及所述预设视频缓冲时长,确定所述目标视频的加速推流时长,包括:
根据如下公式一,确定所述目标视频的加速推流时长Tfast
其中,所述Tbuff为所述预设视频缓冲时长,所述bavg为所述平均推流码率,所述bfast为所述加速推流码率。
在另一种可能的实施方式中,根据所述加速推流码率,向客户端推送视频,包括:
根据所述起始推流时刻、所述起始推流时刻与所述当前时刻之间推送的第一视频量、及所述加速推流码率,确定第一推流滞后时长;
若所述第一推流滞后时长小于第一阈值,则在预设时长内暂停推流,所述第一阈值小于或等于零;
若所述第一推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值,则向客户端推送所述当前时刻对应的视频包;
若所述第一推流滞后时长大于第二阈值,则将所述起始推流时刻更新为所述当前时刻,并向客户端推送所述当前时刻对应的视频包。
在另一种可能的实施方式中,根据所述平均推流码率,向客户端推送视频,包括:
根据所述起始推流时刻、所述起始推流时刻与所述当前时刻之间推送的第一视频量、及所述平均推流码率,确定第二推流滞后时长;
若所述第二推流滞后时长小于第一阈值,则在预设时长内暂停推流,所述第一阈值小于或等于零;
若所述第二推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值,则向客户端推送所述当前时刻对应的视频包;
若所述第二推流滞后时长大于第二阈值,则将所述起始推流时刻更新为所述当前时刻,并向客户端推送所述当前时刻对应的视频包。
在另一种可能的实施方式中,根据所述起始推流时刻、所述起始推流时刻与所述当前时刻之间推送的第一视频量、及所述加速推流码率,确定第一推流滞后时长,包括:
根据如下公式二确定所述第一推流滞后时长Tdelay1
其中,所述Tnow为所述当前时刻,所述Tbegin为所述起始推流时刻,所述n为所述第一视频量,所述bfast为所述加速推流码率。
在另一种可能的实施方式中,根据所述起始推流时刻、所述起始推流时刻与所述当前时刻之间推送的第一视频量、及所述平均推流码率,确定推流滞后时长,包括:
根据如下公式三确定所述第二推流滞后时长Tdelay2
其中,所述Tnow为所述当前时刻,所述Tbegin为所述起始推流时刻,所述n为所述第一视频量,所述bavg为所述平均推流码率。
第二方面,本发明实施例提供一种视频缓冲控制装置,包括获取模块、第一确定模块、第二确定模块和推流模块,其中,
所述获取模块用于,获取目标视频的平均推流码率、所述目标视频的加速推流码率、及预设视频缓冲时长,所述加速推流码率大于所述平均推流码率;
所述第一确定模块用于,根据所述平均推流码率、所述加速推流码率、及所述预设视频缓冲时长,确定所述目标视频的加速推流时长;
所述第二确定模块用于,根据所述目标视频的起始推流时刻和当前时刻,确定所述目标视频的当前推流时长;
所述推流模块用于,在所述目标视频的当前推流时长首次大于或等于所述加速推流时长之前,根据所述加速推流码率,向客户端推送视频;
所述推流模块还用于,在所述目标视频的当前推流时长首次大于或等于所述加速推流时长之后,根据所述平均推流码率,向客户端推送视频。
在一种可能的实施方式中,所述获取模块具体用于:
获取所述目标视频的文件大小和所述目标视频的播放时长;
根据所述目标视频的文件大小和所述目标视频的播放时长,确定所述目标视频的平均推流码率。
在另一种可能的实施方式中,所述获取模块具体用于:获取预设加速推流增量;
根据所述平均推流码率和所述加速推流增量,确定所述加速推流码率。
在另一种可能的实施方式中,所述第一确定模块用于:
根据如下公式一,确定所述目标视频的加速推流时长Tfast
其中,所述Tbuff为所述预设视频缓冲时长,所述bavg为所述平均推流码率,所述bfast为所述加速推流码率。
在另一种可能的实施方式中,所述推流模块具体用于:
根据所述起始推流时刻、所述起始推流时刻与所述当前时刻之间推送的第一视频量、及所述加速推流码率,确定第一推流滞后时长;
若所述第一推流滞后时长小于第一阈值,则在预设时长内暂停推流,所述第一阈值小于或等于零;
若所述第一推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值,则向客户端推送所述当前时刻对应的视频包;
若所述第一推流滞后时长大于第二阈值,则将所述起始推流时刻更新为所述当前时刻,并向客户端推送所述当前时刻对应的视频包。
在另一种可能的实施方式中,所述推流模块具体用于:
根据所述起始推流时刻、所述起始推流时刻与所述当前时刻之间推送的第一视频量、及所述平均推流码率,确定第二推流滞后时长;
若所述第二推流滞后时长小于第一阈值,则在预设时长内暂停推流,所述第一阈值小于或等于零;
若所述第二推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值,则向客户端推送所述当前时刻对应的视频包;
若所述第二推流滞后时长大于第二阈值,则将所述起始推流时刻更新为所述当前时刻,并向客户端推送所述当前时刻对应的视频包。
在另一种可能的实施方式中,所述推流模块具体用于:
根据如下公式二确定所述第一推流滞后时长Tdelay1
其中,所述Tnow为所述当前时刻,所述Tbegin为所述起始推流时刻,所述n为所述第一视频量,所述bfast为所述加速推流码率。
在另一种可能的实施方式中,所述推流模块具体用于:
根据如下公式三确定所述第二推流滞后时长Tdelay2
其中,所述Tnow为所述当前时刻,所述Tbegin为所述起始推流时刻,所述n为所述第一视频量,所述bavg为所述平均推流码率。
本发明实施例提供的视频缓冲控制方法及装置,由视频服务器对视频缓冲进行控制,无需客户端具备视频缓冲控制的功能,进而降低了对客户端的要求。进一步的,当客户端的视频缓冲区中未缓存到预设数量的视频数据时,则视频服务器以大于平均推流码率的加速推流码率向客户端推流,以使客户端的视频缓冲区可以积累足量的视频数据;当客户端的视频缓冲区中首次缓存到预设数量的视频之后,则视频服务器以平均推流码率向客户端推流,以保证客户端的视频缓冲区中的视频数据可以维持在预设数量,在上述过程中,视频服务器均以稳定的码率向客户端推流,避免视频服务器向客户端推流的码率出现大的波动,进而提高视频服务器推流的稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的视频缓冲控制方法的应用场景示意图;
图2为本发明实施例提供的视频缓冲控制方法的流程示意图一;
图3为本发明实施例提供的视频缓冲控制方法的流程示意图二;
图4为本发明实施例提供的视频缓冲控制装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的视频缓冲控制方法的应用场景示意图。请参见图1,包括客户端101和视频服务器102。其中,客户端101通常为缓存较为小的电视等终端设备。客户端101中设置有视频缓冲区,在客户端101向视频服务器102发送视频请求之后,视频服务器102则持续向客户端101推流,其中,视频服务器102向客户端101发送的视频包首先被缓存在视频缓冲区,客户端101在进行视频播放时,从视频缓冲区获取缓冲的视频,并进行视频播放。
在本申请中,为了保证客户端101能够流畅的播放视频,且视频缓冲区中不会缓存过多的视频数据,在视频服务器102接收到客户端101发送的视频请求之后,视频服务器102先根据客户端101请求的视频的播放时长及总大小,确定平均推流码率,在视频服务器102开始推流的一段时长内,先以略大于平均推流码率的速度向客户端101推流,使得视频服务器102向客户端101发送视频的速度略大于客户端101进行视频播放的速度,客户端101可以将未及时播放的视频数据缓存在视频缓冲区,在视频服务器102确定客户端101的视频缓冲区中缓存的视频量达到预设值之后,视频服务器102则以平均推流码率向客户端101推流,以使客户端101的视频缓冲区中缓存的视频量维持在预设值。在本申请中,由视频服务器102对视频缓冲进行控制,无需客户端101具备视频缓冲控制的功能,降低了对客户端101的要求。进一步的,视频服务器102在保证客户端101的视频缓冲区中的视频量在预设值的前提下,可以以稳定的速度向客户端推流,进而提高视频服务器102推流的稳定性。
下面,通过具体实施例对本申请所示的技术方案进行详细说明。需要说明的是,下面几个具体实施例可以相互结合,对于相同或相似的内容在不同的实施例中不再进行赘述。
图2为本发明实施例提供的视频缓冲控制方法的流程示意图一。请参见图2,该方法可以包括:
S201、获取目标视频的平均推流码率、目标视频的加速推流码率、及预设视频缓冲时长。
在本发明实施例中,在视频服务器向客户端推送目标视频的过程中,视频推流装置以视频包为单位进行推流,例如,当目标视频为TS格式时,视频包的大小为1316字节。
平均推流码率与目标视频的播放速率一致,可选的,可以通过如下可行的实现方式确定目标视频的平均推流码率:获取目标视频的文件大小和目标视频的播放时长,并根据目标视频的文件大小和目标视频的播放时长,确定目标视频的平均推流码率,可以将目标视频的文件大小与视频播放时长的比值确定为平均推流码率。需要说明的是,由于目标视频的平均推流码率为固定值,因此,视频服务器可以只计算一次平均推流码率,并缓存该平均推流码率,当视频服务器需要使用该平均推流码率时,直接在缓存中获取即可。
目标视频的加速推流码率大于目标视频的平均推流码率,可选的,可以通过如下可行的实现方式确定目标视频的加速推流码率:获取预设加速推流增量,根据平均推流码率和加速推流增量,确定加速推流码率。需要说明的是,由于目标视频的加速推流码率为固定值,因此,视频服务器可以只计算一次加速推流码率,并缓存该加速推流码率,当视频服务器需要使用加速推流码率时,直接在缓存中获取即可。
可选的,加速推流增量可以为预设百分比,相应的,加速推流码率bfast=bavg×(1+a),其中,bavg为平均推流码率,a为预设百分比。例如,a可以为2%、3%等,在实际应用过程中,可以根据实际需要设置该预设百分比。
可选的,加速推流增量可以为预设增量推流码率,相应的,加速推流码率可以为平均推流码率和预设增量推流码率之和。在实际应用过程中,可以根据实际需要设置该预设增量推流码率。
预设视频缓冲时长为视频服务器预先设置的一个时长,该预设视频缓冲时长是指理想情况下、客户端的视频缓冲区中缓存的视频可以播放的时长。例如,假设预设视频缓冲时长为N秒,客户端当前正在播放第N1秒的视频,则理想情况下,客户端的视频缓冲区中应该缓存到了第N+N1秒的视频。例如,该预设视频缓冲时长可以为5秒等,在实际应用过程中,可以根据实际需要设置该预设视频缓冲时长
S202、根据平均推流码率、加速推流码率、及预设视频缓冲时长,确定目标视频的加速推流时长。
可选的,可以根据如下公式一,确定目标视频的加速推流时长Tfast
其中,Tbuff为预设视频缓冲时长,bavg为平均推流码率,bfast为加速推流码率。
S203、根据目标视频的起始推流时刻和当前时刻,确定目标视频的当前推流时长。
在初始时,目标视频的起始推流时刻为视频服务器首次向客户端发送视频包的时刻,例如,假设视频服务器在3点向客户端发送目标视频的第一个视频包,则目标视频的起始推流时刻为3点。在实际应用过程中,当视频服务器的推流滞后时长过大时,目标视频的起始推流时刻可能会更新,起始推流时刻的更新具体在图3实施例中进行详细说明。可选的,视频服务器可以在预设文件中存储目标视频的起始推流时刻,并根据推流的实际情况对起始推流时刻进行更新维护,这样,当视频服务器需要获取起始推流时刻时,直接在预设文件中获取即可,进而提高获取目标视频的起始推流时刻的效率。
可选的,当前推流时长为当前时刻与起始推流时刻之差。
S204、在目标视频的当前推流时长首次大于或等于加速推流时长之前,根据加速推流码率,向客户端推送视频。
从视频服务器向客户端发送目标视频的第一个数据包起,若目标视频的当前推流时长一直小于加速推流时长,则说明客户端的视频缓冲区中当前缓存的视频的可播放时长小于加速推流时长,为了保证在客户端的视频缓冲区缓存足够的视频,则视频服务器以加速推流码率向客户端推送视频。
当视频服务器以加速推流码率向客户端推送视频时,视频服务器向客户端发送视频的速度大于客户端进行视频播放的速度,以使客户端可以在视频缓冲区中缓存客户端无法及时播放的视频。
S205、在目标视频的当前推流时长首次大于或等于加速推流时长之后,根据平均推流码率,向客户端推送视频。
从视频服务器向客户端发送目标视频的第一个数据包起,在目标视频的当前推流时长首次大于或等于加速推流时长时,则说明客户端的视频缓冲区中当前缓存的视频的可播放时长大于或等于加速推流时长,为了避免在客户端缓冲过量的视频,则视频服务器以平均推流码率向客户端推送视频。
本发明实施例提供的视频缓冲控制方法,由视频服务器对视频缓冲进行控制,无需客户端具备视频缓冲控制的功能,进而降低了对客户端的要求。进一步的,当客户端的视频缓冲区中未缓存到预设数量的视频数据时,则视频服务器以大于平均推流码率的加速推流码率向客户端推流,以使客户端的视频缓冲区可以积累足量的视频数据;当客户端的视频缓冲区中首次缓存到预设数量的视频之后,则视频服务器以平均推流码率向客户端推流,以保证客户端的视频缓冲区中的视频数据可以维持在预设数量,在上述过程中,视频服务器均以稳定的码率向客户端推流,避免视频服务器向客户端推流的码率出现大的波动,进而提高视频服务器推流的稳定性。
在图2所示实施例的基础上,可选的,在视频服务器向客户端推送视频的过程中,为了进一步提高推流的稳定性,视频服务器可以根据如下可行的实现方式向客户端推流,具体的,请参见图3所示的实施例。
图3为本发明实施例提供的视频缓冲控制方法的流程示意图二。请参见图3,该方法可以包括:
S301、获取目标视频的平均推流码率、目标视频的加速推流码率、及预设视频缓冲时长。
S301与S201的执行过程相同,此处不再进行赘述。
S302、根据平均推流码率、加速推流码率、及预设视频缓冲时长,确定目标视频的加速推流时长。
S302与S202的执行过程相同,此处不再进行赘述。
S303、根据目标视频的起始推流时刻和当前时刻,确定目标视频的当前推流时长。
S303与S203的执行过程相同,此处不再进行赘述。
S304、判断当前推流时长是否大于或等于加速推流时长。
若否,则执行S305-S310。
若是,则执行S311-S318。
S305、根据起始推流时刻、起始推流时刻与当前时刻之间推送的第一视频量、及加速推流码率,确定第一推流滞后时长。
第一视频量是指起始推流时刻与当前时刻之间视频服务器向客户端发送的视频量。可选的,视频服务器可以记录在起始推流时刻向客户端发送的视频包在视频文件的位置P1、及视频服务器最近一次向客户端发送的视频包在视频文件的位置P2,并根据位置P1和P2,确定第一视频量的大小。
可选的,可以根据如下公式二确定第一推流滞后时长Tdelay1
其中,Tnow为当前时刻,Tbegin为起始推流时刻,n为第一视频量,bfast为所述加速推流码率。
需要说明的是,在上述公式二中,若第一视频量n的单位和加速推流码率bfast的单位不一致时,需要先统一第一视频量n的加速推流码率bfast的单位。例如,若第一视频量n的单位为字节,加速推流码率bfast的单位为bit/s,则需要先将第一视频量n的单位换成比特。
若第一推流滞后时长等于零,则说明在起始推流时刻与当前时刻之间,视频服务器向客户端推流的速度等于加速推流码率。
若第一推流滞后时长大于零,则说明在起始推流时刻与当前时刻之间,视频服务器向客户端推流的码率小于加速推流码率。
若第一推流滞后时长小于零,则说明在起始推流时刻与当前时刻之间,视频服务器向客户端推流的码率大于加速推流码率。
S306、判断第一推流滞后时长是否小于第一阈值。
若是,则执行S307。若否,则执行S308。
其中,第一阈值小于或等于零,可选的,第一阈值可以与S307中的暂停推流的预设时长相关,若预设时长为t,则第一阈值可以为-t。
S307、在预设时长内暂停推流。
在本发明实施例中,预设时长通常较小,可选的,预设时长可以大于0且小于10毫秒,例如,预设时长可以为4毫秒。需要说明的是,在实际应用过程中,可以根据实际需要设置该预设时长,本发明实施例对此不作具体限定。
在第一推流滞后时长小于第一阈值时,说明在起始推流时刻与当前时刻之间,视频服务器向客户端推流的码率过快,为了保证向客户端进行稳定的推流,则视频服务器在预设时长内暂停推流。
在S307之后,执行S303。
S308、判断第一推流滞后时长是否大于第二阈值。
第二阈值为需要修正起始推流时刻的最大门限值,可选的,第二阈值可以大于30毫秒且小于2秒。当然,在实际应用过程中,可以根据实际需要设置该第二阈值,本发明实施例对此不做具体限定。
若是,则执行S309。若否,则执行S310。
S309、将起始推流时刻更新为当前时刻,并向客户端推送当前时刻对应的视频包。
在第一推流滞后时长大于第二阈值时,说明在起始推流时刻与当前时刻之间,视频服务器向客户端推流的码率过慢,且该慢的程度超出了用户可接收的范围,无法通过码率补偿将推流恢复正常。为了避免视频服务器连续向客户端发送视频包而出现抖动(视频服务器在短时段内的码率突然过高),则视频服务器将起始推流时刻更新为当前时刻,这样,视频服务器可以从当前时刻起,重新对推流码率进行监控,避免了视频服务器出现过大抖动。
在S309之后,执行S303。
S310、向客户端推送当前时刻对应的视频包。
在S310之后,执行S303。
在第一推流滞后时长大于或等于第一阈值且小于或等于第二阈值时,说明在起始推流时刻与当前时刻之间,视频服务器向客户端推流的码率偏慢,但是偏慢的程度在用户可接受范围内,可以通过码率补偿将推流恢复正常。为了进行码率补偿,则视频服务器立刻在目标视频中确定当前时刻对应的视频包,并向客户端发送当前时刻对应的视频包。
可选的,视频服务器可以在目标视频中确定未推送视频,并将未推送视频中、播放时刻最早的预设大小的视频确定为当前时刻对应的视频包。可选的,当目标视频的格式为TS视频时,预设大小可以为1316字节。需要说明的是,若未推送视频的大小小于预设大小,则将为推送视频对应的视频包确定为当前时刻对应的视频包。
S311、根据起始推流时刻、起始推流时刻与当前时刻之间推送的第一视频量、及平均推流码率,确定第二推流滞后时长。
可选的,可以根据如下公式三确定第二推流滞后时长Tdelay2
其中,Tnow为当前时刻,Tbegin为起始推流时刻,n为第一视频量,bavg为平均推流码率。
S312、判断第二推流滞后时长是否小于第一阈值,第一阈值小于或等于零。
若是,则执行S313。若否,则执行S314。
需要说明的是,S312中的第一阈值与S306中的第一阈值类似,此处不再进行赘述。
S313、在预设时长内暂停推流。
需要说明的是,S313中的预设时长与S307中的预设时长类似,此处不再进行赘述。
在S313之后,执行S317。
S314、判断第二推流滞后时长是否大于第二阈值。
第二阈值为需要修正起始推流时刻的最大门限值,可选的,第二阈值可以大于30毫秒且小于2秒。当然,在实际应用过程中,可以根据实际需要设置该第二阈值,本发明实施例对此不做具体限定。
若是,则执行S315。若否,则执行S316。
S315、将起始推流时刻更新为当前时刻,并向客户端推送当前时刻对应的视频包。
在S315之后,执行S317。
S316、向客户端推送当前时刻对应的视频包。
S316的执行过程可以参考S310,此处不再进行赘述。
S317、判断目标视频是否推送完成。
若是,则执行S318。
若否,则执行S311。
S318、结束。
图4为本发明实施例提供的视频缓冲控制装置的结构示意图。该视频缓冲控制装置可以设置在视频服务器中。请参见图4,该装置可以包括获取模块11、第一确定模块12、第二确定模块13和推流模块14,其中,
所述获取模块11用于,获取目标视频的平均推流码率、所述目标视频的加速推流码率、及预设视频缓冲时长,所述加速推流码率大于所述平均推流码率;
所述第一确定模块12用于,根据所述平均推流码率、所述加速推流码率、及所述预设视频缓冲时长,确定所述目标视频的加速推流时长;
所述第二确定模块13用于,根据所述目标视频的起始推流时刻和当前时刻,确定所述目标视频的当前推流时长;
所述推流模块14用于,在所述目标视频的当前推流时长首次大于或等于所述加速推流时长之前,根据所述加速推流码率,向客户端推送视频;
所述推流模块14还用于,在所述目标视频的当前推流时长首次大于或等于所述加速推流时长之后,根据所述平均推流码率,向客户端推送视频。
本发明实施例提供的视频缓冲控制装置可以执行上述方法实施例所示技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述获取模块11具体用于:
获取所述目标视频的文件大小和所述目标视频的播放时长;
根据所述目标视频的文件大小和所述目标视频的播放时长,确定所述目标视频的平均推流码率。
在另一种可能的实施方式中,所述获取模块11具体用于:获取预设加速推流增量;
根据所述平均推流码率和所述加速推流增量,确定所述加速推流码率。
在另一种可能的实施方式中,所述第一确定模块12用于:
根据如下公式一,确定所述目标视频的加速推流时长Tfast
其中,所述Tbuff为所述预设视频缓冲时长,所述bavg为所述平均推流码率,所述bfast为所述加速推流码率。
在另一种可能的实施方式中,所述推流模块14具体用于:
根据所述起始推流时刻、所述起始推流时刻与所述当前时刻之间推送的第一视频量、及所述加速推流码率,确定第一推流滞后时长;
若所述第一推流滞后时长小于第一阈值,则在预设时长内暂停推流,所述第一阈值小于或等于零;
若所述第一推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值,则向客户端推送所述当前时刻对应的视频包;
若所述第一推流滞后时长大于第二阈值,则将所述起始推流时刻更新为所述当前时刻,并向客户端推送所述当前时刻对应的视频包。
在另一种可能的实施方式中,所述推流模块14具体用于:
根据所述起始推流时刻、所述起始推流时刻与所述当前时刻之间推送的第一视频量、及所述平均推流码率,确定第二推流滞后时长;
若所述第二推流滞后时长小于第一阈值,则在预设时长内暂停推流,所述第一阈值小于或等于零;
若所述第二推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值,则向客户端推送所述当前时刻对应的视频包;
若所述第二推流滞后时长大于第二阈值,则将所述起始推流时刻更新为所述当前时刻,并向客户端推送所述当前时刻对应的视频包。
在另一种可能的实施方式中,所述推流模块14具体用于:
根据如下公式二确定所述第一推流滞后时长Tdelay1
其中,所述Tnow为所述当前时刻,所述Tbegin为所述起始推流时刻,所述n为所述第一视频量,所述bfast为所述加速推流码率。
在另一种可能的实施方式中,所述推流模块14具体用于:
根据如下公式三确定所述第二推流滞后时长Tdelay2
其中,所述Tnow为所述当前时刻,所述Tbegin为所述起始推流时刻,所述n为所述第一视频量,所述bavg为所述平均推流码率。
本发明实施例提供的视频缓冲控制装置可以执行上述方法实施例所示技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例方案的范围。

Claims (8)

1.一种视频缓冲控制方法,其特征在于,应用于视频服务器,所述方法包括:
获取目标视频的平均推流码率、所述目标视频的加速推流码率、及预设视频缓冲时长,所述加速推流码率大于所述平均推流码率;
根据公式确定所述目标视频的加速推流时长Tfast,其中,所述Tbuff为所述预设视频缓冲时长,所述bavg为所述平均推流码率,所述bfast为所述加速推流码率;
根据所述目标视频的起始推流时刻和当前时刻,确定所述目标视频的当前推流时长;
在所述目标视频的当前推流时长首次大于或等于所述加速推流时长之前,根据所述加速推流码率,向客户端推送视频;
在所述目标视频的当前推流时长首次大于或等于所述加速推流时长之后,根据所述平均推流码率,向客户端推送视频。
2.根据权利要求1所述的方法,其特征在于,获取所述目标视频的平均推流码率,包括:
获取所述目标视频的文件大小和所述目标视频的播放时长;
根据所述目标视频的文件大小和所述目标视频的播放时长,确定所述目标视频的平均推流码率。
3.根据权利要求1所述的方法,其特征在于,获取所述目标视频的加速推流码率,包括:
获取预设加速推流增量;
根据所述平均推流码率和所述加速推流增量,确定所述加速推流码率。
4.根据权利要求1-3任一项所述的方法,其特征在于,根据所述加速推流码率,向客户端推送视频,包括:
根据公式确定第一推流滞后时长Tdelay1,其中,所述Tnow为所述当前时刻,所述Tbegin为所述起始推流时刻,所述n为所述起始推流时刻与所述当前时刻之间推送的第一视频量,所述bfast为所述加速推流码率;
若所述第一推流滞后时长小于第一阈值,则在预设时长内暂停推流,所述第一阈值小于或等于零;
若所述第一推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值,则向客户端推送所述当前时刻对应的视频包;
若所述第一推流滞后时长大于第二阈值,则将所述起始推流时刻更新为所述当前时刻,并向客户端推送所述当前时刻对应的视频包。
5.根据权利要求1-3任一项所述的方法,其特征在于,根据所述平均推流码率,向客户端推送视频,包括:
根据公式确定第二推流滞后时长Tdelay2,其中,所述Tnow为所述当前时刻,所述Tbegin为所述起始推流时刻,所述n为所述起始推流时刻与所述当前时刻之间推送的第一视频量,所述bavg为所述平均推流码率;
若所述第二推流滞后时长小于第一阈值,则在预设时长内暂停推流,所述第一阈值小于或等于零;
若所述第二推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值,则向客户端推送所述当前时刻对应的视频包;
若所述第二推流滞后时长大于第二阈值,则将所述起始推流时刻更新为所述当前时刻,并向客户端推送所述当前时刻对应的视频包。
6.一种视频缓冲控制装置,其特征在于,应用于视频服务器,所述装置包括获取模块、第一确定模块、第二确定模块和推流模块,其中,
所述获取模块用于,获取目标视频的平均推流码率、所述目标视频的加速推流码率、及预设视频缓冲时长,所述加速推流码率大于所述平均推流码率;
所述第一确定模块用于,根据公式确定所述目标视频的加速推流时长Tfast,其中,所述Tbuff为所述预设视频缓冲时长,所述bavg为所述平均推流码率,所述bfast为所述加速推流码率;
所述第二确定模块用于,根据所述目标视频的起始推流时刻和当前时刻,确定所述目标视频的当前推流时长;
所述推流模块用于,在所述目标视频的当前推流时长首次大于或等于所述加速推流时长之前,根据所述加速推流码率,向客户端推送视频;
所述推流模块还用于,在所述目标视频的当前推流时长首次大于或等于所述加速推流时长之后,根据所述平均推流码率,向客户端推送视频。
7.根据权利要求6所述的装置,其特征在于,所述获取模块具体用于:
获取所述目标视频的文件大小和所述目标视频的播放时长;
根据所述目标视频的文件大小和所述目标视频的播放时长,确定所述目标视频的平均推流码率。
8.根据权利要求6所述的装置,其特征在于,所述获取模块具体用于:获取预设加速推流增量;
根据所述平均推流码率和所述加速推流增量,确定所述加速推流码率。
CN201710093459.4A 2017-02-21 2017-02-21 视频缓冲控制方法及装置 Active CN106851337B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710093459.4A CN106851337B (zh) 2017-02-21 2017-02-21 视频缓冲控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710093459.4A CN106851337B (zh) 2017-02-21 2017-02-21 视频缓冲控制方法及装置

Publications (2)

Publication Number Publication Date
CN106851337A CN106851337A (zh) 2017-06-13
CN106851337B true CN106851337B (zh) 2019-12-24

Family

ID=59134816

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710093459.4A Active CN106851337B (zh) 2017-02-21 2017-02-21 视频缓冲控制方法及装置

Country Status (1)

Country Link
CN (1) CN106851337B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109495768A (zh) * 2017-09-11 2019-03-19 优酷网络技术(北京)有限公司 一种视频内容下发方法、服务器及限速器
CN109600437B (zh) * 2018-12-11 2021-11-16 网宿科技股份有限公司 一种流媒体资源的下载方法及缓存服务器
CN110611829B (zh) * 2019-09-11 2022-01-21 北京达佳互联信息技术有限公司 视频预加载的方法、装置、电子设备及存储介质
CN116137676B (zh) * 2021-11-18 2023-10-20 荣耀终端有限公司 一种网络加速方法、电子设备、芯片系统及存储介质

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005322995A (ja) * 2004-05-06 2005-11-17 Nippon Telegr & Teleph Corp <Ntt> リアルタイム映像転送におけるバッファ制御方法、送信端末、受信端末、映像配信システム、およびプログラム
CN1960486A (zh) * 2006-09-28 2007-05-09 中兴通讯股份有限公司 一种多媒体数据的缓存控制方法
CN101662676A (zh) * 2009-09-30 2010-03-03 四川长虹电器股份有限公司 流媒体缓冲的处理方法
CN101702743A (zh) * 2009-11-04 2010-05-05 中兴通讯股份有限公司 移动终端浏览器的自适应调整方法与装置
CN102724502A (zh) * 2012-06-11 2012-10-10 华为技术有限公司 一种视频编码中码率的控制方法及装置
CN102932641A (zh) * 2012-11-13 2013-02-13 北京大学 一种恒定质量码率控制方法
CN103001961A (zh) * 2012-12-03 2013-03-27 华为技术有限公司 一种获取流媒体缓存参数的方法及装置
CN103561283A (zh) * 2013-10-30 2014-02-05 乐视致新电子科技(天津)有限公司 一种智能电视的码率切换方法及装置
CN103596036A (zh) * 2013-11-12 2014-02-19 浪潮齐鲁软件产业有限公司 一种流媒体播放器智能缓冲方法
CN103747287A (zh) * 2014-01-13 2014-04-23 合一网络技术(北京)有限公司 应用于flash的视频播放速度调整的方法及系统
CN104166567A (zh) * 2014-08-12 2014-11-26 广州金山网络科技有限公司 一种下载网络流数据的方法及装置
CN105872722A (zh) * 2015-12-18 2016-08-17 乐视致新电子科技(天津)有限公司 一种在线视频起播缓冲系统和方法
CN106231412A (zh) * 2016-07-27 2016-12-14 宇龙计算机通信科技(深圳)有限公司 视频缓冲智能控制方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI507022B (zh) * 2012-12-05 2015-11-01 Ind Tech Res Inst 多媒體串流的緩存輸出方法以及多媒體串流緩存模組

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005322995A (ja) * 2004-05-06 2005-11-17 Nippon Telegr & Teleph Corp <Ntt> リアルタイム映像転送におけるバッファ制御方法、送信端末、受信端末、映像配信システム、およびプログラム
CN1960486A (zh) * 2006-09-28 2007-05-09 中兴通讯股份有限公司 一种多媒体数据的缓存控制方法
CN101662676A (zh) * 2009-09-30 2010-03-03 四川长虹电器股份有限公司 流媒体缓冲的处理方法
CN101702743A (zh) * 2009-11-04 2010-05-05 中兴通讯股份有限公司 移动终端浏览器的自适应调整方法与装置
CN102724502A (zh) * 2012-06-11 2012-10-10 华为技术有限公司 一种视频编码中码率的控制方法及装置
CN102932641A (zh) * 2012-11-13 2013-02-13 北京大学 一种恒定质量码率控制方法
CN103001961A (zh) * 2012-12-03 2013-03-27 华为技术有限公司 一种获取流媒体缓存参数的方法及装置
CN103561283A (zh) * 2013-10-30 2014-02-05 乐视致新电子科技(天津)有限公司 一种智能电视的码率切换方法及装置
CN103596036A (zh) * 2013-11-12 2014-02-19 浪潮齐鲁软件产业有限公司 一种流媒体播放器智能缓冲方法
CN103747287A (zh) * 2014-01-13 2014-04-23 合一网络技术(北京)有限公司 应用于flash的视频播放速度调整的方法及系统
CN104166567A (zh) * 2014-08-12 2014-11-26 广州金山网络科技有限公司 一种下载网络流数据的方法及装置
CN105872722A (zh) * 2015-12-18 2016-08-17 乐视致新电子科技(天津)有限公司 一种在线视频起播缓冲系统和方法
CN106231412A (zh) * 2016-07-27 2016-12-14 宇龙计算机通信科技(深圳)有限公司 视频缓冲智能控制方法及系统

Also Published As

Publication number Publication date
CN106851337A (zh) 2017-06-13

Similar Documents

Publication Publication Date Title
CN111135569B (zh) 云游戏处理方法、装置、存储介质与电子设备
CN106851337B (zh) 视频缓冲控制方法及装置
US9781183B2 (en) Accelerated playback of streaming media
EP3520420B1 (en) Viewer importance adaptive bit rate delivery
US6665751B1 (en) Streaming media player varying a play speed from an original to a maximum allowable slowdown proportionally in accordance with a buffer state
US9021537B2 (en) Pre-buffering audio streams
Wei et al. Low latency live video streaming over HTTP 2.0
KR102472155B1 (ko) 피어 투 피어(Peer to peer, P2P) 네트워크에서 스트리밍 콘텐츠를 방송하는 방법
EP2095205B1 (en) Hybrid buffer management
US10091269B2 (en) Buffering in HTTP streaming client
CN106686438B (zh) 一种跨设备的音频图像同步播放的方法、装置及系统
CN107566918B (zh) 一种视频分发场景下的低延时取流秒开方法
US9621613B1 (en) Bitrate adaptation transitioning using key frames
CN112929741B (zh) 一种视频帧渲染方法、装置、电子设备和存储介质
US9420022B2 (en) Media requests to counter latency and minimize network bursts
WO2017096935A1 (zh) 一种快速频道切换方法、服务器及iptv系统
CN113225598A (zh) 移动端音视频同步的方法、装置、设备及存储介质
CN108881931B (zh) 一种数据缓冲方法及网络设备
CN110022498B (zh) 一种实现码率切换的方法及装置
US20240137593A1 (en) Reduction of startup time in remote hls
CN107690093B (zh) 一种视频播放方法及装置
KR20050097738A (ko) 비디오 스트림을 재생하는 클라이언트 및 재생 방법
KR101795537B1 (ko) 네트워크 환경 적응형 클라우드 스트리밍 서비스 제공시스템 및 그 방법
US20190387271A1 (en) Image processing apparatus, image processing method, and program
US10313759B1 (en) Enabling playback and request of partial media fragments

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