CN114040245B - 视频播放方法、装置、计算机存储介质和电子设备 - Google Patents

视频播放方法、装置、计算机存储介质和电子设备 Download PDF

Info

Publication number
CN114040245B
CN114040245B CN202111298758.4A CN202111298758A CN114040245B CN 114040245 B CN114040245 B CN 114040245B CN 202111298758 A CN202111298758 A CN 202111298758A CN 114040245 B CN114040245 B CN 114040245B
Authority
CN
China
Prior art keywords
video
current
decision threshold
subfiles
time
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
CN202111298758.4A
Other languages
English (en)
Other versions
CN114040245A (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.)
Guangzhou Boguan Information Technology Co Ltd
Original Assignee
Guangzhou Boguan Information 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 Guangzhou Boguan Information Technology Co Ltd filed Critical Guangzhou Boguan Information Technology Co Ltd
Priority to CN202111298758.4A priority Critical patent/CN114040245B/zh
Publication of CN114040245A publication Critical patent/CN114040245A/zh
Application granted granted Critical
Publication of CN114040245B publication Critical patent/CN114040245B/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/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
    • 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

Landscapes

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

Abstract

本公开涉及多媒体处理技术领域,涉及了一种视频播放方法及装置、存储介质和电子设备。该方法包括:获取视频的当前缓冲时间;根据当前缓冲时间与决策阈值确定目标缓冲策略,采用目标缓冲策略对当前周期中的视频子文件进行下载转码;根据当前网络性能参数和当前周期产生的下载解码数据更新所述决策阈值,采用更新决策阈值重新确定目标缓冲策略处理下一周期中的视频子文件。本公开基于视频的当前缓冲时间与决策阈值确定目标缓冲策略,对每个处理周期中的视频子文件进行下载转码,其中更新决策阈值,并采用更新决策阈值确定下一周期视频文件的目标缓冲策略,实时且灵活调整下载解码策略,降低系统资源消耗,确保视频播放流畅度。

Description

视频播放方法、装置、计算机存储介质和电子设备
技术领域
本公开涉及多媒体处理技术领域,更具体地,涉及一种视频播放方法、视频播放装置、计算机存储介质和电子设备。
背景技术
随着互联网技术的广泛应用,流媒体传输已成为当前网络传输中的重要组成之一。近年来随着直播、短视频等业务的兴起,各种视频应用程序或视频网站随之出现,也有越来越多的用户通过视频应用程序或视频网站观看视频。视频提供方提供视频服务观看之前,通常先对视频进行转码。
现有的视频文件处理方法无法在视频播放过程中对下载转码过程进行灵活调节,例如不能根据当前播放器的缓冲时间和网络性能参数等决策不同的下载和转码策略,因此现有的视频播放过程中容易存在视频播放流畅度低,系统资源消耗大等问题。
需要说明的是,在上述背景技术部分发明的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种视频播放方法及装置、计算机存储介质和电子设备,以提高视频播放的流畅度并降低系统资源消耗。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种视频播放方法,包括:获取视频的当前缓冲时间,所述视频包括多个视频子文件;根据所述当前缓冲时间与决策阈值确定目标缓冲策略,并采用所述目标缓冲策略对当前周期中的视频子文件进行下载转码;根据当前网络性能参数和所述当前周期产生的下载解码数据更新所述决策阈值,并采用更新决策阈值重新确定所述目标缓冲策略以处理下一周期中的视频子文件。
在本公开的一种示例性实施例中,所述根据所述当前缓冲时间与决策阈值确定目标缓冲策略,并采用所述目标缓冲策略对当前周期中的视频子文件进行下载转码,包括:将所述当前缓冲时间与决策阈值进行比较,若所述当前缓冲时间小于所述决策阈值,则采用第一目标缓冲策略对所述当前周期中的视频子文件进行下载转码,具体包括:获取缓冲策略阈值;基于所述缓冲策略阈值对当前周期中的视频子文件进行下载转码。
在本公开的一种示例性实施例中,所述基于所述缓冲策略阈值对当前周期中的视频子文件进行下载转码,包括:触发所述当前周期中视频子文件的下载进程;获取所述下载进程的下载数据量,其中每执行一次转码所述下载数据量重新计数;若所述下载数据量大于或等于所述缓冲策略阈值,则执行所述下载数据量对应部分的视频子文件的转码;继续所述下载进程,直至完成所述当前周期中视频子文件的下载转码。
在本公开的一种示例性实施例中,所述基于所述缓冲策略阈值对当前周期中的视频子文件进行下载转码,还包括:每执行一次转码后,将所述当前缓冲时间与所述决策阈值进行比对;若所述当前缓冲时间小于所述决策阈值,则采用第一目标缓冲策略对所述当前周期中剩余的视频子文件进行下载转码;若所述当前缓冲时间大于或等于所述决策阈值,则采用第二目标缓冲策略对所述当前周期中剩余的视频子文件进行下载转码。
在本公开的一种示例性实施例中,所述根据所述当前缓冲时间与决策阈值确定目标缓冲策略,并采用所述目标缓冲策略对当前周期中的视频子文件进行下载转码,包括:若所述当前缓冲时间大于所述决策阈值,采用第二目标缓冲策略对所述当前周期中的视频子文件进行下载转码,具体包括:触发所述当前周期中视频子文件的下载进程;在所述下载进程的下载数据量等于所述当前周期中视频子文件的数据量时,将所述下载数据量对应的视频子文件进行转码。
在本公开的一种示例性实施例中,所述方法还包括:在所述下载进程中,实时将所述当前缓冲时间与所述决策阈值进行比对;若存在所述当前缓冲时间小于所述决策阈值,则采用所述第一目标缓冲策略对所述当前周期中剩余的视频子文件进行处理;在处理过程中,每执行一次转码后,将所述当前缓冲时间与所述决策阈值进行比对,并根据比对结果再次确定目标缓冲策略。
在本公开的一种示例性实施例中,所述当前周期产生的下载转码数据包括所述当前周期中缓冲时间的稳定值;所述根据当前网络性能参数和所述当前周期产生的下载解码数据更新所述决策阈值,并采用更新决策阈值重新确定所述目标缓冲策略以处理下一周期中的视频子文件,包括:若所述缓冲时间稳定在所述稳定值超过预设时长,则判断所述稳定值是否大于稳定阈值;若大于,则根据所述当前网络性能参数更新所述决策阈值,并采用更新决策阈值重新确定所述目标缓冲策略以处理下一周期中的视频子文件。
在本公开的一种示例性实施例中,所述根据所述当前网络性能参数更新所述决策阈值,并采用更新决策阈值重新确定所述目标缓冲策略以处理下一周期中的视频子文件,包括:增加所述决策阈值,并将增加后的所述决策阈值与当前缓冲时间比较,并根据比较结果确定所述目标缓冲策略以处理下一周期的视频子文件。
在本公开的一种示例性实施例中,所述方法还包括:响应于用户触发的目标视频分辨率选择操作指令,根据所述目标视频分辨率和所述当前网络性能参数确定所述决策阈值。
在本公开的一种示例性实施例中,所述获取视频的当前缓冲时间,包括:获取所述视频的已缓冲时间和所述视频的已播放时间;求取所述已缓冲时间和所述已播放时间的差值作为所述当前缓冲时间。
在本公开的一种示例性实施例中,所述播放下载转码完成后的视频子文件包括:每个周期中的视频子文件下载转码完成后,添加至视频缓冲区进行视频播放。
在本公开的一种示例性实施例中,所述方法还包括:所述每个周期中的视频子文件的数量为多个。
根据本公开的一个方面,提供一种视频播放装置,所述视频播放装置包括:获取模块,用于获取视频的当前缓冲时间,所述视频包括多个视频子文件;视频处理模块,用于根据所述当前缓冲时间与决策阈值确定目标缓冲策略,并采用所述目标缓冲策略对当前周期中的视频子文件进行下载转码;数据更新处理模块,用于根据当前网络性能参数和所述当前周期产生的下载解码数据更新所述决策阈值,并采用更新决策阈值重新确定所述目标缓冲策略以处理下一周期中的视频子文件。
根据本公开的一个方面,提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的视频播放方法。
根据本公开的一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的视频播放方法。
本公开的示例性实施例中的视频播放方法,根据当前缓冲时间与决策阈值确定目标缓冲策略用于对当前周期中的视频子文件进行下载转码,并且根据当前网络性能参数和当前周期产生的下载解码数据更新决策阈值以用于确定下一周期中视频的目标缓冲策略。本公开针对每个周期中的视频子文件,通过当前缓冲时间与对应的决策阈值来确定对应的目标缓冲策略,使得在各个处理周期采用最恰当的目标缓冲策略来对视频子文件进行处理,从而提高视频播放处理和播放效率;且,结合前一周期产生的下载解码数据和当前网络性能参数更新决策阈值,并用于下一周期视频子文件的处理,能够结合视频文件的实际处理情况和当前的网络状况,调节后续的文件处理方式,实现视频处理的灵活可调,更具智能化,从而确保视流畅播放,前周期产生的下载解码数据反映了前周期下载转码的资源使用情况,将该下载解码数据用于更新决策阈值,一定程度上能够协调下载转码资源消耗。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1示出了根据本公开示例性实施例的视频播放方法的流程图;
图2示出了根据本公开示例性实施例的基于缓冲策略阈值对当前周期中的视频子文件进行下载转码的流程图;
图3示出了根据本公开示例性实施例的视频处理流程图;
图4示出了根据本公开示例性实施例的视频处理装置的结构示意图;
图5示出了根据本公开示例性实施例的存储介质的示意图;以及
图6示出了根据本公开示例性实施例的电子设备的框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
现在将参考附图更全面地描述示例性实施方式。然而,示例性实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施例使得本公开将更加全面和完整,并将示例性实施方式的构思全面地传达给本领域的技术人员。图中相同的附图标记表示相同或类似的结构,因而将省略它们的详细描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个软件硬化的模块中实现这些功能实体或功能实体的一部分,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
目前视频网站,如直播、短视频网站,采用的是流媒体传输协议,即将一段视频切分成无数个小段,而这些小段就是TS(Transport Stream,一种高清摄像机拍摄下进行的封装格式)格式的视频文件,顺序播放这些视频文件可完整展示多媒体资源(即播放视频)。例如,直播平台在不同的浏览器兼容播放m3u8(一种索引文件,内部记录的是一系列媒体TS文件路径)对应的媒体资源,一般基于video.js(一种播放器)或hls.js(一种播放器)库将m3u8中的TS文件下载,然后将TS文件中的数据进行转码得到MP4片段,最后将MP4片段添加至播放器的源缓冲区(Source Buffer)中,即可开始播放视频。
然而,当前对TS文件的处理方式有两种,一种是等待文件下载完成后再开始转码,但需要等待较长时间,影响视频首开时间;一种是边下载边转码,当请求数据量达到指定值时触发一次转码,即需要执行多次转码计算,这对系统资源带来极大消耗,如CPU(Centralprocessing unit,中央处理器)占用率,因此,无法真正确保视频播放的流畅度且带来系统资源消耗。
基于此,在本公开示例性实施例中,首先提供了一种视频播放方法,参考图1所示,该视频播放方法包括以下步骤:
步骤S110:获取视频的当前缓冲时间,该视频包括多个视频子文件;
步骤S120:根据当前缓冲时间与决策阈值确定目标缓冲策略,并采用目标缓冲策略对当前周期中的视频子文件进行下载转码;
步骤S130,根据当前网络性能参数和当前周期产生的下载解码数据更新决策阈值,并采用更新决策阈值重新确定目标缓冲策略以处理下一周期中的视频子文件。
根据本示例实施例中的视频播放方法,针对每个周期中的视频子文件,通过当前缓冲时间与对应的决策阈值来确定对应的目标缓冲策略,使得在各个处理周期采用最恰当的目标缓冲策略来对视频子文件进行处理,从而提高视频播放处理和播放效率;且,结合前一周期产生的下载解码数据和当前网络性能参数更新决策阈值,并用于下一周期视频子文件的处理,能够结合视频文件的实际处理情况和当前的网络状况,调节后续的文件处理方式,实现视频处理的灵活可调,更具智能化,从而确保视流畅播放,前周期产生的下载解码数据反映了前周期下载转码的资源使用情况,将该下载解码数据用于更新决策阈值,一定程度上能够协调下载转码资源消耗。
下面结合图1对本公开示例性实施例中的视频播放方法进行进一步的说明。
在步骤S110中,获取视频的当前缓冲时间,所述视频包括多个视频子文件。
在本公开的示例性实施例中,采用流媒体传输协议,将一个视频切分成多个视频子文件,每个视频子文件可以为一个视频TS文件,顺序播放转码后的视频TS文件即可播放整个视频;当前缓冲时间为视频已缓冲且未播放的缓冲时间,可以通过如下方式获得:首先,获取视频的已缓冲时间和视频的已播放时间;其次,求取已缓冲时间和已播放时间的差值作为当前缓冲时间。
在步骤S120中,根据当前缓冲时间与决策阈值确定目标缓冲策略,并采用目标缓冲策略对当前周期中的视频子文件进行下载转码。
在本公开的示例性实施例中,按照视频播放顺序,将多个视频子文件划分为多个周期依次进行处理。可选地,每个周期中的视频子文件为一个视频TS文件;可选地,每个周期中视频子文件的数量可以为多个,可以根据实际处理需要按照视频播放的顺序将多个视频TS文件作为一个处理周期来处理,本公开对此不做特殊限定。
进一步的,将当前缓冲时间与决策阈值进行比对,并根据比对结果确定目标缓冲策略。其中,决策阈值是用于决策目标缓冲策略的时间阈值,在对视频处理前,需先确定一个初始的决策阈值。可选地,初始的决策阈值可根据待处理视频的具体情况设置为默认值,例如15秒、20秒或25秒等;可选地,可以响应于用户触发的目标视频分辨率选择操作指令,根据目标视频分辨率和当前网络性能参数确定初始的决策阈值,当视频分辨率越高,需要的码率也越高,视频文件大,则可以根据当前网络性能参数(包括但不限于网络速度、带宽等)和视频分辨率,确定决策阈值。可选地,可以从预先设定的多个分辨率区间、网络性能参数区间与决策阈值的对应关系中,确定用户选择的目标视频分辨率和当前网络性能参数均对应的决策阈值。
在一些可能的实施方式中,将当前缓冲时间与决策阈值进行比较,若当前缓冲时间小于决策阈值,则采用第一目标缓冲策略对当前周期中的视频子文件进行下载转码。采用第一目标缓冲策略对当前周期中的视频子文件进行下载转码的过程具体包括:首先获取缓冲策略阈值;其次,基于缓冲策略阈值对当前周期中的视频子文件进行下载转码;其中缓冲策略阈值为触发转码的视频下载数据量值,例如3M(MByte,兆字节)、5M、7M,等等;下载数据量每达到一次缓冲策略阈值,则进行一次转码,并继续下载,待下一次的下载数据量达到缓冲策略阈值则继续进行下载,直至将整个当前周期中的视频子文件下载完成。
图2示出了根据本公开示例性实施方式的基于缓冲策略阈值对当前周期中的视频子文件进行下载转码的流程图,如图2所示,该过程具体包括如下步骤:
在步骤S210中,触发当前周期中视频子文件的下载进程;
在步骤S220中,获取下载进程的下载数据量,其中每执行一次转码该下载数据量重新计数;在本公开的示例性实施例中,在执行一次转码后,已下载的视频子文件保留,而该下载进程的下载数据量的数值进行重新计数,以便在下一次下载数据量达到缓冲策略阈值时再次触发转码。基于此,不会影响当前周期中视频子文件的下载进程,也可以在下载过程中,通过下载数据量重新计数的方式多次触发转码,实现边下载边转码,从而可以快速增加缓冲时间,提高视频的首开速度(对于播放视频来说,从加载视频资源到用户看到视频画面所等待的时间),防止视频出现卡顿,提高视频流畅度,增加用户观看视频的体验感。
在步骤S230中,若下载数据量大于或等于缓冲策略阈值,则执行下载数据量对应部分的视频子文件的转码;在本公开的示例性实施例中,在下载数据量大于或等于缓冲策略阈值时,将下载数据量对应部分的视频子文件进行转码,举例而言,若下载数据量达到缓冲策略阈值3M,则将3M下载数据量对应部分的视频子文件进行转码。
在步骤S240中,继续步骤S210至步骤S230,直至完成当前周期中视频子文件的下载转码。在本公开的示例性实施例中,通过上述步骤S210至S240,采用第一目标缓冲策略将当前周期中的视频子文件进行下载转码,完成后,继续开始下一周期中的视频子文件的下载转码过程。
在一些可能的实施方式中,在基于缓冲策略阈值对当前周期中的视频子文件进行下载转码时,每执行一次转码后,将当前缓冲时间与决策阈值进行比对,若当前缓冲时间小于决策阈值,则继续采用第一目标缓冲策略对当前周期中剩余的视频子文件进行下载转码;而随着网络性能的提高,在当前周期的视频子文件处理过程中,可能出现当前缓冲时间大于决策阈值的情况,若当前缓冲时间大于或等于决策阈值,则采用第二目标缓冲策略对当前周期中剩余的视频子文件进行下载转码。
在一些可能的实施方式中,若当前缓冲时间大于或等于决策阈值,则采用第二目标缓冲策略对当前周期中的视频子文件进行下载转码,具体包括:首先触发当前周期中视频子文件的下载进程;其次在下载进程的下载数据量等于当前周期中视频子文件的数据量时,将下载数据量对应的视频子文件进行转码。在本示例性实施方式中,在触发当前周期中视频子文件的下载进程后,将持续进行下载,直至下载数据量等于当前视频中视频子文件的数据量,则将下载数据量对应的视频子文件进行转码,也就是说,将当前周期中的视频子文件全部下载完成后才进行转码,基于此,能提高缓冲时间,减少转码计算消耗,从而降低因频繁转码带来的系统资源消耗,如CPU消耗。
需要说明的是,在采用第二目标缓冲策略对当前周期中剩余的视频子文件进行下载转码时,在下载进程的下载数据量等于当前周期中剩余的视频子文件的数数据量时,将下载数据量对应的剩余的视频子文件进行转码。基于此,通过在同一视频处理周期中,两种缓冲策略阈值的切换,既能保证视频播放的流畅度,也能减少转码计算次数,降低系统资源消耗。
在一些可能的实施方式中,若初始采用对当前周期的视频子文件采用第二目标缓冲策略进行处理,处理过程中,也可以实时将当前缓冲时间与决策阈值进行比对,若当前缓冲时间大于决策阈值,则继续采用第二目标缓冲策略对当前周期中剩余的视频子文件进行下载转码;而随着网络性能的降低,在当前周期的视频子文件处理过程中,可能出现当前缓冲时间小于决策阈值的情况,若当前缓冲时间小于决策阈值,则改换第一目标缓冲策略对当前周期中剩余的视频子文件进行下载转码,并在再次检测到当前缓冲时间大于决策阈值时,切换回第二目标缓冲策略对此时剩下的视频子文件进行下载转码处理,也就是说,在当前周期中视频子文件的处理过程中,虽然开始采用的是某一目标缓冲策略进行视频的处理,而在处理过程中,可能根据当前缓冲时间与决策阈值的比较结果,实时调整当前剩余的视频子文件的处理方式,从而可以随时动态切换处理视频子文件的策略,在确保用户视频播放流畅度的同时,减少转码的计算成本。
下面结合直播视频应用场景,对本公开的视频播放方法进行说明,如图3示出了根据本公开示例性实施例的视频处理流程图,该应用场景下,视频TS资源的加载采用fetch请求/响应(用于在脚本里面发出HTTP请求,通过数据流处理数据)方式,来请求视频数据并进行下载转码处理,具体过程包括:
在步骤S310中,获取(设定)决策阈值A;
在步骤S320中,设定第一目标缓冲策略对应的缓冲策略阈值B=3M,而第二目标缓冲策略是将当前周期中的视频子文件下载完成后才进行转码,则同样为第二目标缓冲策略设定对应的缓冲策略阈值C=20M且C大于当前周期中的视频子文件的文件大小(低于20M);
在步骤S330中,获取播放器的已缓冲时间D(当前缓冲的最大时间);
在步骤S340中,获取视频的已播放时间E;
在步骤S350中,根据播放器的已缓冲时间D和视频的已播放时间E获取后续可以播放的时间,即当前缓冲时间F=D-E;
在步骤S360中,若F<A,则设置fetch请求的参数G=B,并触发fetch请求视频TS资源;
在步骤S370中,在fetch请求的响应中,通常有一个done字段和value字段,若done==true,则响应结束,value为视频TS数据量;
若done==true,当前数据量总和H=cache+value,触发最后一次转码计算,清空cache;
若done==false,判断当前数据量总和H=cache+value是否大于G,是则触发一次转码计算,并清空cache;否则更新cache=cache+value,等待下一次接收响应,直至当前周期中的视频TS文件下载完毕;
其中,视频TS资源越大,响应返回的次数越多,即在done==true之前,会接收到多次done==false的返回;
在步骤S380中,若F>A,则设置fetch请求的参数G=C,并触发fetch请求视频TS资源,并按照步骤S370执行,由于设定C大于当前周期中的视频子文件的文件大小,因此会待整个视频子文件下载完毕,才触发转码计算,
在步骤S390中,将每个周期中的视频子文件下载转码完成后,添加至播放器的视频缓冲区,开始播放视频。
需要说明的是,在步骤S310至步骤S390过程中,仅说明了分别采用第一目标缓冲策略或第二目标缓冲策略处理视频的过程,在通过任一目标缓冲策略处理视频的过程中,还可以按照本公开上述示例性实施方式中的动态调整方式,进行策略切换,本示例性实施例对比不再赘述。
步骤S130,根据当前网络性能参数和所述当前周期产生的下载解码数据更新决策阈值,并采用更新决策阈值重新确定目标缓冲策略以处理下一周期中的视频子文件。
在本公开的示例性实施例中,当前周期产生的下载转码数据包括当前周期中缓冲时间的稳定值,该稳定值用于标识当前周期下载转码的稳定性。在获得当前周期中缓冲时间的稳定值后,可以根据当前网络性能参数和当前周期产生的稳定值更新决策阈值,并采用更新决策阈值重新确定目标缓冲策略以处理下一周期中的视频子文件的过程,具体包括:
若缓冲时间稳定在稳定值超过预设时长,则判断稳定值是否大于稳定阈值;稳定阈值是根据实际视频下载需求设定的时长阈值,若缓冲时间稳定在稳定值超过预设时长,表明在上一处理周期(当前周期)网路性能足以确保视频能够长时间处于稳定处理状态,则可以根据当前网络性能参数更新该决策阈值,并采用更新决策阈值重新确定目标缓冲策略以处理下一周期中的视频子文件。
在一些可能的实施方式中,将当前网络性能参数与上一处理周期(当前周期)的网络性能参数比对,若当前网络性能参数大于上一处理周期(当前周期)的网络性能参数,则增加决策阈值,并将增加后的决策阈值与当前缓冲时间比较,并根据比较结果确定目标缓冲策略以处理下一周期的视频子文件。可选地,可以根据当前网络性能参数与决策阈值的对应关系,确定决策阈值;可选地,可以根据当前网络性能参数超出上一处理周期(当前周期)的网络性能参数的情况,例如超过比率、超出值等与决策阈值的对应关系确定决策阈值。
基于此,能够根据当前网络性能参数更新决策阈值的方式,在网络状况较之前处理周期更好的情况下,提高决策阈值,增加下一处理周期的视频缓冲时间,减少转码计算。当然,在下一处理周期中,仍按照上述的当前周期的视频子文件的处理方式,动态调整目标缓冲策略,实现视频下载转码的动态可调,提高视频播放流畅度和降低资源消耗。
此外,在每个周期中的视频子文件下载转码完成后,将每个周期中的视频子文件添加至播放器的视频缓冲区进行视频播放,从而实现视频的下载、转码和播放。
本公开针对每个周期中的视频子文件,通过当前缓冲时间与对应的决策阈值来确定对应的目标缓冲策略,使得在各个处理周期采用最恰当的目标缓冲策略来对视频子文件进行处理,从而提高视频播放处理和播放效率;且,结合前一周期产生的下载解码数据和当前网络性能参数更新决策阈值,并用于下一周期视频子文件的处理,能够结合视频文件的实际处理情况和当前的网络状况,调节后续的文件处理方式,实现视频处理的灵活可调,更具智能化,从而确保视流畅播放,前周期产生的下载解码数据反映了前周期下载转码的资源使用情况,将该下载解码数据用于更新决策阈值,一定程度上能够协调下载转码资源消耗。
在本公开的示例性实施例中,还提供了一种视频播放装置。参考图4所示,该视频播放装置400可以包括获取模块410、视频处理模块420和数据更新处理模块430。具体地,
获取模块410,用于获取视频的当前缓冲时间,该视频包括多个视频子文件;
视频处理模块420,用于根据当前缓冲时间与决策阈值确定目标缓冲策略,并采用目标缓冲策略对当前周期中的视频子文件进行下载转码;
数据更新处理模块430,用于根据当前网络性能参数和所述当前周期产生的下载解码数据更新所述决策阈值,并采用更新决策阈值重新确定目标缓冲策略以处理下一周期中的视频子文件。
由于本公开的示例性实施例的视频播放装置的各个功能模块与上述视频播放方法的发明实施例中相同,因此在此不再赘述。
应当注意,尽管在上文详细描述中提及了视频播放装置的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,在本公开示例性实施方式中,还提供了一种能够实现上述方法的计算机存储介质。其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。
参考图5所示,描述了根据本公开的示例性实施方式的用于实现上述方法的程序产品500,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。
下面参照图6来描述根据本公开的这种实施例的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:上述至少一个处理单元610、上述至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630、显示单元640。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)621和/或高速缓冲存储单元622,还可以进一步包括只读存储单元(ROM)623。
存储单元620还可以包括具有一组(至少一个)程序模块625的程序/实用工具624,这样的程序模块625包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器660通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。

Claims (12)

1.一种视频播放方法,其特征在于,包括:
获取视频的当前缓冲时间,所述视频包括多个视频子文件;
将所述当前缓冲时间与决策阈值进行比较,若所述当前缓冲时间小于所述决策阈值,则采用第一目标缓冲策略对当前周期中的视频子文件进行下载转码,具体包括:获取缓冲策略阈值;触发所述当前周期中视频子文件的下载进程;获取所述下载进程的下载数据量,其中每执行一次转码所述下载数据量重新计数;若所述下载数据量大于或等于所述缓冲策略阈值,则执行所述下载数据量对应部分的视频子文件的转码,并继续所述下载进程,直至完成所述当前周期中视频子文件的下载转码;
若所述当前缓冲时间大于所述决策阈值,则采用第二目标缓冲策略对所述当前周期中的视频子文件进行下载转码,具体包括:触发所述当前周期中视频子文件的下载进程;若所述下载进程的下载数据量等于所述当前周期中视频子文件的数据量,将所述下载数据量对应的视频子文件进行转码;
其中,处理过程中每执行一次转码后,将所述当前缓冲时间与所述决策阈值进行比对,并根据比对结果再次确定目标缓冲策略;
根据当前网络性能参数和所述当前周期产生的下载解码数据更新所述决策阈值,并采用更新决策阈值重新确定所述目标缓冲策略以处理下一周期中的视频子文件;
播放下载转码完成后的视频子文件。
2.根据权利要求1所述的方法,其特征在于,所述处理过程中每执行一次转码后,将所述当前缓冲时间与所述决策阈值进行比对,并根据比对结果再次确定目标缓冲策略,包括:
在采用所述第一目标缓冲策略对所述当前周期中的视频子文件进行下载转码的过程中,每执行一次转码后,将所述当前缓冲时间与所述决策阈值进行比对;
若所述当前缓冲时间小于所述决策阈值,则采用所述第一目标缓冲策略对所述当前周期中剩余的视频子文件进行下载转码;
若所述当前缓冲时间大于或等于所述决策阈值,则采用所述第二目标缓冲策略对所述当前周期中剩余的视频子文件进行下载转码。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在采用所述第二目标缓冲策略对所述当前周期中的视频子文件进行下载转码的过程中,在所述下载进程中,实时将所述当前缓冲时间与所述决策阈值进行比对;
若存在所述当前缓冲时间小于所述决策阈值,则采用所述第一目标缓冲策略对所述当前周期中剩余的视频子文件进行处理。
4.根据权利要求1所述的方法,其特征在于,所述当前周期产生的下载转码数据包括所述当前周期中缓冲时间的稳定值;
所述根据当前网络性能参数和所述当前周期产生的下载解码数据更新所述决策阈值,并采用更新决策阈值重新确定所述目标缓冲策略以处理下一周期中的视频子文件,包括:
若所述缓冲时间稳定在所述稳定值超过预设时长,则判断所述稳定值是否大于稳定阈值;
若大于,则根据所述当前网络性能参数更新所述决策阈值,并采用更新决策阈值重新确定所述目标缓冲策略以处理下一周期中的视频子文件。
5.根据权利要求4所述的方法,其特征在于,所述根据所述当前网络性能参数更新所述决策阈值,并采用更新决策阈值重新确定所述目标缓冲策略以处理下一周期中的视频子文件,包括:
增加所述决策阈值,并将增加后的所述决策阈值与当前缓冲时间比较,并根据比较结果确定所述目标缓冲策略以处理下一周期的视频子文件。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于用户触发的目标视频分辨率选择操作指令,根据所述目标视频分辨率和所述当前网络性能参数确定所述决策阈值。
7.根据权利要求1~6任一项所述的方法,其特征在于,所述获取视频的当前缓冲时间,包括:
获取所述视频的已缓冲时间和所述视频的已播放时间;
求取所述已缓冲时间和所述已播放时间的差值作为所述当前缓冲时间。
8.根据权利要求7所述的方法,其特征在于,所述播放下载转码完成后的视频子文件,包括:
每个周期中的视频子文件下载转码完成后,添加至视频缓冲区进行视频播放。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述每个周期中的视频子文件的数量为多个。
10.一种视频播放装置,其特征在于,所述装置包括:
获取模块,用于获取视频的当前缓冲时间,所述视频包括多个视频子文件;
视频处理模块,用于将所述当前缓冲时间与决策阈值进行比较,若所述当前缓冲时间小于所述决策阈值,则采用第一目标缓冲策略对当前周期中的视频子文件进行下载转码,具体包括:获取缓冲策略阈值;触发所述当前周期中视频子文件的下载进程;获取所述下载进程的下载数据量,其中每执行一次转码所述下载数据量重新计数;若所述下载数据量大于或等于所述缓冲策略阈值,则执行所述下载数据量对应部分的视频子文件的转码,并继续所述下载进程,直至完成所述当前周期中视频子文件的下载转码;
所述视频处理模块还用于若所述当前缓冲时间大于所述决策阈值,则采用第二目标缓冲策略对所述当前周期中的视频子文件进行下载转码,具体包括:触发所述当前周期中视频子文件的下载进程;若所述下载数据量等于所述当前周期中视频子文件的数据量,将所述下载数据量对应的视频子文件进行转码;
其中,处理过程中每执行一次转码后,将所述当前缓冲时间与所述决策阈值进行比对,并根据比对结果再次确定目标缓冲策略;
数据更新处理模块,用于根据当前网络性能参数和所述当前周期产生的下载解码数据更新所述决策阈值,并采用更新决策阈值重新确定所述目标缓冲策略以处理下一周期中的视频子文件。
11.一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1至9中任一项所述的视频播放方法。
12.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至9中任一项所述的视频播放方法。
CN202111298758.4A 2021-11-04 2021-11-04 视频播放方法、装置、计算机存储介质和电子设备 Active CN114040245B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111298758.4A CN114040245B (zh) 2021-11-04 2021-11-04 视频播放方法、装置、计算机存储介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111298758.4A CN114040245B (zh) 2021-11-04 2021-11-04 视频播放方法、装置、计算机存储介质和电子设备

Publications (2)

Publication Number Publication Date
CN114040245A CN114040245A (zh) 2022-02-11
CN114040245B true CN114040245B (zh) 2023-12-29

Family

ID=80136406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111298758.4A Active CN114040245B (zh) 2021-11-04 2021-11-04 视频播放方法、装置、计算机存储介质和电子设备

Country Status (1)

Country Link
CN (1) CN114040245B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114584826B (zh) * 2022-03-08 2024-04-12 抖音视界有限公司 一种视频动态下载方法、装置、电子设备及存储介质
CN114979768A (zh) * 2022-05-23 2022-08-30 北京字节跳动网络技术有限公司 视频缓存方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106303581A (zh) * 2016-08-25 2017-01-04 乐视控股(北京)有限公司 一种视频文件下载处理方法、装置和服务器
CN110149534A (zh) * 2019-06-12 2019-08-20 深圳市大数据研究院 基于决策树的自适应视频流转码方法及装置
CN111225209A (zh) * 2018-11-23 2020-06-02 北京字节跳动网络技术有限公司 视频数据推流方法、装置、终端及存储介质
CN111629214A (zh) * 2020-06-05 2020-09-04 北京百度网讯科技有限公司 视频文件的转码方法、装置、设备和介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170163555A1 (en) * 2015-12-07 2017-06-08 Le Holdings (Beijing) Co., Ltd. Video file buffering method and system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106303581A (zh) * 2016-08-25 2017-01-04 乐视控股(北京)有限公司 一种视频文件下载处理方法、装置和服务器
CN111225209A (zh) * 2018-11-23 2020-06-02 北京字节跳动网络技术有限公司 视频数据推流方法、装置、终端及存储介质
CN110149534A (zh) * 2019-06-12 2019-08-20 深圳市大数据研究院 基于决策树的自适应视频流转码方法及装置
CN111629214A (zh) * 2020-06-05 2020-09-04 北京百度网讯科技有限公司 视频文件的转码方法、装置、设备和介质

Also Published As

Publication number Publication date
CN114040245A (zh) 2022-02-11

Similar Documents

Publication Publication Date Title
CN111135569B (zh) 云游戏处理方法、装置、存储介质与电子设备
US7949775B2 (en) Stream selection for enhanced media streaming
US9060207B2 (en) Adaptive video streaming over a content delivery network
CN114040245B (zh) 视频播放方法、装置、计算机存储介质和电子设备
CN108063769B (zh) 一种内容服务的实现方法、装置及内容分发网络节点
JP5859694B2 (ja) コンテンツのプレイアウトをサポートする方法及び装置
US20130124697A1 (en) Optimized client side rate control and indexed file layout for streaming media
CN110636339B (zh) 基于码率的调度方法、装置及电子设备
CN109587514B (zh) 一种视频播放方法、介质和相关装置
CN114584833B (zh) 音视频的处理方法、装置及存储介质
CN112672186B (zh) 视频预加载的方法和装置
CN110022498B (zh) 一种实现码率切换的方法及装置
CN110784750A (zh) 视频播放方法、装置及计算机设备
US9998513B2 (en) Selecting bitrate to stream encoded media based on tagging of important media segments
CN102918594A (zh) 用于自适应流播放器的高速缓存控制
US20150268808A1 (en) Method, Device and System for Multi-Speed Playing
US20160212054A1 (en) Multiple Protocol Media Streaming
US11743535B2 (en) Video fragment file processing
US20210320957A1 (en) Method of requesting video, computing device, and computer-program product
US20240155171A1 (en) Methods and systems for managing content quality in a storage medium
CN108737355B (zh) 基于用户带宽的流媒体播放
CN112437352B (zh) 视频合并播放方法和设备
EP4248660A1 (en) Stale variant handling for adaptive media player
US11546675B2 (en) Methods, systems, and media for streaming video content using adaptive buffers
CN112887755A (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
GR01 Patent grant
GR01 Patent grant