CN106331840A - 一种基于hls协议的音视频的跳转播放方法及装置 - Google Patents
一种基于hls协议的音视频的跳转播放方法及装置 Download PDFInfo
- Publication number
- CN106331840A CN106331840A CN201610792229.2A CN201610792229A CN106331840A CN 106331840 A CN106331840 A CN 106331840A CN 201610792229 A CN201610792229 A CN 201610792229A CN 106331840 A CN106331840 A CN 106331840A
- Authority
- CN
- China
- Prior art keywords
- video
- pes bag
- audio frequency
- bag
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 239000000203 mixture Substances 0.000 claims description 3
- 239000012634 fragment Substances 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000000007 visual effect Effects 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
-
- 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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4343—Extraction or processing of packetized elementary streams [PES]
-
- 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
- H04N21/4385—Multiplex stream processing, e.g. multiplex stream decrypting
-
- 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/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47217—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
-
- 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)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种基于HLS协议的音视频的跳转播放方法及装置。该方案中,由于在源音视频的当前分片文件下载过程中,若当前的网络带宽小于预设值,即网络状况变差时,并非一直等待源音视频的当前分片文件下载,而是去下载相应的低分辨率的目标音视频的分片文件,并且基于时间标准,从源音视频的当前分片文件中对应的待解码的连接视频PES包和连接音频PES包结束播放源音视频,从目标音视频的分片文件对应的跳转视频PES包和跳转音频PES包开始播放目标音视频,这样,实现了从一个音视频分片的内部到另一个音视频分片的内部的跳转播放,从而避免了一直等待源音视频的当前分片文件下载导致的播放卡顿问题,保证了播放流畅性。
Description
技术领域
本发明涉及音视频播放技术领域,尤其涉及一种基于实时流传输HLS(http livestream)的音视频的跳转播放方法及装置。
背景技术
HLS(http live stream)协议是苹果公司提出的一个时实流传输协议,基本思想就是服务器将同一个音视频分成短时长的若干片段(一般为10秒),其中每一个片段都会对应有若干不同分辨率等级的分片,用以适应不同的网络状况。当网络状况比较好时,播放器可以请求一个较高分辨率的分片,反之则请求一个较低分辨率的分片,从而使音视频的点播能够动态适应网络状况,提高用户体验。
接收到一个音视频的点播指示后,之前的启播方式如下:以先下载再播放的方式启播:首先下载准备好一个以上完整的分片,再开始播放;在下载一个高分辨率的分片的过程中,若网络状况变差,就丢弃正在下载的高分辨率的分片,重新请求一个低分辨率的分片。该方式中,不会存在播放卡顿的问题,保证了播放流畅性,但是会存在启播速度慢的问题。
为了解决启播速度慢的问题,现有技术中还可以以边下载边播放的方式启播,具体的:不等分片下载完整就通知解码器解码以便开始播放;正在播放的高分辨率的分片没有下载完整的时候,若网络状况变差,应当请求下载一个低分辨率的分片,但是正在下载的高分辨率的分片正在播放过程中,目前该方式中,只能等到当前的高分辨率的分片播放完毕,也就是说,将高分辨率的分片下载完之后,才能申请一个低分辨率的分片,这时,因网络状况变差高分辨率的分片下载超时造成解码器欠载,导致出现播放卡顿问题。因而,该方式中,虽然保证了启播速度,但是播放流畅性变差了。
因此,为保证启播速度,现有技术中存在因网络状况变差导致的音视频的播放流畅性变差的问题。
发明内容
本发明实施例的目的是提供一种基于HLS协议的音视频的跳转播放方法及装置,用于解决现有技术中存在的因网络状况变差导致的音视频的播放流畅性变差的问题。
本发明实施例的目的是通过以下技术方案实现的:
一种基于实时流传输HLS协议的音视频的跳转播放方法,该方法包括:
在源音视频的当前分片文件下载过程中,若检测到当前的网络带宽小于预设值,则下载与所述源音频的当前分片文件相应的目标音视频的分片文件,所述目标音视频的分片文件对应的分辨率低于所述源音视频的分片文件对应的分辨率;
基于所述源音视频的当前分片文件,确定一个待解码的源视频分组基本码流PES包作为连接视频PES包和在时间上最接近所述连接视频PES包的待解码的源音频PES包作为连接音频PES包;以及基于所述目标音视频的分片文件,确定在时间上最接近所述连接视频PES包且为视频帧中关键帧的开头的目标视频PES包作为跳转视频PES包和在时间上最接近所述跳转视频PES包且为音频帧的开头的目标音频PES包作为跳转音频PES包;
从所述连接视频PES包和所述连接音频PES包结束解码源音视频的当前分片文件,并从所述跳转视频PES包和所述跳转音频PES包开始解码并播放目标音视频的分片文件。
一种基于HLS协议的音视频的跳转播放装置,该装置包括:
音视频下载模块,用于:在源音视频的当前分片文件下载过程中,若检测到当前的网络带宽小于预设值,则下载与所述源音频的当前分片文件相应的目标音视频的分片文件,所述目标音视频的分片文件对应的分辨率低于所述源音视频的分片文件对应的分辨率;
连接包和跳转包确定模块,用于:基于所述源音视频的当前分片文件,确定一个待解码的源视频PES包作为连接视频PES包和在时间上最接近所述连接视频PES包的待解码的源音频PES包作为连接音频PES包;以及基于所述目标音视频的分片文件,确定在时间上最接近所述连接视频PES包且为视频帧中关键帧的开头的目标视频PES包作为跳转视频PES包和在时间上最接近所述跳转视频PES包且为音频帧的开头的目标音频PES包作为跳转音频PES包;
解码播放模块,用于:从所述连接视频PES包和所述连接音频PES包结束解码所述源音视频的当前分片文件,并从所述跳转视频PES包和所述跳转音频PES包开始解码并播放所述目标音视频的分片文件。
本发明实施例的有益效果如下:
本发明实施例提供的一种基于HLS协议的音视频的播放方法及装置中,由于在源音视频的当前分片文件下载过程中,若当前的网络带宽小于预设值,即网络状况变差时,并非一直等待源音视频的当前分片文件下载,而是去下载相应的低分辨率的目标音视频的分片文件,并且基于时间标准,从源音视频的当前分片文件中对应的待解码的连接视频PES包和连接音频PES包结束播放源音视频,从目标音视频的分片文件对应的跳转视频PES包和跳转音频PES包开始播放目标音视频,这样,实现了从一个音视频分片的内部到另一个音视频分片的内部的跳转播放,从而避免了一直等待源音视频的当前分片文件下载导致的播放卡顿问题,保证了播放流畅性。又由于跳转视频PES包是关键帧的开头,跳转音频PES包是音频帧的开头,可保证目标音视频的分片文件正常解码,避免产生马赛克,也保证了播放流畅性。
附图说明
图1为本发明实施例提供的一种基于HLS协议的音视频的播放方法流程图之一;
图2为本发明实施例提供的一种查找跳转视频PES包和跳转音频PES包的方法流程图;
图3为本发明实施例提供的一种连接音频PES包的方法流程图;
图4为本发明实施例提供的一种重新查找连接视频PES包和连接音频PES包的方法流程图;
图5为本发明实施例提供的一种基于HLS协议的音视频的播放方法流程图之二;
图6为本发明实施例提供的一种基于HLS协议的音视频的播放装置示意图。
具体实施方式
下面结合附图和实施例对本发明提供的一种基于HLS协议的音视频的播放方法及装置进行更详细地说明。
本发明实施例提供一种基于HLS协议的音视频的跳转播放方法,如图1所示,该方法至少包括如下步骤:
步骤110、在源音视频的当前分片文件下载过程中,若检测到当前的网络带宽小于预设值,则下载与源音频的当前分片文件相应的目标音视频的分片文件,目标音视频的分片文件对应的分辨率低于源音视频的分片文件对应的分辨率。
其中,源音视频的当前分片文件与目标音视频的分片文件对应于音视频的同一片段。
由于音视频的码流为一个个传送(Transport Stream,TS)包文件组成的码流,因而本发明实施例中,音视频的分片文件就是分片对应的一个个TS包文件。其中,一个TS包文件由包头以及分组基本码流PES(Packet Elementary Stream,PES)打包得到。其中,一个PES包由包头和基本码流ES(Elementary Stream,ES)打包得到。
其中,源音视频是跳转播放之前的音视频;相应的,源音视频的分片文件对应的视频PES包称为源视频PES包,对应的音频PES包称为源音频PES包。
其中,目标音视频是跳转播放之后的音视频;相应的,目标音视频的分片文件对应的视频PES包称为目标视频PES包,对应的音频PES包称为目标音频PES包。
步骤120、基于源音视频的当前分片文件,确定一个待解码的源视频PES包作为连接视频PES包和在时间上最接近连接视频PES包的待解码的源音频PES包作为连接音频PES包;以及基于目标音视频的分片文件,确定在时间上最接近连接视频PES包且为视频帧中关键帧的开头的目标视频PES包作为跳转视频PES包和在时间上最接近跳转视频PES包且为音频帧的开头的目标音频PES包作为跳转音频PES包。
其中,为了保证音频和视频同步,连接音频PES包在时间上最接近连接视频PES包,跳转音频PES包在时间上最接近跳转视频PES包。
一般,视频中的视频帧的类型包括关键帧(即I帧)、双向预测帧(即B帧)、前向预测帧(即P帧),关键帧是双向预测帧、前向预测帧的参考帧,因而有关键帧,相应的双向预测帧、前向预测帧才能正确解码。并且,一个视频帧可能打包成多个视频PES包。因而,本发明实施例中,为了保证正确解码,跳转视频PES包为视频帧中关键帧的开头。一个音频帧可能打包成多个音频PES包,同样,本发明实施例中,为了正确解码,跳转音频PES包为音频帧的开头。
步骤130、从连接视频PES包和连接音频PES包结束解码源音视频的当前分片文件,并从跳转视频PES包和跳转音频PES包开始解码并播放目标音视频的分片文件。
本发明实施例中,由于在源音视频的当前分片文件下载过程中,若当前的网络带宽小于预设值,即网络状况变差时,并非一直等待源音视频的当前分片文件下载,而是去下载相应的低分辨率的目标音视频的分片文件,并且基于时间标准,从源音视频的当前分片文件中对应的待解码的连接视频PES包和连接音频PES包结束播放源音视频,从目标音视频的分片文件对应的跳转视频PES包和跳转音频PES包开始播放目标音视频,这样,实现了从一个音视频分片的内部到另一个音视频分片的内部的跳转播放,从而避免了一直等待源音视频的当前分片文件下载导致的播放卡顿问题,保证了播放流畅性。又由于跳转视频PES包是关键帧的开头,跳转音频PES包是音频帧的开头,可保证目标音视频的分片文件正常解码,避免产生马赛克,也保证了播放流畅性。
若本发明的方案应用在采用边下载边播放的启播方式中,在网络状况变差时,就无需等待源音视频的分片文件下载完整,而是直接从源音视频的分片内部跳转到目标音视频的分片内部播放,避免了因网络状况变差导致的播放卡顿问题,从而保证了播放流畅性,进而兼顾了启播速度和播放流畅性。
需要说明的是,本发明实施例中的音视频分片内部的跳转播放的方案,除了可以应用于上述采用边下载边播放的启播方式这种场景中,因网络状况变差导致的播放流畅性较差的问题,也可以应用于其它可以通过音视频分片内部的跳转播放来保证播放流畅性的场景。
本发明实施例中,在完成音视频分片内部的播放跳转后,未下载完成的源音视频的分片文件可以放弃下载。
在实现本发明的过程中,发明人发现本发明实施例的方案中存在如下问题:在源视频的当前分片文件中,确定的连接视频PES包对应的时间与跳转视频PES包对应的时间之间还存在其它的源视频PES包,如果连接视频PES包与跳转视频PES包之间的时间差较小,直接从该连接视频PES包到跳转视频PES包进行跳转,不会影响观看者的视觉感受,如果该时间差较大,画面就会有明显的跳跃感,导致影响画面显示效果。为了解决这一问题,发明人进一步提出了如下方案:
基于目标音视频的分片文件,确定在时间上最接近连接视频PES包且为视频帧中关键帧的开头的目标视频PES包作为跳转视频PES包和在时间上最接近跳转视频PES包且为音频帧的开头的目标音频PES包作为跳转音频PES包之后,从连接视频PES包和连接音频PES包结束解码源音视频的当前分片文件,并从跳转视频PES包和跳转音频PES包开始解码并播放目标音视频的分片文件之前,本发明实施例的方法还包括:
判断连接视频PES包和跳转视频PES包之间的时间差是否小于预设阈值;
如果不小于,基于源音视频的当前分片文件,重新查找与跳转视频PES包之间的时间差小于预设阈值的源视频PES包作为连接视频PES包和在时间上最接近重新查找到的连接视频PES包的源音频PES包作为连接音频PES包。
其中,预设阈值可以但不限于是不会影响画面显示效果的连接视频PES包与跳转视频PES包之间的最大时间差。
本实施例中,由于以跳转视频PES包的时间为准,重新查找了一个与跳转视频PES包的时间差小于预设阈值的连接视频PES包,以及相应的连接音频PES包,在跳转播放时,就是利用的重新查找的连接视频PES包和连接音频PES包,这样,画面就不会有跳跃感,保证了画面显示效果。
具体实施时,较佳地,基于源音视频的当前分片文件,确定一个待解码的源视频PES包作为连接视频PES包之前,本发明实施例提供的跳转播放方法还包括:对下载的源音视频的当前分片文件进行解析,得到按时间先后顺序排列的源视频PES包队列和源音频PES包队列,从源视频PES包队列中获取预定数量的待解码的源视频PES包加入到视频PES包解码队列以便解码,以及从源音频PES包队列中获取预定数量的待解码的源音频PES包加入到音频PES包解码队列以便解码。相应的,上述步骤120中,基于源音视频的当前分片文件,确定一个待解码的源视频PES包作为连接视频PES包,具体可以是:从视频PES包解码队列中,选择一个源视频PES包,作为连接视频PES包。
具体实施时,由于为音频帧的开头的音频PES包的包头,和为视频帧的开头的视频PES包的包头中分别包含指示时间的时间标签,因而,较佳地,连接视频PES包为视频帧的开头;连接音频PES包为音频帧的开头。
本实施例中,可以根据时间标签指示的时间,进行连接视频PES包、连接音频PES包、跳转视频PES包与跳转音频PES包的查找,更加方便。
在上述实施例的基础上,较佳地,基于目标音视频的分片文件,确定在时间上最接近连接视频PES包且为视频帧中关键帧的开头的目标视频PES包作为跳转视频PES包和在时间上最接近跳转视频PES包且为音频帧的开头的目标音频PES包作为跳转音频PES包之前,对下载的目标音视频的分片文件进行解析,得到按时间先后顺序排列的目标视频PES包队列和目标音频PES包队列。相应的,上述步骤120中,基于目标音视频的分片文件,确定在时间上最接近连接视频PES包且为视频帧中关键帧的开头的目标视频PES包作为跳转视频PES包和在时间上最接近跳转视频PES包且为音频帧的开头的目标音频PES包作为跳转音频PES包,如图2所示,具体实现方式可以是:
步骤210、获取连接PES包的包头中的时间标签。
步骤220、从目标视频PES包队列中查找出为关键帧的开头的各目标视频PES包,并获取各目标视频PES包的包头中的时间标签。
步骤230、根据连接PES包的包头中的时间标签指示的时间,以及步骤220中获取的各目标视频PES包的包头中的时间标签指示的时间,查找跳转视频PES包;跳转视频PES包的包头中的时间标签指示的时间最接近且晚于连接PES包的包头中的时间标签指示的时间。
步骤240、从目标音频PES包队列中查找出为音频帧的开头的各目标音频PES包,并获取各目标音频PES包的包头中的时间标签。
步骤250、根据跳转视频PES包的包头中的时间标签指示的时间,以及步骤240中获取的各目标音频PES包的包头中的时间标签指示的时间,查找跳转音频PES包;跳转音频PES包的包头中的时间标签指示的时间最接近跳转视频PES包的包头中的时间标签指示的时间。
该步骤中,查找跳转音频PES包的方式有多种,例如可以采用递归方式的查找,这样,可以快速查找;也可以通过计算获取的为音频帧的开头的各目标音频PES包的包头中的时间标签指示的时间,与跳转视频PES包的包头中的时间标签指示的时间的时间差值,选择时间差值最小的一个目标音频PES包。
上述步骤220中,从目标视频PES包队列中查找出为关键帧的开头的各目标视频PES包,并获取各目标视频PES包的包头中的时间标签,具体实现方式可以是:依次判断目标视频PES包队列中的各目标视频PES包是否为关键帧的开头;如果是,将该目标视频PES包的包头中的时间标签按时间先后顺序加入到关键帧索引队列。相应的,上述步骤230中,根据连接PES包的包头中的时间标签指示的时间,以及获取的各目标视频PES包的包头中的时间标签指示的时间,查找跳转视频PES包,具体可以是:按照时间先后顺序依次判断关键帧索引队列中的各目标视频PES包的包头中的时间标签指示的时间,是否晚于连接PES包的包头中的时间标签指示的时间;直到出现判断结果为是的目标视频PES包,将该目标视频PES包作为跳转视频PES包。
基于以上相关实施例,上述步骤120中,确定在时间上最接近连接视频PES包的待解码的源音频PES包作为连接音频PES包,其实现方式有多种,如图3所示,其中一种实现方式可以是:
步骤310、获取连接视频PES包的包头中的时间标签;
步骤320、从源音频PES包队列中查找出为音频帧开头的各源音频PES包,并获取各源音频PES包的包头中的时间标签;
步骤330、根据连接视频PES包的包头中的时间标签指示的时间,以及步骤320获取的各源音频PES包的包头中的时间标签指示的时间,查找连接音频PES包;连接音频PES包的包头中的时间标签指示的时间最接近连接频PES包的包头中的时间标签指示的时间。
其中,查找连接音频PES包的方式有多种,例如可以采用递归方式的查找,这样,可以快速查找;也可以通过计算获取的为音频帧开头的各源音频PES包的包头中的时间标签指示的时间,与连接视频PES包的包头中的时间标签指示的时间的时间差值,选择时间差值最小的一个源视频PES包。
基于上述相关实施例,如果连接视频PES包和跳转视频PES包之间的时间差不小于预设阈值,需要重新查找连接视频PES包和连接音频PES包时,具体的,基于源音视频的当前分片文件,重新查找与跳转视频PES包之间的时间差小于预设阈值的源视频PES包作为连接视频PES包和在时间上最接近重新查找到的连接视频PES包的源音频PES包作为连接音频PES包,其步骤如图4所示:
步骤410、从源视频队列中查找出为视频帧的开头的各源视频PES包,并获取各源视频PES包的包头中的时间标签。
步骤420、根据跳转视频PES包中的时间标签指示的时间,以及步骤410中获取的各源视频PES包的包头中的时间标签指示的时间,重新查找连接视频PES包;重新查找的连接视频PES包的包头中的时间标签指示的时间最接近跳转视频PES包的包头中的时间标签指示的时间。
该步骤中,重新查找连接视频PES包的方式有多种,例如可以采用递归方式的查找,这样,可以快速查找;也可以通过计算获取的为视频帧的开头的各源视频PES包的包头中的时间标签指示的时间,与跳转视频PES包的包头中的时间标签指示的时间的时间差值,选择时间差值最小的一个源视频PES包。
步骤430、根据重新查找的跳转视频PES包的包头中的的时间标签指示的时间,以及步骤320中获取的各源音频PES包的包头中的时间标签指示的时间,重新查找连接音频PES包;重新查找的连接音频PES包的包头中的时间标签指示的时间最接近重新查找的连接视频PES包的包头中的时间标签指示的时间。
基于以上相关实施例,较佳地,上述步骤130从连接视频PES包和连接音频PES包结束解码播放源音视频的当前分片文件,并从跳转视频PES包和跳转音频PES包开始解码并播放目标音视频的分片文件,其中一种具体实现方式可以是:清除视频PES包解码队列中连接视频PES包之后的源视频PES包,并在连接视频PES包后加入跳转视频PES包及其之后的目标视频PES包,以及清除音频PES包解码队列中连接音频PES包之后的源音频PES包,并在连接音频PES包后加入成跳转音频PES包及其之后的目标音频PES包,进行解码并播放。
较佳地,上述时间标签为显示时间标签(Presentation Time Stamp,PTS);或者时间标签为解码时间标签(Decoding Time Stamp,DTS)。具体实施时,既可以基于PTS也可以基于DTS,按照以上相关实施例的方式进行连接视频PES包、连接音频PES包、跳转音频PES包与跳转视频PES包的查找。
下面以时间标签为PTS为例,对本发明实施例提供的一种基于HLS协议的音视频的跳转播放方法进行更加详细地说明,如图5所示,本实施例中的流程如下:
在接收到一个音视频的点播指示后,步骤510、采用边下载边播放的方式对源音视频启播。
该步骤中,需要对下载的源音视频的分片文件进行解析,得到按时间先后顺序排列的源视频PES包队列和源音频PES包队列,从源视频PES包队列中获取预定数量的待解码的源视频PES包加入到视频PES包解码队列以便解码,以及从源音频PES包队列中获取预定数量的待解码的源音频PES包加入到音频PES包解码队列以便解码。解码之后就可以播放音视频的分片。
本实施例的场景中,在启播过程中,若当前的网络带宽小于预设值,认为网络状况变差。
步骤520、在源音视频的当前分片文件下载过程中,若检测到当前的网络带宽小于预设值,则下载与源音频的当前分片文件相应的目标音视频的分片文件,目标音视频的分片文件对应的分辨率低于源音视频的分片文件对应的分辨率,执行步骤530。
步骤530、对下载的目标音视频的分片文件进行解析,得到按时间先后顺序排列的目标视频PES包队列和目标音频PES包队列,执行步骤540。
步骤540、从视频PES包解码队列中,选择一个待解码的源视频PES包,作为连接视频PES包;该连接视频PES包为视频帧的开头;执行步骤550。
步骤550、获取连接视频PES包的包头中的PTS值;从源音频PES包队列中查找出为音频帧开头的各源音频PES包,并获取各源音频PES包的包头中的PTS值;执行步骤560。
该步骤中,查找出为音频帧开头的各源音频PES包时,针对源音频PES包队列中的每个源音频PES包:判断源音频PES包的包头中的帧开头标志位是否为1;
如果不是1,则认为该源音频PES包不是帧开头,不做处理;
如果是1,则认为该源音频PES包是帧开头,继续根据源音频PES包的包头中的PTS标志位判断是否包含有PTS值;
如果PTS标志位指示不包含PTS值,不做处理;
如果PTS标志位指示包含PTS值,获取其中的PTS值。
步骤560、根据连接视频PES包的包头中的PTS值指示的时间,以及步骤450中获取的各源音频PES包的包头中的PTS值指示的时间,查找连接音频PES包;连接音频PES包的包头中的PTS值指示的时间最接近连接频PES包的包头中的PTS值指示的时间;执行步骤570。
步骤570、依次判断目标视频PES包队列中的各目标视频PES包是否为关键帧开头;如果是,将该目标视频PES包的包头中的PTS值按时间先后顺序加入到关键帧索引队列;执行步骤580。
该步骤中,针对目标视频PES包队列中的每个目标视频PES包:判断目标视频PES包的包头中的帧开头标志位是否为1;
如果不是1,则认为该目标视频PES包不是帧开头,不做处理;
如果是1,则认为该目标视频PES包是帧开头,继续根据目标视频PES包的包头中的PTS标志位判断是否包含有PTS值;
如果PTS标志位指示不包含PTS值,不做处理;
如果PTS标志位指示包含PTS值,继续判断PES包中的ES包是否为关键帧;如果是,将该目标视频PES包的队列序号和其中的PTS值按时间先后顺序加入到关键帧索引队列,否则,不做处理。
步骤580、按照时间先后顺序依次判断关键帧索引队列中的各目标视频PES包的包头中的PTS值指示的时间,是否晚于连接视频PES包的包头中的PTS值指示的时间;直到出现判断结果为是的目标视频PES包,将该目标视频PES包作为跳转视频PES包;执行步骤590。
步骤590、从目标音频PES包队列中查找出为音频帧的开头的各目标音频PES包,并获取各目标音频PES包的包头中的PTS值;执行步骤5100。
该步骤中,针对目标音频PES包队列中的每个目标音频PES包:判断目标音频PES包的包头中的帧开头标志位是否为1;
如果不是1,则认为该目标音频PES包不是帧开头,不做处理;
如果是1,则认为该目标音频PES包是帧开头,继续根据目标音频PES包的包头中的PTS标志位判断是否包含有PTS值;
如果PTS标志位指示不包含PTS值,不做处理;
如果PTS标志位指示包含PTS值,获取其中的PTS值。
步骤5100、根据跳转视频PES包的包头中的PTS值指示的时间,以及步骤590中获取的目标音频PES包队列中各目标音频PES包的包头中的PTS值指示的时间,以递归方式查找跳转音频PES包;跳转音频PES包的包头中的PTS值指示的时间最接近跳转视频PES包的包头中的PTS值指示的时间;执行步骤5110。
步骤5110、判断连接视频PES包的PTS值指示的时间和跳转视频PES包的PTS值指示的时间之间的时间差是否小于预设阈值;如果是,执行步骤5150,否则,执行步骤5120。
步骤5120、从源视频队列中查找出为视频帧的开头的各源视频PES包,并获取各源视频PES包的包头中的PTS值;执行步骤5130。
该步骤的具体实施方式可参考步骤570。
步骤5130、根据跳转视频PES包中的PTS值指示的时间,以及步骤5120中获取的各源视频PES包的包头中的PTS值指示的时间,重新查找连接视频PES包;重新查找的连接视频PES包的包头中的PTS值指示的时间最接近跳转视频PES包的包头中的PTS值指示的时间;执行步骤5140。
具体的,通过计算获取的源视频队列中为视频帧的开头的各源视频PES包的包头中的PTS值指示的时间,与跳转视频PES包的包头中的PTS值指示的时间的时间差值,选择时间差值最小的一个源视频PES包。
步骤5140、根据重新查找的跳转视频PES包的包头中的PTS值指示的时间,以及步骤550中获取的各源音频PES包的包头中的PTS值指示的时间,以递归方式重新查找连接音频PES包;重新查找的连接音频PES包的包头中的PTS值指示的时间最接近重新查找的连接视频PES包的包头中的PTS值指示的时间;执行步骤5150。
步骤5150、清除视频PES包解码队列中连接视频PES包之后的源视频PES包,并在连接视频PES包后加入跳转视频PES包及其之后的目标视频PES包,以及清除音频PES包解码队列中连接音频PES包之后的源音频PES包,并在连接音频PES包后加入成跳转音频PES包及其之后的目标音频PES包,进行解码并播放。
本实施例中,由于采用边下载边播放的启播方式,保证了启播速度,又由于在网络状况变差时,实现了音视频分片内部的跳转播放,又保证了播放流畅性。
基于同样的发明构思,本发明实施例还提供一种基于HLS协议的音视频的跳转播放装置,如图6所示,该装置包括音视频下载模块601,连接包和跳转包确定模块602,解码播放模块603。其中:
音视频下载模块601,用于:在源音视频的当前分片文件下载过程中,若检测到当前的网络带宽小于预设值,则下载与源音频的当前分片文件相应的目标音视频的分片文件,目标音视频的分片文件对应的分辨率低于源音视频的分片文件对应的分辨率;
连接包和跳转包确定模块602,用于:基于源音视频的当前分片文件,确定一个待解码的源视频PES包作为连接视频PES包和在时间上最接近连接视频PES包的待解码的源音频PES包作为连接音频PES包;以及基于目标音视频的分片文件,确定在时间上最接近连接视频PES包且为视频帧中关键帧的开头的目标视频PES包作为跳转视频PES包和在时间上最接近跳转视频PES包且为音频帧的开头的目标音频PES包作为跳转音频PES包;
解码播放模块603,用于:从连接视频PES包和连接音频PES包结束解码播放源音视频的当前分片文件,并从跳转视频PES包和跳转音频PES包开始解码并播放目标音视频的分片文件。
本发明实施例中,由于在源音视频的当前分片文件下载过程中,若当前的网络带宽小于预设值,即网络状况变差时,并非一直等待源音视频的当前分片文件下载,而是去下载相应的低分辨率的目标音视频的分片文件,并且基于时间标准,从源音视频的当前分片文件中对应的待解码的连接视频PES包和连接音频PES包结束播放源音视频,从目标音视频的分片文件对应的跳转视频PES包和跳转音频PES包开始播放目标音视频,这样,实现了从一个音视频分片的内部到另一个音视频分片的内部的跳转播放,从而避免了一直等待源音视频的当前分片文件下载导致的播放卡顿问题,保证了播放流畅性。又由于跳转视频PES包是关键帧的开头,跳转音频PES包是音频帧的开头,可保证目标音视频的分片文件正常解码,避免产生马赛克,也保证了播放流畅性。
较佳地,连接包和跳转包确定模块还用于:
基于目标音视频的分片文件,确定在时间上最接近连接视频PES包且为视频帧中关键帧的开头的目标视频PES包作为跳转视频PES包和在时间上最接近跳转视频PES包且为音频帧的开头的目标音频PES包作为跳转音频PES包之后,从连接视频PES包和连接音频PES包结束播放源音视频,并从跳转视频PES包和跳转音频PES包开始播放目标音视频之前,判断连接视频PES包和跳转视频PES包之间的时间差是否小于预设阈值;
如果不小于,基于源音视频的当前分片文件,重新查找与跳转视频PES包之间的时间差小于预设阈值的源视频PES包作为连接视频PES包和在时间上最接近重新查找到的连接视频PES包的源音频PES包作为连接音频PES包。
较佳地,该装置还包括解析模块,用于:基于源音视频的当前分片文件,确定一个待解码的源视频PES包作为连接视频PES包之前,对下载的源音视频的当前分片文件进行解析,得到按时间先后顺序排列的源视频PES包队列和源音频PES包队列,从源视频PES包队列中获取预定数量的待解码的源视频PES包加入到视频PES包解码队列以便解码,以及从源音频PES包队列中获取预定数量的待解码的源音频PES包加入到音频PES包解码队列以便解码;
基于源音视频的当前分片文件,确定一个待解码的源视频PES包作为连接视频PES包时,连接包和跳转包确定模块,具体用于:
从视频PES包解码队列中,选择一个源视频PES包,作为连接视频PES包。
较佳地,解析模块还用于:
基于目标音视频的分片文件,确定在时间上最接近连接视频PES包且为视频帧中关键帧的开头的目标视频PES包作为跳转视频PES包和在时间上最接近跳转视频PES包且为音频帧的开头的目标音频PES包作为跳转音频PES包之前,对下载的目标音视频的分片文件进行解析,得到按时间先后顺序排列的目标视频PES包队列和目标音频PES包队列;
基于目标音视频的分片文件,确定在时间上最接近连接视频PES包且为视频帧中关键帧的开头的目标视频PES包作为跳转视频PES包和在时间上最接近跳转视频PES包且为音频帧的开头的目标音频PES包作为跳转音频PES包时,连接包和跳转包确定模块,具体用于:
获取连接PES包的包头中的时间标签;
从目标视频PES包队列中查找出为关键帧的开头的各目标视频PES包,并获取各目标视频PES包的包头中的时间标签;
根据连接PES包的包头中的时间标签指示的时间,以及获取的各目标视频PES包的包头中的时间标签指示的时间,查找跳转视频PES包;跳转视频PES包的包头中的时间标签指示的时间最接近且晚于连接PES包的包头中的时间标签指示的时间;
从目标音频PES包队列中查找出为音频帧的开头的各目标音频PES包,并获取各目标音频PES包的包头中的时间标签;
根据跳转视频PES包的包头中的时间标签指示的时间,以及获取的各目标音频PES包的包头中的时间标签指示的时间,查找跳转音频PES包;跳转音频PES包的包头中的时间标签指示的时间最接近跳转视频PES包的包头中的时间标签指示的时间。
较佳地,从目标视频PES包队列中查找出为关键帧的开头的各目标视频PES包,并获取各目标视频PES包的包头中的时间标签时,连接包和跳转包确定模块,具体用于:
依次判断目标视频PES包队列中的各目标视频PES包是否为关键帧的开头;如果是,将该目标视频PES包的包头中的时间标签按时间先后顺序加入到关键帧索引队列;
根据连接PES包的包头中的时间标签指示的时间,以及获取的各目标视频PES包的包头中的时间标签指示的时间,查找跳转视频PES包,包括:
按照时间先后顺序依次判断关键帧索引队列中的各目标视频PES包的包头中的时间标签指示的时间,是否晚于连接PES包的包头中的时间标签指示的时间;直到出现判断结果为是的目标视频PES包,将该目标视频PES包作为跳转视频PES包。
较佳地,确定在时间上最接近连接视频PES包的待解码的源音频PES包作为连接音频PES包时,连接包和跳转包确定模块,具体用于:
获取连接视频PES包的包头中的时间标签;
从源音频PES包队列中查找出为音频帧开头的各源音频PES包,并获取各源音频PES包的包头中的时间标签;
根据连接视频PES包的包头中的时间标签指示的时间,以及获取的各源音频PES包的包头中的时间标签指示的时间,查找连接音频PES包;连接音频PES包的包头中的时间标签指示的时间最接近连接频PES包的包头中的时间标签指示的时间。
较佳地,基于源音视频的当前分片文件,重新查找与跳转视频PES包之间的时间差小于预设阈值的源视频PES包作为连接视频PES包和在时间上最接近重新查找到的连接视频PES包的源音频PES包作为连接音频PES包时,连接包和跳转包确定模块,具体用于:
从源视频队列中查找出为视频帧的开头的各源视频PES包,并获取各源视频PES包的包头中的时间标签;
根据跳转视频PES包中的时间标签指示的时间,以及获取的各源视频PES包的包头中的时间标签指示的时间,重新查找连接视频PES包;重新查找的连接视频PES包的包头中的时间标签指示的时间最接近跳转视频PES包的包头中的时间标签指示的时间;
根据重新查找的连接视频PES包的包头中的的时间标签指示的时间,以及获取的各源音频PES包的包头中的时间标签指示的时间,重新查找连接音频PES包;重新查找的连接音频PES包的包头中的时间标签指示的时间最接近重新查找的连接视频PES包的包头中的时间标签指示的时间。
较佳地,解码播放模块,具体用于:
清除视频PES包解码队列中连接视频PES包之后的源视频PES包,并在连接视频PES包后加入跳转视频PES包及其之后的目标视频PES包,以及清除音频PES包解码队列中连接音频PES包之后的源音频PES包,并在连接音频PES包后加入成跳转音频PES包及其之后的目标音频PES包,进行解码并播放。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程PES处理设备的处理器以产生一个机器,使得通过计算机或其他可编程PES处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程PES处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程PES处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种基于实时流传输HLS协议的音视频的跳转播放方法,其特征在于,该方法包括:
在源音视频的当前分片文件下载过程中,若检测到当前的网络带宽小于预设值,则下载与所述源音频的当前分片文件相应的目标音视频的分片文件,所述目标音视频的分片文件对应的分辨率低于所述源音视频的分片文件对应的分辨率;
基于所述源音视频的当前分片文件,确定一个待解码的源视频分组基本码流PES包作为连接视频PES包和在时间上最接近所述连接视频PES包的待解码的源音频PES包作为连接音频PES包;以及基于所述目标音视频的分片文件,确定在时间上最接近所述连接视频PES包且为视频帧中关键帧的开头的目标视频PES包作为跳转视频PES包和在时间上最接近所述跳转视频PES包且为音频帧的开头的目标音频PES包作为跳转音频PES包;
从所述连接视频PES包和所述连接音频PES包结束解码所述源音视频的当前分片文件,并从所述跳转视频PES包和所述跳转音频PES包开始解码并播放所述目标音视频的分片文件。
2.根据权利要求1所述的方法,其特征在于,基于所述目标音视频的分片文件,确定在时间上最接近所述连接视频PES包且为视频帧中关键帧的开头的目标视频PES包作为跳转视频PES包和在时间上最接近所述跳转视频PES包且为音频帧的开头的目标音频PES包作为跳转音频PES包之后,从所述连接视频PES包和所述连接音频PES包结束解码所述源音视频的当前分片文件,并从所述跳转视频PES包和所述跳转音频PES包开始解码并播放所述目标音视频的分片文件之前,该方法还包括:
判断所述连接视频PES包和所述跳转视频PES包之间的时间差是否小于预设阈值;
如果不小于,基于所述源音视频的分片文件,重新查找与所述跳转视频PES包之间的时间差小于所述预设阈值的源视频PES包作为所述连接视频PES包和在时间上最接近重新查找到的所述连接视频PES包的源音频PES包作为连接音频PES包。
3.根据权利要求2所述的方法,其特征在于,基于所述源音视频的当前分片文件,确定一个待解码的源视频PES包作为连接视频PES包之前,该方法还包括:
对下载的所述源音视频的当前分片文件进行解析,得到按时间先后顺序排列的源视频PES包队列和源音频PES包队列,从所述源视频PES包队列中获取预定数量的待解码的源视频PES包加入到视频PES包解码队列以便解码,以及从所述源音频PES包队列中获取预定数量的待解码的源音频PES包加入到音频PES包解码队列以便解码;
基于所述源音视频的当前分片文件,确定一个待解码的源视频PES包作为连接视频PES包,包括:
从所述视频PES包解码队列中,选择一个源视频PES包,作为连接视频PES包。
4.根据权利要求3所述的方法,其特征在于,基于所述目标音视频的分片文件,确定在时间上最接近所述连接视频PES包且为视频帧中关键帧的开头的目标视频PES包作为跳转视频PES包和在时间上最接近所述跳转视频PES包且为音频帧的开头的目标音频PES包作为跳转音频PES包之前,该方法还包括:
对下载的所述目标音视频的分片文件进行解析,得到按时间先后顺序排列的目标视频PES包队列和目标音频PES包队列;
基于所述目标音视频的分片文件,确定在时间上最接近所述连接视频PES包且为视频帧中关键帧的开头的目标视频PES包作为跳转视频PES包和在时间上最接近所述跳转视频PES包且为音频帧的开头的目标音频PES包作为跳转音频PES包,包括:
获取所述连接PES包的包头中的时间标签;
从所述目标视频PES包队列中查找出为关键帧的开头的各目标视频PES包,并获取各目标视频PES包的包头中的时间标签;
根据所述连接PES包的包头中的时间标签指示的时间,以及获取的各目标视频PES包的包头中的时间标签指示的时间,查找所述跳转视频PES包;所述跳转视频PES包的包头中的时间标签指示的时间最接近且晚于所述连接PES包的包头中的时间标签指示的时间;
从所述目标音频PES包队列中查找出为音频帧的开头的各目标音频PES包,并获取各目标音频PES包的包头中的时间标签;
根据所述跳转视频PES包的包头中的时间标签指示的时间,以及获取的各目标音频PES包的包头中的时间标签指示的时间,查找所述跳转音频PES包;所述跳转音频PES包的包头中的时间标签指示的时间最接近所述跳转视频PES包的包头中的时间标签指示的时间。
5.根据权利要求4所述的方法,其特征在于,从所述目标视频PES包队列中查找出为关键帧的开头的各目标视频PES包,并获取各目标视频PES包的包头中的时间标签,包括:
依次判断所述目标视频PES包队列中的各目标视频PES包是否为关键帧的开头;如果是,将该目标视频PES包的包头中的时间标签按时间先后顺序加入到关键帧索引队列;
根据所述连接PES包的包头中的时间标签指示的时间,以及获取的各目标视频PES包的包头中的时间标签指示的时间,查找所述跳转视频PES包,包括:
按照时间先后顺序依次判断所述关键帧索引队列中的各目标视频PES包的包头中的时间标签指示的时间,是否晚于所述连接PES包的包头中的时间标签指示的时间;直到出现判断结果为是的目标视频PES包,将该目标视频PES包作为所述跳转视频PES包。
6.根据权利要求5所述的方法,其特征在于,确定在时间上最接近所述连接视频PES包的待解码的源音频PES包作为连接音频PES包,包括:
获取所述连接视频PES包的包头中的时间标签;
从所述源音频PES包队列中查找出为音频帧开头的各源音频PES包,并获取各源音频PES包的包头中的时间标签;
根据所述连接视频PES包的包头中的时间标签指示的时间,以及获取的各源音频PES包的包头中的时间标签指示的时间,查找所述连接音频PES包;所述连接音频PES包的包头中的时间标签指示的时间最接近所述连接频PES包的包头中的时间标签指示的时间。
7.根据权利要求6所述的方法,其特征在于,基于所述源音视频的当前分片文件,重新查找与所述跳转视频PES包之间的时间差小于所述预设阈值的源视频PES包作为所述连接视频PES包和在时间上最接近重新查找到的所述连接视频PES包的源音频PES包作为连接音频PES包,包括:
从所述源视频队列中查找出为视频帧的开头的各源视频PES包,并获取各源视频PES包的包头中的时间标签;
根据所述跳转视频PES包中的时间标签指示的时间,以及获取的各源视频PES包的包头中的时间标签指示的时间,重新查找所述连接视频PES包;重新查找的所述连接视频PES包的包头中的时间标签指示的时间最接近所述跳转视频PES包的包头中的时间标签指示的时间;
根据重新查找的所述连接视频PES包的包头中的的时间标签指示的时间,以及获取的各源音频PES包的包头中的时间标签指示的时间,重新查找所述连接音频PES包;重新查找的所述连接音频PES包的包头中的时间标签指示的时间最接近重新查找的所述连接视频PES包的包头中的时间标签指示的时间。
8.根据权利要求7所述的方法,其特征在于,从所述连接视频PES包和所述连接音频PES包结束解码所述源音视频的当前分片文件,并从所述跳转视频PES包和所述跳转音频PES包开始解码并播放所述目标音视频的分片文件,包括:
清除所述视频PES包解码队列中所述连接视频PES包之后的源视频PES包,并在所述连接视频PES包后加入所述跳转视频PES包及其之后的目标视频PES包,以及清除所述音频PES包解码队列中所述连接音频PES包之后的源音频PES包,并在所述连接音频PES包后加入成所述跳转音频PES包及其之后的目标音频PES包,进行解码并播放。
9.一种基于HLS协议的音视频的跳转播放装置,其特征在于,该装置包括:
音视频下载模块,用于:在源音视频的当前分片文件下载过程中,若检测到当前的网络带宽小于预设值,则下载与所述源音频的当前分片文件相应的目标音视频的分片文件,所述目标音视频的分片文件对应的分辨率低于所述源音视频的分片文件对应的分辨率;
连接包和跳转包确定模块,用于:基于所述源音视频的当前分片文件,确定一个待解码的源视频PES包作为连接视频PES包和在时间上最接近所述连接视频PES包的待解码的源音频PES包作为连接音频PES包;以及基于所述目标音视频的分片文件,确定在时间上最接近所述连接视频PES包且为视频帧中关键帧的开头的目标视频PES包作为跳转视频PES包和在时间上最接近所述跳转视频PES包且为音频帧的开头的目标音频PES包作为跳转音频PES包;
解码播放模块,用于:从所述连接视频PES包和所述连接音频PES包结束解码所述源音视频的当前分片文件,并从所述跳转视频PES包和所述跳转音频PES包开始解码并播放所述目标音视频的分片文件。
10.根据权利要求9所述的装置,其特征在于,所述连接包和跳转包确定模块还用于:
基于所述目标音视频的分片文件,确定在时间上最接近所述连接视频PES包且为视频帧中关键帧的开头的目标视频PES包作为跳转视频PES包和在时间上最接近所述跳转视频PES包且为音频帧的开头的目标音频PES包作为跳转音频PES包之后,从所述连接视频PES包和所述连接音频PES包结束解码所述源音视频的分片文件,并从所述跳转视频PES包和所述跳转音频PES包开始解码并播放所述目标音视频的分片文件之前,判断所述连接视频PES包和所述跳转视频PES包之间的时间差是否小于预设阈值;
如果不小于,基于所述源音视频的当前分片文件,重新查找与所述跳转视频PES包之间的时间差小于所述预设阈值的源视频PES包作为所述连接视频PES包和在时间上最接近重新查找到的所述连接视频PES包的源音频PES包作为连接音频PES包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610792229.2A CN106331840B (zh) | 2016-08-31 | 2016-08-31 | 一种基于hls协议的音视频的跳转播放方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610792229.2A CN106331840B (zh) | 2016-08-31 | 2016-08-31 | 一种基于hls协议的音视频的跳转播放方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106331840A true CN106331840A (zh) | 2017-01-11 |
CN106331840B CN106331840B (zh) | 2019-05-21 |
Family
ID=57789498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610792229.2A Active CN106331840B (zh) | 2016-08-31 | 2016-08-31 | 一种基于hls协议的音视频的跳转播放方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106331840B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737908A (zh) * | 2018-05-21 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 一种媒体播放方法、装置及存储介质 |
CN109413443A (zh) * | 2017-08-16 | 2019-03-01 | 中国移动通信有限公司研究院 | 一种时移功能的实现方法及装置 |
WO2019128667A1 (zh) * | 2017-12-29 | 2019-07-04 | 中兴通讯股份有限公司 | 视频播放方法以及终端、服务器及存储介质 |
CN111031354A (zh) * | 2019-12-09 | 2020-04-17 | 腾讯科技(深圳)有限公司 | 一种多媒体播放方法、装置及存储介质 |
CN113038245A (zh) * | 2019-12-24 | 2021-06-25 | 瑞昱半导体股份有限公司 | 多媒体内容播放装置与多媒体内容播放方法 |
CN114650438A (zh) * | 2020-12-17 | 2022-06-21 | 阿里巴巴集团控股有限公司 | 视频播放数据的处理方法、装置及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103313125A (zh) * | 2013-05-03 | 2013-09-18 | 上海东方明珠广播电视研究发展有限公司 | 基于传输流的双路数字电视信号无缝切换方法及系统 |
CN103491430A (zh) * | 2012-06-12 | 2014-01-01 | 联想(北京)有限公司 | 流媒体数据处理方法和电子设备 |
US20140059180A1 (en) * | 2012-08-22 | 2014-02-27 | Futurewei Technologies, Inc. | Carriage of ISO-BMFF Event Boxes in an MPEG-2 Transport Stream |
CN103648011A (zh) * | 2013-11-29 | 2014-03-19 | 乐视致新电子科技(天津)有限公司 | 一种基于hls协议的音视频同步装置和方法 |
CN105898500A (zh) * | 2015-12-22 | 2016-08-24 | 乐视云计算有限公司 | 网络视频播放方法及装置 |
-
2016
- 2016-08-31 CN CN201610792229.2A patent/CN106331840B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491430A (zh) * | 2012-06-12 | 2014-01-01 | 联想(北京)有限公司 | 流媒体数据处理方法和电子设备 |
US20140059180A1 (en) * | 2012-08-22 | 2014-02-27 | Futurewei Technologies, Inc. | Carriage of ISO-BMFF Event Boxes in an MPEG-2 Transport Stream |
CN103313125A (zh) * | 2013-05-03 | 2013-09-18 | 上海东方明珠广播电视研究发展有限公司 | 基于传输流的双路数字电视信号无缝切换方法及系统 |
CN103648011A (zh) * | 2013-11-29 | 2014-03-19 | 乐视致新电子科技(天津)有限公司 | 一种基于hls协议的音视频同步装置和方法 |
CN105898500A (zh) * | 2015-12-22 | 2016-08-24 | 乐视云计算有限公司 | 网络视频播放方法及装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109413443A (zh) * | 2017-08-16 | 2019-03-01 | 中国移动通信有限公司研究院 | 一种时移功能的实现方法及装置 |
CN109413443B (zh) * | 2017-08-16 | 2021-03-16 | 中国移动通信有限公司研究院 | 一种时移功能的实现方法及装置 |
WO2019128667A1 (zh) * | 2017-12-29 | 2019-07-04 | 中兴通讯股份有限公司 | 视频播放方法以及终端、服务器及存储介质 |
CN108737908A (zh) * | 2018-05-21 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 一种媒体播放方法、装置及存储介质 |
CN108737908B (zh) * | 2018-05-21 | 2021-11-30 | 腾讯科技(深圳)有限公司 | 一种媒体播放方法、装置及存储介质 |
CN111031354A (zh) * | 2019-12-09 | 2020-04-17 | 腾讯科技(深圳)有限公司 | 一种多媒体播放方法、装置及存储介质 |
CN113038245A (zh) * | 2019-12-24 | 2021-06-25 | 瑞昱半导体股份有限公司 | 多媒体内容播放装置与多媒体内容播放方法 |
CN114650438A (zh) * | 2020-12-17 | 2022-06-21 | 阿里巴巴集团控股有限公司 | 视频播放数据的处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106331840B (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106331840A (zh) | 一种基于hls协议的音视频的跳转播放方法及装置 | |
CN106658226B (zh) | 一种播放方法及装置 | |
CA2917290C (en) | Method and apparatus for transmitting/receiving media broadcasting signal in real time transport protocol-based broadcasting system | |
EP2665261A1 (en) | Content reproduction device, content reproduction method, delivery system, content reproduction program, recording medium, and data structure | |
CN105191248B (zh) | 用于发送数据和接收数据的方法和装置 | |
US20030035648A1 (en) | Navigation for MPEG streams | |
EP3026898B1 (en) | Storage method, regeneration method, storage device, and regeneration device | |
CN105916058B (zh) | 一种流媒体缓冲播放方法、装置及显示设备 | |
CN108063970A (zh) | 一种处理直播流的方法和装置 | |
WO2018041043A1 (zh) | 基于流媒体丢包二次重传系统及其方法 | |
EP3313084B1 (en) | Reception apparatus, transmission apparatus, and data processing method | |
CN108174280B (zh) | 一种音视频在线播放方法及系统 | |
CN107251521B (zh) | 用于在通信系统中发送和接收媒体信息的方法 | |
CN105025351A (zh) | 流媒体播放器缓冲的方法及装置 | |
US9319446B2 (en) | System and method for transport stream sync byte detection with transport stream having multiple emulated sync bytes | |
CN103491430B (zh) | 流媒体数据处理方法和电子设备 | |
CN105898538A (zh) | 用于安卓平台的播放方法、装置及移动终端设备 | |
CN104918108A (zh) | 一种基于hls协议的视频精确定位装置及方法 | |
JP2010539834A (ja) | メディアデータコンテナとメタデータコンテナとを有するファイルを格納し読み取るための装置及び方法 | |
CN105812847A (zh) | Hls视频直播方法、服务器及系统 | |
CN111866526B (zh) | 一种直播业务处理方法和装置 | |
CN105530534B (zh) | 一种视频剪辑的方法和装置 | |
WO2017092433A1 (zh) | 视频实时播放方法及装置 | |
CN106331763A (zh) | 无缝播放分片媒体文件的方法及实现该方法的装置 | |
WO2016090916A1 (zh) | 码流传输方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |