CN110267100B - Flv视频的码率切换方法、装置、电子设备及存储介质 - Google Patents

Flv视频的码率切换方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN110267100B
CN110267100B CN201910631959.8A CN201910631959A CN110267100B CN 110267100 B CN110267100 B CN 110267100B CN 201910631959 A CN201910631959 A CN 201910631959A CN 110267100 B CN110267100 B CN 110267100B
Authority
CN
China
Prior art keywords
code rate
current
target
video
switching
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
CN201910631959.8A
Other languages
English (en)
Other versions
CN110267100A (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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet 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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN201910631959.8A priority Critical patent/CN110267100B/zh
Publication of CN110267100A publication Critical patent/CN110267100A/zh
Application granted granted Critical
Publication of CN110267100B publication Critical patent/CN110267100B/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/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/440263Processing 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 altering the spatial resolution, e.g. for displaying on a connected PDA
    • 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/440281Processing 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 altering the temporal resolution, e.g. 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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

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

Abstract

本公开关于一种FLV视频的码率切换方法、装置、电子设备及存储介质,该方法包括:获取当前网络下载FLV视频的当前下载速度;根据当前下载速度,从预设的多个码率中,确定出目标码率;根据该目标码率和FLV视频的当前码率是否相同,判断是否需要进行码率切换;如果需要进行码率切换,则在下载完当前码率的当前GOP后,终止当前码率的FLV视频的下载,将当前码率切换为目标码率。可见,本公开的实施例提供的技术方案,在FLV视频播放的过程中,可以实现根据用户的网络环境自适应的对码率进行切换,从而保证了用户观看的连续性,有效避免了卡顿的出现。

Description

FLV视频的码率切换方法、装置、电子设备及存储介质
技术领域
本公开涉及视频播放技术领域,尤其涉及一种FLV视频的码率切换方法、装置、电子设备及存储介质。
背景技术
目前FLV(Flash Video,流媒体格式)逐渐成为主流的视频播放方式。FLV由连续的数据流组成,基本单位为GOP(Group Of Picture,画面组),其中,一个GOP的时长是固定的,即两个I帧之间的时间间隔。
目前,相关技术中在对播放过程中的FLV视频的码率进行切换,都是通过人工实现的。码率的高低,都是通过视频播放的清晰度体现出来的,人工调整码率就是人工调整清晰度的过程。通常的情况是:在按用户设置的清晰度进行FLV视频播放的过程中,如果出现卡顿,用户可以手动修改播放器的清晰度,以保证视频播放的流畅度。例如:用户先设置的清晰度为高清,在FLV视频播放的过程中出现了卡顿,用户手动将播放器的清晰度修改为标清,也就是降低码率以保证视频播放的流畅度。同一个视频的不同码率,具有不同的下载地址,切换码率也就是视频下载地址的切换。
可见,相关技术中的这种视频码率切换方法,是在卡顿出现后由人工进行切换的,视频播放的连续性不够高。
发明内容
本公开提供一种FLV视频的码率切换方法、装置、电子设备及存储介质,以至少解决相关技术中在FLV视频播放连续性不够高的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种FLV视频的码率切换方法,包括:
获取当前网络下载FLV视频的当前下载速度;
根据所述当前下载速度,从预设的多个码率中,确定出目标码率;
根据所述目标码率和所述FLV视频的当前码率是否相同,判断是否需要进行码率切换;
如果需要进行码率切换,则在下载完所述当前码率的当前GOP后,终止所述当前码率的所述FLV视频的下载,将所述当前码率切换为所述目标码率。
在一种具体的实施例中,所述根据所述当前下载速度,从预设的多个码率中,确定出目标码率的步骤,包括:
将小于所述当前下载速度且与所述当前下载速度的差值最小的码率确定为目标码率。
在一种具体的实施例中,所述根据所述目标码率和所述FLV视频的当前码率是否相同,判断是否需要进行码率切换的步骤,包括:
判断所述目标码率和所述FLV视频的当前码率的码率值是否相同;
如果所述目标码率和所述FLV视频的当前码率的码率值不相同,则判断当前已缓存的待播放数据是否满足预设的切换条件;如果当前已缓存的待播放数据满足所述预设的切换条件,则需要进行码率切换;
如果所述目标码率和所述FLV视频的当前码率的码率值相同,则不需要进行码率切换。
在一种具体的实施例中,所述预设的切换条件为:
当所述当前码率的码率值低于所述目标码率的码率值时,要求已缓存的待播放数据的播放时长大于或等于预设的第一缓存时长,其中,所述第一缓存时长大于一个GOP的时长;
当所述当前码率的码率值高于所述目标码率的码率值时,要求已缓存的待播放数据的播放时长小于预设的第二缓存时长,其中,所述第二缓存时长大于或等于一个GOP的时长且小于所述第一缓存时长。
在一种具体的实施例中,在所述获取当前网络下载FLV视频的当前下载速度的步骤之前,还包括:
获取当前网络下载的FLV视频的配置文件;所述配置文件中包含:所述预设的多个码率中每一码率对应的码率值,和所述码率值与保存有所述码率的FLV视频的服务器地址之间的对应关系。
在一种具体的实施例中,所述将所述当前码率切换为所述目标码率的步骤,包括:
从所述配置文件中,获取保存有所述目标码率的FLV视频的目标服务器的地址;
获取所述当前GOP结束后下一个GOP对应的目标时间戳;
根据获取的所述目标时间戳,向所述目标服务器发出获取所述目标时间戳对应的GOP的视频数据下载请求,所述视频数据下载请求中包含所述目标码率的码率值和所述目标时间戳;
接收所述目标服务器发送的所述视频数据,其中,所述视频数据为所述目标码率中时间戳为所述目标时间戳的当前网络下载的FLV视频的视频数据;
将接收到的所述视频数据存储至缓存。
根据本公开实施例的第二方面,提供一种FLV视频的码率切换装置,包括:
下载速度获取单元,被配置为执行获取当前网络下载FLV视频的当前下载速度;
确定单元,被配置为执行根据所述当前下载速度,从预设的多个码率中,确定出目标码率;
判断单元,被配置为执行根据所述目标码率和所述FLV视频的当前码率是否相同,判断是否需要进行码率切换;
切换单元,被配置为执行当需要进行码率切换时,在下载完所述当前码率的当前GOP后,终止所述当前码率的所述FLV视频的下载,将所述当前码率切换为所述目标码率。
在一种具体的实施例中,所述确定单元,被配置为执行:
将小于所述当前下载速度且与所述当前下载速度的差值最小的码率确定为目标码率。
在一种具体的实施例中,所述判断单元,被配置为执行:
判断所述目标码率和所述FLV视频的当前码率的码率值是否相同;
如果所述目标码率和所述FLV视频的当前码率的码率值不相同,则判断当前已缓存的待播放数据是否满足预设的切换条件;如果当前已缓存的待播放数据满足所述预设的切换条件,则需要进行码率切换;
如果所述目标码率和所述FLV视频的当前码率的码率值相同,则不需要进行码率切换。
在一种具体的实施例中,所述预设的切换条件为:
当所述当前码率的码率值低于所述目标码率的码率值时,要求已缓存的待播放数据的播放时长大于或等于预设的第一缓存时长,其中,所述第一缓存时长大于一个GOP的时长;
当所述当前码率的码率值高于所述目标码率的码率值时,要求已缓存的待播放数据的播放时长小于预设的第二缓存时长,其中,所述第二缓存时长大于或等于一个GOP的时长且小于所述第一缓存时长。
在一种具体的实施例中,所述FLV视频的码率切换装置,还包括:
配置文件获取单元,被配置为执行获取当前网络下载的FLV视频的配置文件;所述配置文件中包含:所述预设的多个码率中每一码率对应的码率值,和所述码率值与保存有所述码率的FLV视频的服务器地址之间的对应关系。
在一种具体的实施例中,所述切换单元,被配置为执行:
从所述配置文件中,获取保存有所述目标码率的FLV视频的目标服务器的地址;
获取所述当前GOP结束后下一个GOP对应的目标时间戳;
根据获取的所述目标时间戳,向所述目标服务器发出获取所述目标时间戳对应的GOP的视频数据下载请求;所述视频数据下载请求中包含所述目标码率的码率值和所述目标时间戳;
接收所述目标服务器发送的所述视频数据,其中,所述视频数据为所述目标码率中时间戳为所述目标时间戳的当前网络下载的FLV视频的视频数据;
将接收到的所述视频数据存储至缓存。
根据本公开实施例的第三方面,提供一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
获取当前网络下载FLV视频的当前下载速度;
根据所述当前下载速度,从预设的多个码率中,确定出目标码率;
根据所述目标码率和所述FLV视频的当前码率是否相同,判断是否需要进行码率切换;
如果需要进行码率切换,则在下载完所述当前码率的当前GOP后,终止所述当前码率的所述FLV视频的下载,将所述当前码率切换为所述目标码率。
根据本公开实施例的第四方面,提供一种当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行以下步骤:
获取当前网络下载FLV视频的当前下载速度;
根据所述当前下载速度,从预设的多个码率中,确定出目标码率;
根据所述目标码率和所述FLV视频的当前码率是否相同,判断是否需要进行码率切换;
如果需要进行码率切换,则在下载完所述当前码率的当前GOP后,终止所述当前码率的所述FLV视频的下载,将所述当前码率切换为所述目标码率。
本公开的实施例提供的技术方案至少带来以下有益效果:在FLV视频播放的过程中,实现根据用户的网络环境自适应的对码率进行切换。由于本公开的实施例提供的技术方案,可以实现在视频播放的过程中,根据用户的当前网络环境自适应的切换播放视频的清晰度,在网络环境好的时候播放高清晰度的视频,在网络环境差的时候将视频的播放清晰度由较高清晰度的自动切换到适应当时网络环境的清晰度,从而保证了用户观看的连续性,有效避免了卡顿的出现。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种FLV视频的码率切换方法的流程图。
图2是根据一示例性实施例示出的另一种FLV视频的码率切换方法的流程图。
图3是根据一示例性实施例示出的一种FLV视频的码率切换装置的框图。
图4是根据一示例性实施例示出的另一种FLV视频的码率切换装置的框图。
图5是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种FLV视频的码率切换方法的流程图,如图1所示,该FLV视频的码率切换方法用于客户端中,包括以下步骤:
在步骤S101中,获取当前网络下载FLV视频的当前下载速度。
在实际应用中,在FLV视频播放前,播放器会先下载该FLV视频的配置文件,从中获取一个该FLV视频的默认服务器地址,并开始从该服务器地址下载视频数据进行播放。
在步骤S102中,根据当前下载速度,从预设的多个码率中,确定出目标码率。
在一种具体的实施例中,根据当前下载速度,从预设的多个码率中,确定出目标码率的步骤,可以包括:
将小于当前下载速度且与当前下载速度的差值最小的码率确定为目标码率。
在步骤S103中,根据该目标码率和FLV视频的当前码率是否相同,判断是否需要进行码率切换。
在一种具体的实施例中,根据目标码率和FLV视频的当前码率是否相同,判断是否需要进行码率切换的步骤,可以包括:
判断目标码率和FLV视频的当前码率的码率值是否相同;
如果目标码率和FLV视频的当前码率的码率值不相同,则判断当前已缓存的待播放数据是否满足预设的切换条件;如果当前已缓存的待播放数据满足预设的切换条件,则需要进行码率切换;
如果目标码率和FLV视频的当前码率的码率值相同,则不需要进行码率切换。
在实际应用中,预设的切换条件可以为:
当当前码率的码率值低于目标码率的码率值时,要求已缓存的待播放数据的播放时长大于或等于预设的第一缓存时长,其中,第一缓存时长大于一个GOP的时长;
当当前码率的码率值高于目标码率的码率值时,要求已缓存的待播放数据的播放时长小于预设的第二缓存时长,其中,第二缓存时长大于或等于一个GOP的时长且小于第一缓存时长。
其中,已缓存的待播放数据的播放时长,可以是根据已缓存的待播放数据的数据量和当前码率计算获取的。
在步骤S104中,如果需要进行码率切换,则在下载完当前码率的当前GOP后,终止当前码率的FLV视频的下载,将当前码率切换为目标码率。
在一种具体的实施例中,将当前码率切换为目标码率的步骤,可以包括:
从配置文件中,获取保存有目标码率的FLV视频的目标服务器的地址;
获取当前GOP结束后下一个GOP对应的目标时间戳;
根据获取的目标时间戳,向目标服务器发出获取目标时间戳对应的GOP的视频数据下载请求;视频数据下载请求中包含目标码率的码率值和目标时间戳;
接收目标服务器发送的视频数据,其中,该视频数据为目标码率中时间戳为目标时间戳的当前网络下载的FLV视频的视频数据;
将接收到的视频数据存储至缓存。
本公开的实施例提供的技术方案,在FLV视频播放的过程中,实现根据用户的网络环境自适应的对码率进行切换。由于本公开的实施例提供的技术方案,可以实现在视频播放的过程中,根据用户的当前网络环境自适应的切换播放视频的清晰度,在网络环境好的时候播放高清晰度的视频,在网络环境差的时候将视频的播放清晰度由较高清晰度的自动切换到适应当时网络环境的清晰度,从而保证了用户观看的连续性,有效避免了卡顿的出现。
以下列举一个具体的实施例,对本公开实施例提供的FLV视频的码率切换方法做进一步详细的说明。
图2是根据一示例性实施例示出的另一种FLV视频的码率切换方法的流程图,如图2所示,该FLV视频的码率切换方法,包括以下步骤:
在步骤S201中,获取当前网络下载的FLV视频的配置文件。
在该实施例中,FLV视频可以是直播视频。
在实际应用中,在播放器获取FLV视频前,会先获取一个配置文件,具体的是一个manifest文件,该manifest文件中包含:预设的多个码率中每一码率对应的码率值,和码率值与保存有该码率的FLV视频的服务器地址也就是下载地址之间的对应关系。通常播放器会选择一个默认的下载地址开始下载FLV视频,通常该默认的下载地址为预设的多个码率中码率最低的码率对应的下载地址。
在步骤S202中,获取当前网络下载FLV视频的当前下载速度。
在一种具体的实施例中,获取当前网络下载FLV视频的当前下载速度的方法可以是:用在预设时间段内下载该FLV视频的数据量和预设时间段相比,获取当前网络下载FLV视频的当前下载速度。比如:用5秒内下载该FLV视频的数据量除以5秒,获取当前网络下载FLV视频的当前下载速度。
在步骤S203中,根据当前下载速度,从预设的多个码率中,确定出目标码率。
通常,同一个FLV视频预设的多个码率中,所***率的GOP时间长度相同;所***率的GOP对应的时间戳相同;所***率对应的数据流的编码格式相同,例如:所***率的GOP时间长度都是3秒,所***率对应的数据流的编码格式都是H264或者都是H265等。
在一种具体的实施例中,根据当前下载速度,从预设的多个码率中,确定出目标码率的步骤,可以包括:
将小于当前下载速度且与当前下载速度的差值最小的码率确定为目标码率。
在另一种具体的实施例中,还可以按照以下步骤从预设的多个码率中,确定出目标码率:
根据当前下载速度,确定参考下载速度;其中,参考下载速度小于当前下载速度;
针对每一码率,判断参考下载速度减去码率后的差值,与当前下载速度的当前比值是否在预设的区间范围内;
如果当前比值在预设的区间范围内,则确定该码率为目标码率。
在实际应用中,根据当前下载速度,确定参考下载速度的方式可以为:将当前下载速度与预设的小于100%的数值相乘,确定参考下载速度。比如:将当前下载速度的80%,确定为参考下载速度。
比值的计算公式可以为:
Figure BDA0002128960830000081
如果该比值越小,则表明该码率越接近参考下载速度。在一种具体的实施例中可以将在预设范围中比值最小时对应的码率确定为目标码率,该预设范围可以为0到当前下载速度的10%。
例1:预设的码率有:4000kpbs、5000kpbs、6000kpbs、7500kpbs,当前码率4000kpbs,当前下载速度为10240kpbs。参考下载速度=80%当前下载速度=8192kpbs,由于
Figure BDA0002128960830000082
因此,确定7500kpbs为目标码率。
例1:预设的码率有:4000kpbs、5000kpbs、6000kpbs、7500kpbs,当前码率6000kpbs,当前下载速度为7000kpbs。参考下载速度=80%当前下载速度=5600kpbs,由于
Figure BDA0002128960830000083
因此,确定5000kpbs为目标码率。
在步骤S204中,获取FLV视频的当前码率。
在一种具体的实施例中,可以是在根据当前下载速度,从预设的多个码率中,确定出目标码率的步骤之前,获取FLV视频的当前码率。在另一种具体的实施例中,还可以是在获取当前网络下载FLV视频的当前下载速度之前,获取FLV视频的当前码率。本发明实施例并不限定获取FLV视频的当前码率这一步骤的顺序,只要步骤S205之前获取到FLV视频的当前码率即可。
在步骤S205中,判断当前码率和目标码率的码率值是否相同;如果当前码率和目标码率的码率值不相同,则执行步骤S206;如果当前码率和目标码率的码率值相同,则执行步骤S215。
在步骤S206中,判断当前码率的码率值是否低于目标码率的码率值;如果当前码率的码率值低于目标码率的码率值,则执行步骤S207;如果当前码率的码率值高于目标码率的码率值,则执行步骤S208。
在步骤S207中,判断已缓存的待播放数据的播放时长是否大于或等于预设的第一缓存时长;如果已缓存的待播放数据的播放时长大于或等于预设的第一缓存时长,则执行步骤S209,如果已缓存的待播放数据的播放时小于预设的第一缓存时长,则执行步骤S215,其中,第一缓存时长大于一个GOP的时长。
在步骤S208中,判断已缓存的待播放数据的播放时长是否小于预设的第二缓存时长;如果已缓存的待播放数据的播放时长小于预设的第二缓存时长,则执行步骤S209,如果已缓存的待播放数据的播放时长大于或等于预设的第二缓存时长,则执行步骤S215,其中,第二缓存时长大于或等于一个GOP的时长,小于第一缓存时长。
具体的,已缓存的待播放数据的播放时长,是根据已缓存的待播放数据的数据量和当前码率计算获取的。设置缓存时长是为了保证在进行码率切换时,防止出现卡顿。
GOP为FLV视频的基本单位,一个GOP即为一个多媒体数据帧,由一个I帧(Intra-coded picture,帧内编码图像帧)、多个P帧(Predictive-coded Picture,预测编码图像帧)和多个B帧(Bidirectionally-predicted picture,双向预测编码图像帧)组成,I帧为关键帧,P帧为前向预测帧,B帧为双向内插帧。一个多媒体数据帧中的关键帧通常是一个完整的画面,而一个多媒体数据帧中的P帧和B帧主要用于记录相对于关键帧的变化,没有关键帧则无法解码获取P帧和B帧。
在实际应用中,在FLV视频中GOP的时长通常是固定的,为两个I帧之间的时间间隔,通常一个GOP的时长为2~3秒。
在一种具体的实施例中,一个GOP的时长可以为3秒,第一缓存时长可以为4秒,第二缓存时长可以为3秒。
在步骤S209中,从配置文件中,获取保存有目标码率的FLV视频的目标服务器的地址。
在步骤S210中,获取当前GOP结束后下一个GOP对应的目标时间戳。
在步骤S211中,根据获取的目标时间戳,向目标服务器发出获取目标时间戳对应的GOP的视频数据下载请求;其中,视频数据下载请求中可以包含目标码率的码率值和目标时间戳。
在实际应用中,可能因为数据丢失等原因目标服务器中,可能会缺少一些GOP。通常情况下,如果目标服务器中有目标时间戳对应的GOP的视频数据时,会将目标时间戳对应的GOP的视频数据发送给发出下载请求的客户端;如果目标服务器中没有目标时间戳对应的GOP的视频数据时,会将第一个时间戳大于目标时间戳的GOP的视频数据发送给发出下载请求的客户端。比如:目标时间戳为2,目标服务器中没有时间戳为2的GOP,目标服务器中第一个比目标时间戳2大的时间戳为3,那么,目标服务器会将时间戳为3的GOP的视频数据发送给发出下载请求的客户端。
在步骤S212中,接收目标服务器发送的视频数据。
在步骤S213中,将接收到的视频数据存储至缓存。
在步骤S214中,在缓存中标识视频数据对应的码率;以使播放器在播放完缓存中前一个码率下载的视频数据后,可以根据视频数据对应的码率,将视频数据的解码信息发送给与其对应的解码器进行解码。播放器播放解码后的视频数据。
在步骤S215中,继续下载当前码率的FLV视频。
具体的,可以将接收到的视频数据按照TAG(帧)为单位,存储至缓存队列中前一个码率下载的视频数据后,在该缓存中标识视频数据的对应的码率,即标识缓存中视频数据的index(索引)发生了变化,当播放器播放完该缓存队列中前一个码率下载的视频数据后,可以根据缓存中的标识获知视频数据对应的码率发生变化,从而,在新流数据解码之前把新流的metadata(元数据),也就是新流的高和宽等信息告知解码器,以保证解码器能够正常工作,实现无缝切换。
本公开的实施例提供的技术方案,在FLV视频播放的过程中,实现根据用户的网络环境自适应的对码率进行切换。由于本公开的实施例提供的技术方案,可以实现在视频播放的过程中,根据用户的当前网络环境自适应的切换播放视频的清晰度,在网络环境好的时候播放高清晰度的视频,在网络环境差的时候将视频的播放清晰度由较高清晰度的自动切换到适应当时网络环境的清晰度,从而保证了用户观看的连续性,有效避免了卡顿的出现。
图3是根据一示例性实施例示出的一种FLV视频的码率切换装置的框图。参照图3,该装置包括下载速度获取单元301,确定单元302,判断单元303和切换单元304。
下载速度获取单元301,被配置为执行获取当前网络下载FLV视频的当前下载速度;
确定单元302,被配置为执行根据当前下载速度,从预设的多个码率中,确定出目标码率;
判断单元303,被配置为执行根据所述目标码率和所述FLV视频的当前码率是否相同,判断是否需要进行码率切换;
切换单元304,被配置为执行当需要进行码率切换时,在下载完当前码率的当前GOP后,终止当前码率的FLV视频的下载,将当前码率切换为目标码率。
在一个具体的实施例中,确定单元302,具体可以被配置为执行:
将小于当前下载速度且与当前下载速度的差值最小的码率确定为目标码率。
在一个具体的实施例中,判断单元303,具体被配置为执行:
判断所述目标码率和所述FLV视频的当前码率的码率值是否相同;
如果所述目标码率和所述FLV视频的当前码率的码率值不相同,则判断当前已缓存的待播放数据是否满足预设的切换条件;如果当前已缓存的待播放数据满足所述预设的切换条件,则需要进行码率切换;
如果所述目标码率和所述FLV视频的当前码率的码率值相同,则不需要进行码率切换。
在一个具体的实施例中,预设的切换条件可以为:
当所述当前码率的码率值低于所述目标码率的码率值时,要求已缓存的待播放数据的播放时长大于或等于预设的第一缓存时长,其中,所述第一缓存时长大于一个GOP的时长;
当所述当前码率的码率值高于所述目标码率的码率值时,要求已缓存的待播放数据的播放时长小于预设的第二缓存时长,其中,所述第二缓存时长大于或等于一个GOP的时长且小于所述第一缓存时长。
图4是根据一示例性实施例示出的另一种FLV视频的码率切换装置的框图。参照图4,该装置还可以包括:配置文件获取单元401。
该配置文件获取单元401,被配置为执行获取当前网络下载的FLV视频的配置文件;配置文件中包含:预设的多个码率中每一码率对应的码率值,和码率值与保存***率的FLV视频的服务器地址之间的对应关系。
在一个具体的实施例中,切换单元304,具体可以被配置为执行:
从配置文件中,获取保存有目标码率的FLV视频的目标服务器的地址;
获取当前GOP结束后下一个GOP对应的目标时间戳;
根据获取的目标时间戳,向目标服务器发出获取目标时间戳对应的GOP的视频数据下载请求;视频数据下载请求中包含目标码率的码率值和目标时间戳;
接收目标服务器发送的视频数据,其中,该视频数据为目标码率中时间戳为目标时间戳的当前网络下载的FLV视频的视频数据;
将接收到的视频数据存储至缓存。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开的实施例提供的装置,在FLV视频播放的过程中,实现根据用户的网络环境自适应的对码率进行切换。由于本公开的实施例提供的装置,可以实现在视频播放的过程中,根据用户的当前网络环境自适应的切换播放视频的清晰度,在网络环境好的时候播放高清晰度的视频,在网络环境差的时候将视频的播放清晰度由较高清晰度的自动切换到适应当时网络环境的清晰度,从而保证了用户观看的连续性,有效避免了卡顿的出现。
图5是根据一示例性实施例示出的一种电子设备的框图。参照图5,该电子设备可以包括:
处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现如下步骤:
获取当前网络下载FLV视频的当前下载速度;
根据当前下载速度,从预设的多个码率中,确定出目标码率;
根据目标码率和FLV视频的当前码率是否相同,判断是否需要进行码率切换;
如果需要进行码率切换,则在下载完当前码率的当前GOP后,终止当前码率的FLV视频的下载,将当前码率切换为目标码率。
本公开的实施例提供的电子设备,在FLV视频播放的过程中,实现根据用户的网络环境自适应的对码率进行切换。由于本公开的实施例提供的电子设备,可以实现在视频播放的过程中,根据用户的当前网络环境自适应的切换播放视频的清晰度,在网络环境好的时候播放高清晰度的视频,在网络环境差的时候将视频的播放清晰度由较高清晰度的自动切换到适应当时网络环境的清晰度,从而保证了用户观看的连续性,有效避免了卡顿的出现。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本公开提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一FLV视频的码率切换方法的步骤。
在本公开提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一FLV视频的码率切换方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种FLV视频的码率切换方法,其特征在于,应用于客户端,所述方法,包括:
获取当前网络下载FLV视频的当前下载速度;
根据所述当前下载速度,从预设的多个码率中,确定出目标码率;
判断所述目标码率和所述FLV视频的当前码率的码率值是否相同;
如果所述目标码率和所述FLV视频的当前码率的码率值不相同,则判断当前已缓存的待播放数据是否满足预设的切换条件;所述预设的切换条件为:当所述当前码率的码率值低于所述目标码率的码率值时,要求已缓存的待播放数据的播放时长大于或等于预设的第一缓存时长,其中,所述第一缓存时长大于一个GOP的时长;当所述当前码率的码率值高于所述目标码率的码率值时,要求已缓存的待播放数据的播放时长小于预设的第二缓存时长,其中,所述第二缓存时长大于或等于一个GOP的时长且小于所述第一缓存时长;所述已缓存的待播放数据的播放时长是根据已缓存的待播放数据的数据量和当前码率计算获取的;
如果当前已缓存的待播放数据满足所述预设的切换条件,则需要进行码率切换;
如果所述目标码率和所述FLV视频的当前码率的码率值相同,则不需要进行码率切换;
如果需要进行码率切换,则在下载完所述当前码率的当前GOP后,终止所述当前码率的所述FLV视频的下载,将所述当前码率切换为所述目标码率。
2.根据权利要求1所述的FLV视频的码率切换方法,其特征在于,所述根据所述当前下载速度,从预设的多个码率中,确定出目标码率的步骤,包括:
将小于所述当前下载速度且与所述当前下载速度的差值最小的码率确定为目标码率。
3.根据权利要求1所述的FLV视频的码率切换方法,其特征在于,在所述获取当前网络下载FLV视频的当前下载速度的步骤之前,还包括:
获取当前网络下载的FLV视频的配置文件;所述配置文件中包含:所述预设的多个码率中每一码率对应的码率值,和所述码率值与保存有所述码率的FLV视频的服务器地址之间的对应关系。
4.根据权利要求3所述的FLV视频的码率切换方法,其特征在于,所述将所述当前码率切换为所述目标码率的步骤,包括:
从所述配置文件中,获取保存有所述目标码率的FLV视频的目标服务器的地址;
获取所述当前GOP结束后下一个GOP对应的目标时间戳;
根据获取的所述目标时间戳,向所述目标服务器发出获取所述目标时间戳对应的GOP的视频数据下载请求,所述视频数据下载请求中包含所述目标码率的码率值和所述目标时间戳;
接收所述目标服务器发送的所述视频数据,其中,所述视频数据为所述目标码率中时间戳为所述目标时间戳的当前网络下载的FLV视频的视频数据;
将接收到的所述视频数据存储至缓存。
5.一种FLV视频的码率切换装置,其特征在于,包括:
下载速度获取单元,被配置为执行获取当前网络下载FLV视频的当前下载速度;
确定单元,被配置为执行根据所述当前下载速度,从预设的多个码率中,确定出目标码率;
判断单元,被配置为执行:判断所述目标码率和所述FLV视频的当前码率的码率值是否相同;如果所述目标码率和所述FLV视频的当前码率的码率值不相同,则判断当前已缓存的待播放数据是否满足预设的切换条件;如果当前已缓存的待播放数据满足所述预设的切换条件,则需要进行码率切换;如果所述目标码率和所述FLV视频的当前码率的码率值相同,则不需要进行码率切换;所述预设的切换条件为:当所述当前码率的码率值低于所述目标码率的码率值时,要求已缓存的待播放数据的播放时长大于或等于预设的第一缓存时长,其中,所述第一缓存时长大于一个GOP的时长;当所述当前码率的码率值高于所述目标码率的码率值时,要求已缓存的待播放数据的播放时长小于预设的第二缓存时长,其中,所述第二缓存时长大于或等于一个GOP的时长且小于所述第一缓存时长;所述已缓存的待播放数据的播放时长是根据已缓存的待播放数据的数据量和当前码率计算获取的;
切换单元,被配置为执行当需要进行码率切换时,在下载完所述当前码率的当前GOP后,终止所述当前码率的所述FLV视频的下载,将所述当前码率切换为所述目标码率。
6.根据权利要求5所述的FLV视频的码率切换装置,其特征在于,所述确定单元,被配置为执行:
将小于所述当前下载速度且与所述当前下载速度的差值最小的码率确定为目标码率。
7.根据权利要求6所述的FLV视频的码率切换装置,其特征在于,所述FLV视频的码率切换装置,还包括:
配置文件获取单元,被配置为执行获取当前网络下载的FLV视频的配置文件;所述配置文件中包含:所述预设的多个码率中每一码率对应的码率值,和所述码率值与保存有所述码率的FLV视频的服务器地址之间的对应关系。
8.根据权利要求7所述的FLV视频的码率切换装置,其特征在于,所述切换单元,被配置为执行:
从所述配置文件中,获取保存有所述目标码率的FLV视频的目标服务器的地址;
获取所述当前GOP结束后下一个GOP对应的目标时间戳;
根据获取的所述目标时间戳,向所述目标服务器发出获取所述目标时间戳对应的GOP的视频数据下载请求;所述视频数据下载请求中包含所述目标码率的码率值和所述目标时间戳;
接收所述目标服务器发送的所述视频数据,其中,所述视频数据为所述目标码率中时间戳为所述目标时间戳的当前网络下载的FLV视频的视频数据;
将接收到的所述视频数据存储至缓存。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至4中任一项所述的FLV视频的码率切换方法。
10.一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至4中任一项所述的FLV视频的码率切换方法。
CN201910631959.8A 2019-07-12 2019-07-12 Flv视频的码率切换方法、装置、电子设备及存储介质 Active CN110267100B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910631959.8A CN110267100B (zh) 2019-07-12 2019-07-12 Flv视频的码率切换方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910631959.8A CN110267100B (zh) 2019-07-12 2019-07-12 Flv视频的码率切换方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN110267100A CN110267100A (zh) 2019-09-20
CN110267100B true CN110267100B (zh) 2022-01-25

Family

ID=67926063

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910631959.8A Active CN110267100B (zh) 2019-07-12 2019-07-12 Flv视频的码率切换方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN110267100B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111726642B (zh) * 2019-03-19 2023-05-30 北京京东尚科信息技术有限公司 直播方法、装置和计算机可读存储介质
CN110913245A (zh) * 2019-11-08 2020-03-24 网宿科技股份有限公司 一种控制视频转码码率的方法和装置
CN113141524B (zh) 2020-01-17 2023-09-29 北京达佳互联信息技术有限公司 资源传输方法、装置、终端及存储介质
CN113141541B (zh) * 2020-01-17 2022-06-10 北京达佳互联信息技术有限公司 码率切换方法、装置、设备及存储介质
CN112019873A (zh) * 2020-09-08 2020-12-01 北京金山云网络技术有限公司 视频码率调整方法、装置和电子设备
CN113891155B (zh) * 2021-09-29 2024-04-05 百果园技术(新加坡)有限公司 视频播放档位确定方法、视频播放方法及相关装置
CN113905257A (zh) * 2021-09-29 2022-01-07 北京字节跳动网络技术有限公司 视频码率切换方法、装置、电子设备及存储介质
CN115396731A (zh) * 2022-08-10 2022-11-25 北京势也网络技术有限公司 全景视频的播放方法、装置、电子设备及可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102957672A (zh) * 2011-08-25 2013-03-06 中国电信股份有限公司 自适应播放flv媒体流的方法、客户端和***
CN105744342A (zh) * 2016-01-28 2016-07-06 腾讯科技(深圳)有限公司 移动终端的数据传输方法和装置
CN105898403A (zh) * 2015-11-16 2016-08-24 乐视云计算有限公司 在线媒体服务的码流自适应方法及***
CN107438202A (zh) * 2016-05-26 2017-12-05 中兴通讯股份有限公司 一种实现码率切换的方法及装置
CN108668146A (zh) * 2017-03-27 2018-10-16 华为技术有限公司 一种调整流媒体码率的方法及设备
CN109769125A (zh) * 2018-12-06 2019-05-17 北京东方广视科技股份有限公司 流媒体码率的动态调整方法、媒体服务器及转码服务器
CN109862403A (zh) * 2019-02-19 2019-06-07 未来电视有限公司 自适应码率切换方法、装置、电子设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060143678A1 (en) * 2004-12-10 2006-06-29 Microsoft Corporation System and process for controlling the coding bit rate of streaming media data employing a linear quadratic control technique and leaky bucket model
CN103002272A (zh) * 2011-09-15 2013-03-27 上海聚力传媒技术有限公司 一种切换音视频信息的码率的方法、装置和设备
CN103945245A (zh) * 2014-04-16 2014-07-23 上海交通大学 一种dash码率切换方法以及快速视频启动的方法
CN107135411B (zh) * 2016-02-26 2020-04-24 掌赢信息科技(上海)有限公司 一种调整视频码率的方法及电子设备
CN107071529B (zh) * 2017-03-29 2018-10-26 咪咕视讯科技有限公司 一种hls视频播放方法、终端及服务器
CN108063955B (zh) * 2017-12-15 2020-02-11 重庆邮电大学 基于状态机的动态自适应视频传输的码率切换方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102957672A (zh) * 2011-08-25 2013-03-06 中国电信股份有限公司 自适应播放flv媒体流的方法、客户端和***
CN105898403A (zh) * 2015-11-16 2016-08-24 乐视云计算有限公司 在线媒体服务的码流自适应方法及***
CN105744342A (zh) * 2016-01-28 2016-07-06 腾讯科技(深圳)有限公司 移动终端的数据传输方法和装置
CN107438202A (zh) * 2016-05-26 2017-12-05 中兴通讯股份有限公司 一种实现码率切换的方法及装置
CN108668146A (zh) * 2017-03-27 2018-10-16 华为技术有限公司 一种调整流媒体码率的方法及设备
CN109769125A (zh) * 2018-12-06 2019-05-17 北京东方广视科技股份有限公司 流媒体码率的动态调整方法、媒体服务器及转码服务器
CN109862403A (zh) * 2019-02-19 2019-06-07 未来电视有限公司 自适应码率切换方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN110267100A (zh) 2019-09-20

Similar Documents

Publication Publication Date Title
CN110267100B (zh) Flv视频的码率切换方法、装置、电子设备及存储介质
US10638169B2 (en) Codec techniquest for fast switching without a synchronization frame
AU2014223523B2 (en) Adaptive streaming techniques
CN110636346B (zh) 一种码率自适应切换方法、装置、电子设备及存储介质
US20160073106A1 (en) Techniques for adaptive video streaming
US9571827B2 (en) Techniques for adaptive video streaming
US7895629B1 (en) Video service buffer management in a mobile rate control enabled network
CN110198495B (zh) 一种视频下载和播放的方法、装置、设备和存储介质
US20160219306A1 (en) Random access in a video bitstream
US20180351868A1 (en) Multicast abr flow prioritization using error detection thresholds in the receiver
EP2993911A1 (en) Method and client terminal for receiving a multimedia content split into at least two successive segments, and corresponding computer program product and computer-readable medium
US10116763B2 (en) Method for operating a cache arranged along a transmission path between client terminals and at least one server, and corresponding cache
US11563990B2 (en) Method and apparatus for automatic HLS bitrate adaptation
US11563962B2 (en) Seamless content encoding and transmission
CN114245196B (zh) 一种录屏推流方法、装置、电子设备及存储介质
CN110062003B (zh) 视频数据发送方法、装置、电子设备及存储介质
US20230291913A1 (en) Methods, systems, and apparatuses for improved adaptation logic and content streaming
US12034952B2 (en) Seamless content encoding and transmission
CN114745590A (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