CN109547846A - 一种hls码流切换方法、装置以及设备 - Google Patents
一种hls码流切换方法、装置以及设备 Download PDFInfo
- Publication number
- CN109547846A CN109547846A CN201910097777.7A CN201910097777A CN109547846A CN 109547846 A CN109547846 A CN 109547846A CN 201910097777 A CN201910097777 A CN 201910097777A CN 109547846 A CN109547846 A CN 109547846A
- Authority
- CN
- China
- Prior art keywords
- code stream
- current
- switching
- code
- bandwidth
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000001514 detection method Methods 0.000 claims abstract description 7
- 238000012790 confirmation Methods 0.000 claims abstract description 6
- 230000000052 comparative effect Effects 0.000 claims abstract description 5
- 230000008569 process Effects 0.000 abstract description 9
- 230000002159 abnormal effect Effects 0.000 abstract description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 235000013399 edible fruits Nutrition 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 201000004569 Blindness Diseases 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/442—Monitoring 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/44227—Monitoring of local network, e.g. connection or bandwidth variations; Detecting new devices in the local network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本说明书提供一种HLS码流切换方法、装置以及设备,所述方法包括:当检测到当前码流与当前带宽不匹配时,将当前码流预切换到与当前带宽匹配的指定码流;以所述指定码流下载码流片段;比较切换前后所下载的码流片段是否均包括视频数据和音频数据,并基于比较结果,确定是否将当前码流保持为所述指定码流。当带宽突然变小时,本申请中将码流预切换至纯音频码流,通过检测发现对应的码流片段没有视频数据,则由用户或用户个性设置来确定是否保持切换至所述指定码流。如此,通过预切换以及确认切换两个过程,避免了给用户造成播放异常的假象,提高了用户的体验感。
Description
技术领域
本说明书涉及视频播放的技术领域,尤其涉及一种HLS码流切换方法、装置以及设备。
背景技术
HLS(HTTP Live Streaming)是一种动态码率自适应技术。主要用于PC和Apple终端的音视频服务。HLS作为支持码率自适应的流媒体协议,包括m3u(8)的索引文件,TS码流片段(TS文件序列)和key加密串文件。该协议可根据网络带宽(下载网速)选择相适应的码流(也叫码率或码流率,是指视频文件在单位时间内使用的数据流量)进行播放,以达到流畅播放的目的。当网络带宽降低时,则选择与网络带宽对应的低码率的码流进行播放。但在某些网络不普遍的地方,可能发生网络带宽变得极小,使得对应的低码率码流为纯音频码流,若自动切换至纯音频码流后,用户观看播放视频时,发现仅有音频没有视频播放。这种情况下,用户有可能怀疑出现以下了问题:(1)播放器是否出现问题;(2)网速是否突然变差;(3)视频本身的格式出现了问题。然后,用户极可能采取盲目的手段去解决问题,比如:重启播放器设备或暂停播放或去寻找其他视频源来播放该视频。但大多数手段都不能解决该问题,这样就会给用户造成播放异常且难以解决的假象,使得用户体验感极差。
发明内容
为克服相关技术中存在的问题,本说明书提供了一种HLS码流切换方法、装置以及设备。
根据本说明书实施例的第一方面,提供一种HLS码流切换方法,所述方法包括:
当检测到当前码流与当前带宽不匹配时,将当前码流预切换到与当前带宽匹配的指定码流;
以所述指定码流下载码流片段;
比较切换前后所下载的码流片段是否均包括视频数据和音频数据,并基于比较结果,确定是否将当前码流保持为所述指定码流。
根据本说明书实施例的第二方面,提供一种HLS码流切换装置,所述装置包括:
预切换单元,用于当检测到当前码流与当前带宽不匹配时,将当前码流预切换到与当前带宽匹配的指定码流;
下载单元,用于以所述指定码流下载码流片段;
比较判断单元,用于比较切换前后所下载的码流片段是否均包括视频数据和音频数据,并基于比较结果,确定是否将当前码流保持为所述指定码流。
根据本说明书实施例的第三方面,提供一种HLS码流切换设备,所述设备包括存储器以及处理器,所述储存器用于存储可执行的计算机指令,所述处理器用于执行所述计算机指令以实现如下方法:
当检测到当前码流与当前带宽不匹配时,将当前码流预切换到与当前带宽匹配的指定码流;
以所述指定码流下载码流片段;
比较切换前后所下载的码流片段是否均包括视频数据和音频数据,并基于比较结果,确定是否将当前码流保持为所述指定码流。
本说明书的实施例提供的技术方案可以包括以下有益效果:
本说明书实施例中,提出了一种HLS码流切换方法,该切换方法在检测到当前码流与当前带宽不匹配时,并不是直接将当前码流自动切换至与当前带宽匹配的指定码流。而是先通过预切换至所述指定码流来下载对应的码流片段,基于所述码流片段的内容来决定是否认可或保持切换至所述指定码流,若不认可该预切换,则再将当前码流切换至其他码流。当带宽突然变小时,码流先预切换至纯音频码流,通过检测发现对应的码流片段没有视频数据,则由用户或用户个性设置来确定是否保持切换至所述指定码流。如此,通过预切换以及确认切换两个过程,避免了给用户造成播放异常的假象,提高了用户的体验感。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是本说明书根据一示例性实施例示出的一种HLS码流切换方法的流程图。
图2是本说明书根据一示例性实施例示出的码流预切换的流程图。
图3是相关技术中根据一示例性实施例示出的码流切换方法。
图4是本说明书根据一示例性实施例示出的确定所述最小码流的流程图。
图5是本说明书根据另一示例性实施例示出的一种HLS码流切换方法的流程图。
图6是本说明书根据一示例性实施例示出的一种HLS码流切换装置的框图。
图7是本说明书根据一示例性实施例示出的一种HLS码流切换设备的示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
由于用户端播放的是某种固定码率的视频,在网络带宽、屏幕分辨率满足的情况下,用户无法选择更高清晰度的码率,没法为用户提供更好的播放体验。反之,如果网络质量不好,用户也无法切换到更低码率的视频,从而导致播放卡顿。单码率视频无法应对客户端网络带宽环境的变化,提供给客户优质的播放体验,但是HLS多码率自适应特性正好解决了这一问题,并且支持客户端在不同的网络带宽环境下,播放不同码率、分辨率的视频。HLS的实现原理是把整个多媒体文件切成一个个小的基于HTTP的资源(MPEG-2TransportStream格式的文件),生成一个包含元数据的扩展M3U(M3U8)Playlist文件,每次只下载列表中的一些资源,客户端根据带宽环境可以选择不同的的资源。M3U8是一种播放多媒体列表的文件格式,可以指定一个或多个多媒体资源的位置,并且M3U8Playlist中可以包含多个子M3U8文件。
M3U8文件其实就是以UTF-8编码的M3U文件,该文件本身不能播放,只是用于存放待播放视频流的基本信息。HLS有两级索引:(a)第一级索引存放的是不同码率的HLS源的M3U8地址,也就是二级索引文件的地址;(b)第二级索引则记录了同一码率下TS码流片段的下载地址。客户端获取一级索引(M3U8)文件后,根据自己的网络带宽,去下载相应码率的二级索引文件,然后再按二级索引文件的切片顺序下载并播放TS码流片段(下文中“码流片段”都是指的是“TS码流片段”)。
接下来对本说明书实施例进行详细说明。
如图1所示,图1是本说明书根据一示例性实施例示出的一种HLS码流切换方法的流程图,所述方法包括以下步骤:
步骤102、当检测到当前码流与当前带宽不匹配时,将当前码流预切换到与当前带宽匹配的指定码流。
HLS使用后缀为.m3u8的索引文件,播放器在播放HLS视频时,会进行网络带宽判断以及相应的码流切换,举一个例子,通过一个.m3u8的索引文件来说明码流切换的过程:
m3u8索引文件:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=1280000
http://example.com/low.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2560000
http://example.com/mid.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=7680000
http://example.com/hi.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=65000,CODECS="mp4a.40.5"
http://example.com/audio-only.m3u8
从索引文件中可以看出,当带宽大于或等于7680000kbps时,则对应的码流为高码率码流,所述高码率码流的M3U8地址(也就是二级索引文件的地址)为“http://example.com/hi.m3u8”,访问该地址则可获取与高码率码流对应的码流片段的下载地址;当带宽大于或等于2560000kbps且小于7680000kbps时,则选择“http://example.com/mid.m3u8”对应的中码率码流进行码流片段下载;若当带宽小于65000kbps,则选择“http://example.com/audio-only.m3u8”对应的码流进行码流片段下载,其中,该码流片段中不包括视频数据,播放时仅有音频。
在本例中,如图2所示,通过以下步骤来实现将当前码流预切换到与当前带宽匹配的指定码流,具体为:
步骤201:获取当前码流;其中,当前码流可从M3U8索引文件中得到。
步骤202:检测获取当前的带宽;通过实时监测网络状况,来获取当前带宽为现有技术,此处不做详述。
步骤203:判断当前码流与当前带宽是否匹配,若匹配,则执行步骤204;若不匹配,则执行步骤205。
步骤204:不做码流切换动作,维持当前码流继续下载码流片段。
步骤205:将当前码流预切换到与当前带宽匹配的指定码流。
举个例子而言,当检测到当前码流对应为中码率码流时,由于网络环境变差,网络带宽降低,当前带宽降为63000kbps;由于与当前码流相匹配的网络带宽为大于或等于2560000kbps且小于7680000kbps,由此,检测可得到当前码流与当前带宽不匹配,若持续基于当前带宽去下载中码率码流对应的码流片段,则会造成视频卡顿,播放极不流畅。此时,将当前码流切换至与当前带宽63000kbps匹配的指定码流,即“http://example.com/audio-only.m3u8”对应的码流。
步骤104、以所述指定码流下载码流片段。
具体来说,就是访问指定码流对应的m3u8地址,如“http://example.com/a udio-only.m3u8”,访问该地址则可获取与指定码流对应的码流片段的下载地址,以下载码流片段。
步骤106、比较切换前后所下载的码流片段是否均包括视频数据和音频数据,并基于比较结果,确定是否将当前码流保持为所述指定码流。
具体来说,步骤106是根据切换后码流试下载得到的码流片段中是否包括有视频数据(视频流),来确定切换后的指定码流是否可以接受,即确定是否将当前码流保持为所述指定码流。其中,切换后的指定码流是否可以接受是由用户主动选择或通过用户设定的个性设置来确定的。
目前,如图3所示,为相关技术中的HLS码流切换方法,其先通过协议解析获取流数据以及m3u8索引文件,依据m3u8索引文件顺序下载码流片段,判断全部的码流片段是否都下载结束,若未下载结束,则获取当前的网络带宽,判断是否切换码流,若当前码流与当前的网络带宽不匹配,则直接自动切换至与当前网络带宽匹配的新码流,然后继续下载与切换后码流对应的码流片段,直至全部码流片段下载结束。
在本实施例中,提出的一种HLS码流切换方法,该切换方法在检测到当前码流与当前带宽不匹配时,并不是直接将当前码流自动切换至与当前带宽匹配的指定码流。而是先通过预切换至所述指定码流来下载对应的码流片段,基于所述码流片段的内容来决定是否认可或保持切换至所述指定码流,若不认可该预切换,则再将当前码流切换至其他码流。如此,通过预切换以及确认切换两个过程,避免了给用户造成播放异常的假象,提高了用户的体验感。
在一个实施例中,比较切换前后所下载的码流片段是否均包括视频数据和音频数据,得到的比较结果包括如下几种:
结果1:切换前所下载的所述码流片段中包括视频数据与音频数据,切换后所下载的所述码流片段中包括有视频数据与音频数据;
结果2:切换前所下载的所述码流片段中不包括视频数据,切换后所下载的所述码流片段中包括有视频数据与音频数据;
结果3:切换前所下载的码流片段包括视频数据与音频数据但切换后所下载的码流片段中不包括视频数据;
结果4:切换前所下载的所述码流片段中不包括视频数据,切换后所下载的所述码流片段中也不包括有视频数据。
在一个实施例中,若切换后所下载的码流片段包括视频数据,则将当前码流保持为指定码流。也就是说当所述比较结果为结果1或结果2,则确定是否将当前码流保持为所述指定码流的方法具体包括有:直接将当前码流保持为所述指定码流,进行对应的码流片段的下载。由于结果2或结果3中,切换后的所下载的所述码流片段中包括有视频数据与音频数据,即基本不影响播放的流畅性以及用户的体验感,无非是切换前后视频的画面质量变化,一般情况下用户可以接受,故选择直接将当前码流保持为所述指定码流。
在一个实施例中,若切换后所下载的码流片段不包括视频数据,则基于切换前所下载的码流片段是否包括视频数据,来确定是否将当前码流切换为其他码流。由于切换后以所述指定码流进行视频下载播放,仅能够播放纯音频,故考虑用户体验感,此时需要确定用户是否接受纯音频播放。
在一个实施例中,若切换前所下载的码流片段包括视频数据,提示用户确认是否播放纯音频,若用户确认播放时,将当前码流保持为所述指定码流;否则,将当前码流切换为用于播放视频的其他码流。也就是比较结果为结果3的这种情况,此时,则确定是否将当前码流切换为其他码流的方法具体包括有:提示用户选择是否接受播放纯音频,具体提示方式可以是显示提示界面或语音提示或其他方式,本申请不做限制。若用户确认纯音频播放,则将当前码流保持为所述指定码流。当然,还可根据用户默认的个性设置,来确定是否将当前码流保持为所述指定码流,也就是说,用户已经设置了在该种情况下,接受或不接受音频播放的情况。
在该实施例中,由于切换前由于既有音频又有视频同时播放,切换后仅存在音频播放,此时,若不提示用户,让用户明白视频仍在正常播放,用户肯定会认定此时播放异常,采取错误的手段去寻求该播放异常的解决办法。故本实施例中,提示用户是否接受音频播放,让用户明白由于网络带宽的影响,为保证播放的流畅性需要切换至纯音频播放,若用户接受纯音频播放,则将当前码流保持为所述指定码流;若用户不接受纯音频播放,则将当前码流切换至对应码流片段包括视频数据的码流,尽管可能会造成播放多次卡顿,但出于用户自己选择,可相对增加用户的体验感。
在一个实施例中,在所述提示用户选择是否接受音频播放时,若用户确认不接受纯音频播放,则将当前码流切换为用于播放视频的其他码流包括:将当前码流切换为用于播放视频的最小码流,其中,最小码流对应码流片段包括视频数据。具体来说,就是用户坚持要看到视频(即使很可能不流畅),此时,预切换得到的指定码流就不支持能看见视频,所以需要将当前码流切换至最小码流,该最小码流在保证对应码流片段包括视频数据的同时,且保证与该最小码流相匹配的带宽最小。如此,基于当前带宽下载与最小码流对应的码流片段时,其卡顿的时间相对较小。当然,本申请中也可根据用户的个性设置,将当前码流切换为用于播放视频的较大的码流,实际播放中,基于当前带宽以及播放流畅性的考虑,选择切换至最小码流,但用户坚持要求播放时的高画质,则也可以切换成用于播放视频的其他较大的码流,尽管播放流畅性会稍许降低。
在一个实施例中,如图4所示,确定所述最小码流的方法为:在索引文件中查找与用于播放视频的码流对应的带宽字段,从所述带宽字段中获取大于当前带宽的最小带宽,所述最小码流是与所述最小带宽对应的码流。该方法对应的具体步骤包括:
步骤401:遍历索引文件中的带宽字段:;
步骤402:从所述带宽字段中选择出大于当前带宽的最小带宽;
步骤403:获取与所述最小带宽对应的预设码流;将当前码流预切换至所述预设码流;
步骤404:以所述预设码流下载码流片段,并确定所述码流片段中是否包括视频数据;若所述码流片段中包括视频数据,则执行步骤405,否则,执行步骤406;
步骤405:将所述预设码流作为所述最小码流;
步骤406::从所述带宽字段中淘汰所述最小带宽,再回到步骤402。
具体而言,若当前带宽为65000kbps,与该带宽匹配的指定码流对应的码流片段不包括视频数据,故用户不接受切换至所述指定码流。此时,遍历索引文件中的带宽字段,发现所述带宽字段包括有65000kbps、1280000kbps,2560000kbps,7680000kbps;其中,所述带宽字段中大于当前带宽65000kbps的带宽有1280000kbps,2560000kbps,7680000kbps;取其中的最小值,也就是最小带宽1280000kbps,通过m3u8索引文件确定与该最小带宽对应的预设码流为低码率码流,即“http://example.com/low.m3u8”,根据所述预设码流下载码流片段,并确定所述码流片段中是否包括视频数据;检测发现所述码流片段中包括视频数据,则将所述码流片段对应的预设码流作为所述最小码流。若发现所述码流片段中不包括视频数据,则将所述最小带宽1280000kbps从所述带宽字段中淘汰,重复以上步骤,再选取大于当前带宽65000kbps的最小值,即2560000kbps作为最小带宽。
在本实施例中,设计了所述最小码流的确定方法,考虑到用户不接受音频播放,故需要选择将码流切换至其他码流,其中,其他码流对应下载得到的码流片段需要包括有视频数据,但当前带宽由于较小,其支持的为仅包括音频数据的码流片段下载,若用户坚持需要视频播放,则需要选择出最低码率的码流对应的、且包括视频数据的码流片段进行下载。而不同的带宽对应不同的码流,通过遍历索引文件中的带宽字段,即可依据带宽的序列排序,选择出码率最低且对应码流片段包括视频数据的码流。本实施例中,通过该方法确定出的最小码流,能够相对的降低视频播放的卡顿,提高用户观看视频时的体验感。
在一个实施例中,若所述比较结果为结果4,则确定是否将当前码流切换为其他码流具体包括有:直接将当前码流保持为所述指定码流,进行对应的码流片段的下载。由于切换前后,所下载的码流片段中都只包括有音频数据,用户端都只能听到音频,无非是切换前后音频的质量变化,其同样也不影响播放的流畅性以及用户的体验感,一般情况下用户可以接受,故选择直接将当前码流保持为所述指定码流。
如图5所示,是根据一示例性实施例示出的一种HLS码流切换方法的流程图,本实施方式在前述实施例的基础上,具体的描述了如何进行HLS码流切换,在发现当前码流与当前带宽不匹配时,根据当前带宽对应的指定码流,确定是否进行码流切换的处理过程,包括如下步骤:
步骤501:获取切换后下载得到的与所述指定码流对应的第一个码流片段;基于切换后所述指定码流对应的索引文件ID,来组装码流片源并下载第一个码流片段。
步骤502:解析所述第一个码流片段对应的PMT表;其中,PMT表是真正能指示是视频流还是音频流的文件。如果PMT表中含有视频数据(视频流),则PMT表中的参数audio_only=FALSE,否则audio_only=TRUE。
步骤503:判断所述第一个码流片段对应的PMT表是否含有视频数据,若所述PMT表含有视频数据,则执行步骤506;若所述PMT表不含有视频数据,则执行步骤504。
步骤504:获取预切换前,下载得到码流片段。其中,可以获取预切换前下载的码流片段中的最后一个码流片段。
步骤505:判断预切换前码流片段对应的PMT表中是否含有视频数据;若所述PMT表中不含有视频数据,则执行步骤506;若所述PMT表中含有视频数据,则执行步骤507。
步骤506:将当前码流保持为所述指定码流,进行对应码流片段下载。也就是用户接受该码流预切换,将切换后的指定码流作为新码流去下载码流片段。
步骤507:提示用户选择是否接受音频播放,其中,可通过显示一个提示界面来提示用户;若用户选择接受音频播放,则执行步骤506;若用户选择不接受音频播放,则执行步骤508。
步骤508:将当前码流切换为最小码流;其中,在保证码流对应的码流片段包括有视频数据的前提下,选择与码流相匹配的带宽最小的码流作为所述最小码流。
通过上述切换方法在检测到当前码流与当前带宽不匹配时,并不是直接将当前码流自动切换至与当前带宽匹配的指定码流。而是先通过预切换至所述指定码流来下载对应的码流片段,基于所述码流片段的内容来决定是否认可或保持切换至所述指定码流,若用户不接受或不认可该预切换,则再将当前码流切换至其他码流。当带宽突然变小时,码流先预切换至纯音频码流,通过检测发现对应的码流片段没有视频数据,则由用户或用户个性设置来确定是否保持切换至所述指定码流。如此,通过预切换以及确认切换两个过程,避免了给用户造成播放异常的假象,提高了用户的体验感。
与前述方法的实施例相对应,本说明书还提供了一种HLS码流切换装置及其所应用的设备的实施例。
本说明书中码流切换装置的实施例可以应用在视频播放设备或软件上,例如电视机或视频播放器。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过用于码流切换的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。
如图6所示,图6是本说明书根据一示例性实施例示出的一种HLS码流切换装置的框图,所述装置600包括:
预切换单元601,用于当检测到当前码流与当前带宽不匹配时,将当前码流预切换到与当前带宽匹配的指定码流;
下载单元602,用于以所述指定码流下载码流片段;
比较判断单元603,用于比较切换前后所下载的码流片段是否均包括视频数据和音频数据,并基于比较结果,确定是否将当前码流保持为所述指定码流。
在一个实施例中,所述比较判断单元包括用于确定是否将当前码流保持为所述指定码流的第一确定单元,所述第一确定单元用于当检测到切换后所下载的码流片段包括视频数据,则将当前码流保持为指定码流;否则,基于切换前所下载的码流片段是否包括视频数据,来确定是否将当前码流切换为其他码流。
在一个实施例中,所述所述第一确定单元包括用于确定是否将当前码流切换为其他码流的第二确定单元,所述第二确定单元用于当检测到切换前所下载的码流片段包括视频数据,提示用户确认是否播放纯音频,若用户确认播放时,将当前码流保持为所述指定码流;否则,将当前码流切换为用于播放视频的其他码流。
在一个实施例中,将当前码流切换为用于播放视频的其他码流包括有:将当前码流切换为用于播放视频数据的最小码流,其中,最小码流的确定方法已经在方法实施例中说明,此处不再赘述。
本装置实施例中,提出了一种HLS码流切换装置,该切换装置在检测到当前码流与当前带宽不匹配时,并不是直接将当前码流自动切换至与当前带宽匹配的指定码流。而是先通过预切换单元将当前码流切换至所述指定码流来下载对应的码流片段,基于所述码流片段的内容,比较判断单元决定是否认可或保持切换至所述指定码流,若不认可该预切换,则再将当前码流切换至其他码流。当带宽突然变小时,码流先预切换至纯音频码流,通过检测发现对应的码流片段没有视频数据,则由用户或用户个性设置来确定是否保持切换至所述指定码流。如此,通过预切换单元以及比较判断单元的处理,避免了给用户造成播放异常的假象,提高了用户的体验感。
相应的,本说明书还提供一种HLS码流切换设备,如图7所示,所述设备700包括存储器701以及处理器702,所述储存器701用于存储可执行的计算机指令,所述处理器702用于执行所述计算机指令以实现如下方法:
当检测到当前码流与当前带宽不匹配时,将当前码流预切换到与当前带宽匹配的指定码流;
以所述指定码流下载码流片段;
比较切换前后所下载的码流片段是否均包括视频数据和音频数据,并基于比较结果,确定是否将当前码流保持为所述指定码流。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (9)
1.一种HLS码流切换方法,其特征在于,所述方法包括:
当检测到当前码流与当前带宽不匹配时,将当前码流预切换到与当前带宽匹配的指定码流;
以所述指定码流下载码流片段;
比较切换前后所下载的码流片段是否均包括视频数据和音频数据,并基于比较结果,确定是否将当前码流保持为所述指定码流。
2.根据权利要求1所述的一种HLS码流切换方法,其特征在于,所述确定是否将当前码流保持为所述指定码流包括:
若切换后所下载的码流片段包括视频数据,则将当前码流保持为指定码流;否则,基于切换前所下载的码流片段是否包括视频数据,来确定是否将当前码流切换为其他码流。
3.根据权利要求2所述的一种HLS码流切换方法,其特征在于,所述确定是否将当前码流切换为其他码流包括:
若切换前所下载的码流片段包括视频数据,提示用户确认是否播放纯音频,在用户确认播放时,将当前码流保持为所述指定码流;否则,将当前码流切换为用于播放视频数据的其他码流。
4.根据权利要求3所述的一种HLS码流切换方法,其特征在于,所述将当前码流切换为用于播放视频数据的其他码流包括:
将当前码流切换为用于播放视频数据的最小码流。
5.根据权利要求4所述的一种HLS码流切换方法,其特征在于,确定所述最小码流的步骤为:
在索引文件中查找与用于播放视频数据的码流对应的带宽字段,从所述带宽字段中获取大于当前带宽的最小带宽,所述最小码流是与所述最小带宽对应的码流。
6.一种HLS码流切换装置,其特征在于,所述装置包括:
预切换单元,用于当检测到当前码流与当前带宽不匹配时,将当前码流预切换到与当前带宽匹配的指定码流;
下载单元,用于以所述指定码流下载码流片段;
比较判断单元,用于比较切换前后所下载的码流片段是否均包括视频数据和音频数据,并基于比较结果,确定是否将当前码流保持为所述指定码流。
7.根据权利要求6所述的一种HLS码流切换装置,其特征在于,所述比较判断单元包括用于确定是否将当前码流保持为所述指定码流的第一确定单元,所述第一确定单元用于当检测到切换后所下载的码流片段包括视频数据,则将当前码流保持为指定码流;否则,基于切换前所下载的码流片段是否包括视频数据,来确定是否将当前码流切换为其他码流。
8.根据权利要求7所述的一种HLS码流切换装置,其特征在于,所述第一确定单元包括用于确定是否将当前码流切换为其他码流的第二确定单元,所述第二确定单元用于当检测到切换前所下载的码流片段包括视频数据,提示用户确认是否播放纯音频,若用户确认播放时,将当前码流保持为所述指定码流;否则,将当前码流切换为用于播放视频的其他码流。
9.一种HLS码流切换设备,其特征在于,所述设备包括存储器以及处理器,所述存储器用于存储可执行的计算机指令,所述处理器用于执行所述计算机指令以实现权利要求1-6中任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910097777.7A CN109547846B (zh) | 2019-01-31 | 2019-01-31 | 一种hls码流切换方法、装置以及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910097777.7A CN109547846B (zh) | 2019-01-31 | 2019-01-31 | 一种hls码流切换方法、装置以及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109547846A true CN109547846A (zh) | 2019-03-29 |
CN109547846B CN109547846B (zh) | 2021-08-24 |
Family
ID=65838856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910097777.7A Active CN109547846B (zh) | 2019-01-31 | 2019-01-31 | 一种hls码流切换方法、装置以及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109547846B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110149560A (zh) * | 2019-06-05 | 2019-08-20 | 亦非云互联网技术(上海)有限公司 | 基于hls协议的播放器优化方法及***、存储介质及终端 |
CN110753266A (zh) * | 2019-10-23 | 2020-02-04 | 深圳市酷开网络科技有限公司 | 视频清晰度的调整方法、装置和存储介质 |
WO2023035884A1 (zh) * | 2021-09-07 | 2023-03-16 | 北京字跳网络技术有限公司 | 动态画质视频播放方法、装置、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661504A (zh) * | 2008-08-29 | 2010-03-03 | 奥多比公司 | 动态改变播放列表 |
CN103024490A (zh) * | 2012-12-26 | 2013-04-03 | 北京奇艺世纪科技有限公司 | 一种支持音频和视频独立播放的方法及设备 |
CN104244028A (zh) * | 2014-06-18 | 2014-12-24 | 华为技术有限公司 | 一种基于码流自适应技术的内容分发方法、装置及*** |
CN104519372A (zh) * | 2014-12-19 | 2015-04-15 | 深圳市九洲电器有限公司 | 一种流媒体播放的切换方法和*** |
CN105791987A (zh) * | 2014-12-23 | 2016-07-20 | 深圳Tcl数字技术有限公司 | 媒体数据播放的方法及终端 |
US20160323201A1 (en) * | 2015-04-30 | 2016-11-03 | Flash Networks, Ltd | Method and system for bitrate management |
CN106210929A (zh) * | 2016-07-13 | 2016-12-07 | 诚迈科技(南京)股份有限公司 | 基于hls客户端的网络流下载终端及优化方法 |
US20180159916A1 (en) * | 2016-12-04 | 2018-06-07 | Cisco Technology, Inc. | System and method for announcing media changes |
-
2019
- 2019-01-31 CN CN201910097777.7A patent/CN109547846B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661504A (zh) * | 2008-08-29 | 2010-03-03 | 奥多比公司 | 动态改变播放列表 |
CN103024490A (zh) * | 2012-12-26 | 2013-04-03 | 北京奇艺世纪科技有限公司 | 一种支持音频和视频独立播放的方法及设备 |
CN104244028A (zh) * | 2014-06-18 | 2014-12-24 | 华为技术有限公司 | 一种基于码流自适应技术的内容分发方法、装置及*** |
CN104519372A (zh) * | 2014-12-19 | 2015-04-15 | 深圳市九洲电器有限公司 | 一种流媒体播放的切换方法和*** |
CN105791987A (zh) * | 2014-12-23 | 2016-07-20 | 深圳Tcl数字技术有限公司 | 媒体数据播放的方法及终端 |
US20160323201A1 (en) * | 2015-04-30 | 2016-11-03 | Flash Networks, Ltd | Method and system for bitrate management |
CN106210929A (zh) * | 2016-07-13 | 2016-12-07 | 诚迈科技(南京)股份有限公司 | 基于hls客户端的网络流下载终端及优化方法 |
US20180159916A1 (en) * | 2016-12-04 | 2018-06-07 | Cisco Technology, Inc. | System and method for announcing media changes |
Non-Patent Citations (1)
Title |
---|
罗文: "基于HTTP自适应流媒体关键技术的研究及实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110149560A (zh) * | 2019-06-05 | 2019-08-20 | 亦非云互联网技术(上海)有限公司 | 基于hls协议的播放器优化方法及***、存储介质及终端 |
CN110149560B (zh) * | 2019-06-05 | 2021-11-16 | 亦非云互联网技术(上海)有限公司 | 基于hls协议的播放器优化方法及***、存储介质及终端 |
CN110753266A (zh) * | 2019-10-23 | 2020-02-04 | 深圳市酷开网络科技有限公司 | 视频清晰度的调整方法、装置和存储介质 |
WO2023035884A1 (zh) * | 2021-09-07 | 2023-03-16 | 北京字跳网络技术有限公司 | 动态画质视频播放方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109547846B (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190028746A1 (en) | Synchronous and Multi-Sourced Audio and Video Broadcast | |
US10432690B1 (en) | Manifest partitioning | |
US8516144B2 (en) | Startup bitrate in adaptive bitrate streaming | |
CA2771187C (en) | Encoding video streams for adaptive video streaming | |
US20100115575A1 (en) | System and method for recording and distributing media content | |
US20140137168A1 (en) | Transmitting apparatus, control method for transmitting apparatus, control program, and recording medium | |
CN106658226B (zh) | 一种播放方法及装置 | |
CN109547846A (zh) | 一种hls码流切换方法、装置以及设备 | |
CN105472443A (zh) | 一种直播源控制方法及*** | |
US20190037283A1 (en) | Enabling personalized audio in adaptive streaming | |
CN103685264A (zh) | 轮播媒体分片的方法、客户端及*** | |
CN105144739B (zh) | 具有媒体处理机制的显示***及其操作方法 | |
US8000578B2 (en) | Method, system, and medium for providing broadcasting service using home server and mobile phone | |
US10021433B1 (en) | Video-production system with social-media features | |
CN105979373A (zh) | 一种播放方法及装置 | |
WO2016134564A1 (zh) | 一种用户感知评估方法及装置 | |
KR20120092432A (ko) | 디지털 방송 시스템에서 컨텐츠 송수신 장치 및 방법 | |
KR20150027262A (ko) | 개인화된 미디어 콘텐츠의 제공 | |
CN105939489A (zh) | 多媒体数据轮播方法及装置 | |
CN113923502B (zh) | 直播视频播放方法及装置 | |
KR20060123317A (ko) | 콘텐츠 재생방법 및 콘텐츠 재생장치 | |
Qin et al. | ABR streaming with separate audio and video tracks: Measurements and best practices | |
JP2007214794A (ja) | 携帯端末装置 | |
CN106331763A (zh) | 无缝播放分片媒体文件的方法及实现该方法的装置 | |
EP2341680B1 (en) | Method and apparatus for adaptation of a multimedia content |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 266555 Qingdao economic and Technological Development Zone, Shandong, Hong Kong Road, No. 218 Applicant after: Hisense Visual Technology Co., Ltd. Address before: 266555 Qingdao economic and Technological Development Zone, Shandong, Hong Kong Road, No. 218 Applicant before: QINGDAO HISENSE ELECTRONICS Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |