CN105933799A - 一种视频播放方法及装置 - Google Patents
一种视频播放方法及装置 Download PDFInfo
- Publication number
- CN105933799A CN105933799A CN201610334945.6A CN201610334945A CN105933799A CN 105933799 A CN105933799 A CN 105933799A CN 201610334945 A CN201610334945 A CN 201610334945A CN 105933799 A CN105933799 A CN 105933799A
- Authority
- CN
- China
- Prior art keywords
- file
- clip file
- clip
- downloaded
- locally downloading
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 239000012634 fragment Substances 0.000 claims abstract description 34
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000000682 scanning probe acoustic microscopy Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012795 verification 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2347—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
-
- 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- 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/44—Processing 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/4405—Processing 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 stream decryption
-
- 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/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/462—Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
-
- 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
-
- 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/85—Assembly of content; Generation of multimedia applications
- H04N21/858—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
- H04N21/8586—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种视频播放方法及装置,包括:获取待播放视频的M3U8文件;解析所述M3U8文件,获取所述M3U8文件中包含的所有TS片段文件的文件地址;根据所述所有TS片段文件的文件地址,以及将每个TS片段文件下载到本地,并对每个TS片段文件进行顺序编号;在第K个TS片段下载完成后,开始根据每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放,其中,K为1到M中的任意一个整数,M为小于TS片段文件总数的正整数。本发明提供的一种视频播放方法及装置,能够有效降低播放视频的缓冲时间,提高视频播放的效率。
Description
技术领域
本发明涉及多媒体技术领域,尤其涉及一种视频播放方法及装置。
背景技术
随着计算机技术的飞速发展,使得电子设备的功能越来越丰富,而播放功能就是其中的一种,使得越来越多的电子设备中都会设置播放器用于播放多媒体文件。
现有的多媒体文件通常使用M3U8格式来传输视频流,而一个M3U8文件中通常会包含多个TS片段文件的文件地址通常为URL地址,而在播放M3U8文件时,需要将M3U8文件中包含的所有TS片段文件下载到本地之后,再根据M3U8文件中片段文件的播放顺序,将下载到本地的所有TS片段文件按照播放顺序进行排序,然后再进行播放,使得在播放M3U8文件时,需要将其包含的所有TS片段文件下载到本地之后,再进行排序才能正常播放,导致出现播放视频的缓冲时间较长的问题。
发明内容
本发明提供了一种视频播放方法及装置,能够有效降低播放视频的缓冲时间,提高视频播放的效率。
本申请实施例提供了一种视频播放方法,包括:
获取待播放视频的M3U8文件;
解析所述M3U8文件,获取所述M3U8文件中包含的所有TS片段文件的文件地址;
根据所述所有TS片段文件的文件地址,将每个TS片段文件下载到本地,以及在将每个TS片段文件下载到本地的过程中,对每个TS片段文件进行顺序编号,以使下载到本地的TS片段文件的读取顺序与所述所有TS片段文件在所述M3U8文件中的播放顺序相同;
在第K个TS片段文件下载完成后,开始根据每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放,其中,K为1到M中的任意一个整数,M为小于TS片段文件总数的正整数。
可选的,在所述TS片段文件总数大于5时,所述K为1-5中的任意一个整数。
可选的,在依次将每个TS片段文件下载到本地的过程中,所述方法还包括:
对下载到本地的每个TS片段文件的完整性进行验证;
获取未通过验证的TS片段文件,并根据所述未通过验证的TS片段文件的文件地址,重新将完整的所述未通过验证的TS片段文件下载到本地。
可选的,在依次将每个TS片段文件的文件标识下载到本地的过程中,所述方法还包括:
对下载到本地的每个TS片段文件进行加密。
可选的,所述根据每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放,具体包括:
对已加密的每个TS片段文件进行解密,再根据解密后每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放。
本申请另一实施例还提供了一种视频播放装置,包括:
文件获取单元,用于获取待播放视频的M3U8文件;
文件解析单元,用于解析所述M3U8文件,获取所述M3U8文件中包含的所有TS片段文件的文件地址;
下载单元,用于根据所述所有TS片段文件的文件地址,将每个TS片段文件下载到本地;
编号单元,用于在将每个TS片段文件下载到本地的过程中,对每个TS片段文件进行顺序编号,以使下载到本地的TS片段文件的读取顺序与所述所有TS片段文件在所述M3U8文件中的播放顺序相同;
播放单元,用于在第K个TS片段文件下载完成后,开始根据每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放,其中,K为1到M中的任意一个整数,M为小于TS片段文件总数的正整数。
可选的,在所述TS片段文件总数大于5时,所述K为1-5中的任意一个整数。
可选的,所述装置还包括:
验证单元,用于在依次将每个TS片段文件下载到本地的过程中,对下载到本地的每个TS片段文件的完整性进行验证,并获取未通过验证的TS片段文件;
所述下载单元,还用于根据所述未通过验证的TS片段文件的文件地址,重新将完整的所述未通过验证的TS片段文件下载到本地。
可选的,所述装置还包括:
加密单元,用于在依次将每个TS片段文件的文件标识下载到本地的过程中,对下载到本地的每个TS片段文件进行加密。
可选的,所述装置还包括:
解密单元,用于对已加密的每个TS片段文件进行解密;
所述播放单元,还用于根据解密后每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放。
本发明的有益效果如下:
基于上述技术方案,本发明实施例中,解析待播放视频的M3U8文件,并根据解析获取的所述M3U8文件中包含的所有TS片段文件的文件地址,依次将每个TS片段文件下载到本地,并对每个TS片段文件进行顺序编号;以及在第K个TS片段文件下载完成后,开始根据每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放,由于K为1到M中的任意一个整数,M为小于TS片段文件总数的正整数,可知K小于所述总数,使得所述第K个TS片段文件下载完成后,在下载第(K+1)个TS片段文件时,就已开始对下载到本地的TS片段文件进行播放,进而能够实现一边下载TS片段文件一边播放TS片段文件,而无需在所有TS片段文件都下载完成之后进行排序后播放,从而能够有效降低播放视频的缓冲时间,提高视频播放的效率,使得用户的体验更好。
附图说明
图1为本发明实施例中视频播放方法的第一种流程图;
图2为本发明实施例中视频播放方法的第二种流程图;
图3为本发明实施例中视频播放装置的结构图。
具体实施方式
本发明提供了一种视频播放方法及装置,能够有效降低播放视频的缓冲时间,提高视频播放的效率。
本发明实施例中视频播放方法通常是应用用户终端中,所述用户终端例如是智能手机、平板电脑、笔记本电脑、台式电脑等具有显示屏的设备,以在所述用户终端的显示屏上播放视频。
本发明实施例中,M3U8文件实质上也是一种M3U文件,只是两者的编码格式不同。M3U8文件的编码格式是UTF-8格式,而M3U采用latin-1字符集编码。M3U类似于音频或者视频文件的目录信息。
具体的,M3U文件不是音频文件或者视频文件,它是音频文件或者视频文件的列表文件,是纯文本文件。当下载得到M3U文件并打开M3U文件后,电子设备的播放器播放的并不是该M3U文件,而是根据该M3U文件的记录获取到相应的文件地址,然后下载对应的TS片段文件并进行播放。
下面结合附图对本发明优选的实施方式进行详细说明。
实施例一:
如图1所示,本发明实施例中提供了一种视频播放方法,包括以下步骤:
S101、获取待播放视频的M3U8文件;
S102、解析所述M3U8文件,获取所述M3U8文件中包含的所有TS片段文件的文件地址;
S103、根据所述所有TS片段文件的文件地址,依次将每个TS片段文件下载到本地,对每个TS片段文件进行顺序编号,以使下载到本地的TS片段文件的读取顺序与所述所有TS片段文件在所述M3U8文件中的播放顺序相同;
S104、在第K个TS片段文件下载完成后,开始根据每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放,其中,K为1到M中的任意一个整数,M为小于TS片段文件总数的正整数。
其中,在步骤S101中,可以根据用户的操作来获取待播放视频的M3U8文件,例如在笔记本电脑上打开了一视频网站,若用户选中了该视频网站中的a视频进行播放,则可以通过下载获取a视频的M3U8文件,其中a视频为所述待播放视频。
接下来执行步骤S102,在该步骤中,解析所述M3U8文件,获取所述M3U8文件中包含的所有TS片段文件的文件地址。
在具体实施过程中,在通过步骤S101获取到所述M3U8文件之后,对所述M3U8文件进行解析,以获取所述M3U8文件中包含的所有TS片段文件的文件地址,其中,所述文件地址例如可以是URL地址、IP地址等,下面具体以URL地址为例。当然,在对所述M3U8文件进行解析之后,还可以获取所有TS片段文件在所述M3U8文件中的播放顺序。
具体来讲,所述M3U8文件可以为一个M3U8列表文件,该M3U8列表文件中包含所有TS片段文件的URL地址,且所有TS片段文件的URL地址在该M3U8列表文件中按照TS片段文件的播放先后顺序进行排列,如此,可以在对所述M3U8文件进行解析之后,能够获取所有TS片段文件在所述M3U8文件中的播放顺序。
具体的,所述M3U8文件中通常会包括多个TS片段文件的URL地址;当然,在较少情况下,所述M3U8文件也会仅包括1个TS片段文件的URL地址,本申请对此不作具体限制,下面具体以所述M3U8文件包含至少3个TS片段文件的URL地址为例。
例如,以a视频对应的M3U8文件为例,下载a视频对应的M3U8文件之后进行解析,获取到M3U8文件中包含{TS1、TS2.....TSN}的URL地址,其中,N为不小于3的整数,其中,{TS1、TS2.....TSN}片段文件的播放顺序为TS1>TS2>.....>TSN,可知TS1片段文件最先播放,TS2片段文件在TS1片段文件之后播放,然后依次进行播放,最后播放TSN片段文件。
本申请实施例中,在获取到所述M3U8文件之后,所述M3U8文件中可能会包括一级M3U8文件和二级M3U8文件,所述一级M3U8文件主要进行多码率适配,并未包含TS片段文件的URL地址;而所述二级M3U8文件中才会包含所有TS片段文件的URL地址,如此,使得在解析所述M3U8文件时,获取的是所述二级M3U8文件包含的所有TS片段文件的URL地址。
例如,一级M3U8文件如下:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=201273221265,BANDWIDTH=358400
11.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=201273221265,BANDWIDTH=972800
22.m3u8
由此可知,上述一级M3U8文件中又定义了11.m3u8和22.m3u8两个二级M3U8文件,如此,可以选择11.m3u8和22.m3u8中的任意一个二级M3U8文件,然后获取选择的二级M3U8文件中包含的所有TS片段文件的URL地址。当然,在实际应用过程中,用户终端默认会首先选择码率最高的二级M3U8文件,如果播放过程中发现码率达不到要求,则会请求较低码率的二级M3U8文件。
接下来执行步骤S103,在该步骤中,根据所述所有TS片段文件的文件地址,依次将每个TS片段文件下载到本地,并对每个TS片段文件进行顺序编号,以使下载到本地的TS片段文件的读取顺序与所述所有TS片段文件在所述M3U8文件中的播放顺序相同。
在具体实施过程中,一个M3U8文件中通常会存在成百上千个TS片段,为了降低下载TS片段文件占用的CPU开销,通常会采用单进程来下载所述所有TS片段文件,如此,可以根据所述播放顺序依次将每个TS片段下载到本地,具体可以是从第一个TS片段文件开始到最后一个TS片段文件结束,在前一个TS片段文件下载完成之后,才下载下一个TS片段文件。
例如以M3U8文件中包含{TS1、TS2.....TSN}的URL地址为例,在根据TS1片段文件的URL地址,下载完TS1片段文件之后,再根据TS2片段文件的URL地址,下载TS2片段文件,在下载完成之后,继续下载下一个TS片段文件,直至下载完TSN片段文件为止。
具体来讲,在获取到M3U8文件中包含的所有TS片段的URL地址之后,根据所述所有TS片段的URL地址,查找到相应的资源进行下载,从而依次将每个TS片段文件下载到本地;以及在依次将每个TS片段文件下载到本地过程中,可以在每下载一个TS片段文件时,对该下载的TS片段文件进行编号,以使得每个TS片段文件包含的数据的下载与对每个TS片段文件进行编号同时进行,不会对每个TS片段文件的下载造成影响,从而能够确保所有TS片段文件的下载效率。
具体来讲,在对每个TS片段文件进行编号时,可以根据每个TS片段文件的文件标识来对其进行编号,例如TS1片段文件的文件标识为TS1,在对TS1片段文件进行编号时,可以根据文件标识TS1对TS1片段文件进行编号,使得TS1片段文件对应的编号为1;同理,采用相同的方法对TS2片段文件进行编号,使得TS2片段文件对应的编号为2,其中,所述文件标识可以是TS片段文件的文件名称。
具体的,根据所述所有TS片段文件的URL地址,将每个TS片段文件下载到本地过程中,在对每个TS片段文件进行下载时,首先会在本地为每个TS片段文件创建一个文件夹,并将每个TS片段文件的文件标识下载到本地,根据下载到本地的每个TS片段文件的文件标识,对每个TS片段文件进行编号,以及在对TS片段文件进行编号的同时将每个TS片段文件包含的数据内容下载到对应的本地创建的文件夹中,以使得每个TS片段文件包含的数据的下载与对每个TS片段文件进行编号同时进行,不会对每个TS片段文件的下载造成影响,其中,在将每个TS片段文件的文件标识下载到本地时,使得每个TS片段文件和与其对应的本地创建的文件夹的文件标识相同,使得创建的所有的文件夹与所有TS片段文件一一对应。
当然,也可以直接根据每个TS片段文件的URL地址,获取到每个TS片段文件的文件标识,而无需下载到本地,直接根据获取的每个TS片段文件的文件标识,对每个TS片段文件进行编号,同样会使得编号和下载每个TS片段文件包含的数据同时进行,不会对每个TS片段文件的下载造成影响。
例如,以M3U8文件中包含{TS1、TS2.....TSN}的URL地址为例,根据{TS1、TS2.....TSN}的URL地址,依次下载名称为{TS1、TS2.....TSN}的TS片段文件,名称为TSi的TS片段文件用TSi片段文件表示,i依次取1-N的值,其中,在根据TS1的URL地址,下载TS1片段文件时,首先会在本地创建一个文件夹,然后下载TS1片段文件的文件标识为TS1并将创建的本地文件夹的名称命名为TS1,这时可以根据下载到本地的TS1片段文件的文件标识,对TS1片段文件进行编号并确定其编号为1,以及在对TS1片段文件进行编号的同时将下载TS1片段文件包含的数据存储在名称为TS1的本地文件夹中。同理,针对每个TS片段文件执行上述操作,使得名称为{TS1、TS2.....TSN}的本地文件夹与{TS1、TS2.....TSN}片段文件一一对应。
本申请实施例中,根据所述所有TS片段文件的URL地址,可以根据每个TS片段文件在所述M3U8文件中的播放顺序,对每个TS片段文件进行顺序编号;当然,也可以是在每下载一个TS片段文件的文件标识之后,根据每个TS片段文件在所述M3U8文件中的播放顺序,对下载的每个TS片段文件的文件标识进行顺序编号,本申请不作具体限制。
在具体实施过程中,在根据每个TS片段文件在所述M3U8文件中的播放顺序,对每个TS片段文件进行顺序编号时,根据每个TS片段文件在所述M3U8文件中的播放顺序,可以是从小到大或从大到小对每个TS片段文件进行编号,下面具体以从小到大编号为例。
具体来讲,以M3U8文件中包含{TS1、TS2.....TSN}的URL地址为例,对应的所有TS片段文件为{TS1、TS2.....TSN}片段文件,在每下载{TS1、TS2.....TSN}片段文件中的TSi片段文件时,根据所述TSi片段文件在所述M3U8文件中的播放顺序,对所述TSi片段文件进行编号,若i=1,则对TS1片段文件对应的编号为1;以及i=2时,则对TS2片段文件对应的编号为2,其中,i取1-N的值,如此,使得{TS1、TS2.....TSN}片段文件对应的编号为{1、2.....N}。
接下来执行步骤S104,在该步骤中,在第K个TS片段文件下载完成后,开始根据每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放,其中,K为1到M中的任意一个整数,M为小于TS片段文件总数的正整数。
在具体实施过程中,所述TS片段文件总数为所述所有TS片段文件的数量,具体用N表示;在所述总数大于3时,所述M可以取2或3的值,在所述M为3时,所述K可以取1或2或3的值;同理,在所述总数大于4时,所述M可以取2或3或4的值,以及在所述M为4时,所述K可以取1或2或3或4的值;以及在所述总数大于5时,所述M为2-5中的任意一个整数,在所述M为5时,所述K可以取1-5中的任意一个整数。
具体来讲,由于M<N(总数)且1≤K≤M,使得所述第K个TS片段文件下载完成后,后续还要下载至少一个TS片段文件,而在所述第K个TS片段下载完成后,就开始依次在缓存中读取已下载到本地的TS片段文件进行播放,如此,使得在下载第(K+1)个TS片段文件时,就已开始对下载到本地的TS片段文件进行播放,进而能够实现一边下载TS片段文件一边播放TS片段文件,而无需在所有TS片段文件都下载完成之后进行排序后播放,从而能够有效降低播放视频的缓冲时间,提高视频播放的效率,使得用户的体验更好。
具体的,以K=1为例,首先检测所述M3U8文件中第一个TS片段文件是否下载完成,若检测到所述第一个TS片段文件下载完成,则根据每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放,其具体实施方式为:由于所述第一个TS片段已下载完成,则在缓存中读取所述第一个TS片段文件进行播放,然后依次检测第二个TS片段文件至最后一个TS片段文件是否下载完成,在每检测一个TS片段文件下载完成之后,则在缓存中读取下载完成的TS片段文件进行播放,如此,使得播放的TS片段文件的顺序与所述所有TS片段文件在所述M3U8文件中的播放顺序相同,能够在每下载完成一个TS片段文件之后立即播放该TS片段文件,而无需在所有TS片段文件都下载完成之后才进行播放,能够进一步降低播放视频的缓冲时间。
具体的,在K=3时,首先检测所述M3U8文件中第三个TS片段文件是否下载完成,若检测到所述第三个TS片段文件下载完成,则根据每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放,其具体实施方式为:由于所述第三个TS片段文件已下载完成,则在缓存中依次读取第一个至第三个TS片段文件进行播放,然后再依次检测第四个TS片段文件至最后一个TS片段文件是否下载完成,在每检测一个TS片段文件下载完成之后,则在缓存中读取下载完成的TS片段文件进行播放,如此,使得播放的TS片段文件的顺序与所述所有TS片段文件在所述M3U8文件中的播放顺序相同,能够在每下载完成一个TS片段文件之后立即播放该TS片段文件。
例如,以K=1为例,{TS1、TS2.....TSN}片段文件对应的编号为{1、2.....N},由于1对应的TS1片段文件为所述M3U8文件中第一个TS片段文件,则首先根据编号1,检测对应的TS1片段文件是否下载完成,在检测到下载完成时,则从缓存中读取TS1片段文件进行播放;然后再根据编号2,检测对应的TS2片段文件是否下载完成,在检测到下载完成时,则从缓存中读取TS2片段文件进行播放;然后根据编号依次检测后续的TS片段文件是否下载完成,在下载完成时则进行播放,直至最后检测与编号N对应的TSN片段文件下载完成然后进行播放;如此,使得根据编号顺序,能够依照所述M3U8文件中的TS片段文件的播放顺序实时检测其是否下载完成,在每检测到下载完成一个TS片段文件之后,立即将其进行播放,而无需在M3U8文件中所有TS片段文件下载完成之后才进行播放,如此,能够有效缩短缓冲时间,使得播放效率得以提高。
在另一实施例中,在将每个TS片段文件下载到本地的过程中,所述方法还包括:对下载到本地的每个TS片段文件的完整性进行验证;获取未通过验证的TS片段文件,并根据所述未通过验证的TS片段文件的URL地址,重新将完整的所述未通过验证的TS片段文件下载到本地。
其中,在对每个TS片段文件的完整性进行验证时,可以通过每个TS片段文件对应的MD5值或哈希值等校验码以此来对其进行验证。具体的,下载到本地的每个TS片段文件中会存在MD5值或哈希值等校验码,然后获取下载到本地的每个TS片段文件的校验码,将获取的校验码与下载的校验码进行对比,在相同时,则确定所述TS片段文件是完整的,表征通过验证;在不相同时,则确定所述TS片段文件是不完整,表征未通过验证。当然,所述获取的校验码与所述下载的校验码的类别相同,若所述下载的校验码的类别为MD5,所述获取的校验码的类别也必然为MD5;若所述下载的校验码的类别为哈希值,则所述获取的校验码的类别也必然为哈希值。
在具体实施过程中,在将每个TS片段文件下载到本地的过程中,会存在其中的一部分TS片段文件已下载到本地了,而另一部分TS片段文件仅下载了其中的一部分数据,而这时,可以对已下载到本地的每个TS片段文件的完整性进行验证,若通过验证,则表征下载到本地的TS片段文件是完整的;若未通过验证,则表征下载到本地的TS片段文件是不完整的,无法进行正常的播放;如此,在对下载到本地的每个TS片段文件的完整性进行验证之后,能够获取所述未通过验证的TS片段文件,并重新将完整的所述未通过验证的TS片段文件下载到本地,以使得在播放TS片段文件时,降低由于下载到本地的TS片段文件不完整导致出现缓冲的情况,能够有效提高TS片段文件播放的流畅度,使得用户的体验更好。
具体来讲,也可以在每将一个TS片段文件下载到本地时,对该TS片段文件进行完整性验证,若通过验证,则禁止重新对其进行下载;若未通过验证,则根据该TS片段文件的URL地址,重新将完整的该TS片段文件下载到本地,由于在每个TS片段文件下载到本地时进行验证,使得验证的及时性得以提高,能够更快的检测出每个下载到本地的TS片段文件的完整性,进而采取相应的措施来确保每个下载到本地的TS片段文件的完整性,进一步降低由于下载到本地的TS片段文件不完整导致出现缓冲的情况。
实施例二:
如图2所示,本发明实施例中提供了一种视频播放方法,包括以下步骤:
S201、获取待播放视频的M3U8文件;
S202、解析所述M3U8文件,获取所述M3U8文件中包含的所有TS片段文件的文件地址;
S203、根据所述所有TS片段文件的文件地址,依次将每个TS片段文件下载到本地,并对每个TS片段文件进行顺序编号,以使下载到本地的TS片段文件的读取顺序与所述所有TS片段文件在所述M3U8文件中的播放顺序相同;
S204、在依次将每个TS片段文件下载到本地的过程中,对下载到本地的每个TS片段文件进行加密;
S205、在第K个TS片段下载完成后,对已加密的每个TS片段文件进行解密,再开始根据解密后每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放,其中,K为1到M中的任意一个整数,M为小于TS片段文件总数的正整数。
其中,在步骤S204中,在将每个TS片段文件下载到本地的过程中,可以对下载到本地的每个TS片段文件进行加密,以提高其私密性,而且加密之后的每个TS片段文件只能通过对应的解密算法进行解密之后才能进行正常播放,使得将下载的视频文件上传或复制到其它设备中时,使得其它设备并不能获知与所述视频文件对应的解密算法对其进行解密,以致无法获取TS片段文件的内容,从而不能正常播放下载的视频文件,如此,能够有效防止下载的视频文件出现未授权而播放的问题,进而能够有效防止盗版。
具体来讲,由于对下载到本地的每个TS片段文件进行了加密,使得创建的与每一个TS片段文件的本地文件处于加密状态,其中,可以通过MD5、RSA、DES等加密算法对每个TS片段文件进行加密,本申请不作具体限制。
在步骤S205中,在对下载到本地的每个TS片段文件进行加密之后,且在第K个TS片段下载完成后,对已加密的每个TS片段文件进行解密,这是由于步骤S203中对下载到本地的每个TS片段文件进行了加密,如此,需要进行解密才能确定已加密的每个TS片段文件的内容,再根据解密后每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放。
具体的,在对已加密的每个TS片段文件进行解密时,采用与步骤S204中使用的加密算法相对应的解密算法进行解密,以准确获取已加密的每个TS片段文件的内容,再根据每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放,在K=1时,其具体实现过程如下:
首先检测所述M3U8文件中第一个TS片段文件是否下载完成,若检测到所述第一个TS片段文件下载完成,对其进行解密并在缓存中读取所述第一个TS片段文件进行播放,然后依次检测第二个TS片段文件至最后一个TS片段文件是否下载完成,在每检测一个TS片段文件下载完成之后,对其进行解密并在缓存中读取下载完成的TS片段文件进行播放,如此,使得播放的TS片段文件的顺序与所述所有TS片段文件在所述M3U8文件中的播放顺序相同。
本发明的有益效果如下:
本发明实施例中,解析待播放视频的M3U8文件,并根据解析获取的所述M3U8文件中包含的所有TS片段文件的文件地址,依次将每个TS片段文件下载到本地,并对每个TS片段文件进行顺序编号;以及在第K个TS片段文件下载完成后,开始根据每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放,,由于K为1到M中的任意一个整数,M为小于TS片段文件总数的正整数,可知K小于所述总数,使得所述第K个TS片段文件下载完成后,在下载第(K+1)个TS片段文件时,就已开始对下载到本地的TS片段文件进行播放,进而能够实现一边下载TS片段文件一边播放TS片段文件,而无需在所有TS片段文件都下载完成之后进行排序后播放,从而能够有效降低播放视频的缓冲时间,提高视频播放的效率,使得用户的体验更好。
基于与上述方法相同的技术构思,如图3所示,本发明实施例还提供了一种视频播放装置,包括:
文件获取单元301,用于获取待播放视频的M3U8文件;
文件解析单元302,用于解析所述M3U8文件,获取所述M3U8文件中包含的所有TS片段文件的文件地址;
下载单元303,用于根据所述所有TS片段文件的文件地址,依次将每个TS片段文件下载到本地;
编号单元304,用于在依次将每个TS片段文件下载到本地的过程中,对每个TS片段文件进行顺序编号,以使下载到本地的TS片段文件的读取顺序与所述所有TS片段文件在所述M3U8文件中的播放顺序相同;
播放单元305,用于在第K个TS片段文件下载完成后,开始根据每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放,其中,K为1到M中的任意一个整数,M为小于TS片段文件总数的正整数。
其中,所述视频播放装置例如可以是智能手机、平板电脑、笔记本电脑、台式电脑等具有显示屏的设备,以在所述视频播放装置的显示屏上播放视频。
较佳的,在所述TS片段文件总数大于5时,所述M为2-5中的任意一个整数,使得所述M为5时,所述K可以取1-5中的任意一个整数;以及在所述M为4时,所述K可以取1-4中的任意一个整数;以及在所述M为3时,K可以取1-3中的任意一个整数;以及在所述M为2时,K可以取1或2的值。
较佳的,所述装置还包括:
验证单元,用于在依次将每个TS片段文件下载到本地的过程中,对下载到本地的每个TS片段文件的完整性进行验证,并获取未通过验证的TS片段文件;
下载单元303,还用于根据所述未通过验证的TS片段文件的文件地址,重新将完整的所述未通过验证的TS片段文件下载到本地。
较佳的,所述装置还包括:
加密单元,用于在依次将每个TS片段文件下载到本地的过程中,对下载到本地的每个TS片段文件进行加密。
较佳的,所述装置还包括:
解密单元,用于对已加密的每个TS片段文件进行解密;
播放单元305,还用于根据解密后每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放。
本发明的有益效果如下:
本发明实施例中,解析待播放视频的M3U8文件,并根据解析获取的所述M3U8文件中包含的所有TS片段文件的文件地址,依次将每个TS片段文件下载到本地,并对每个TS片段文件进行顺序编号;以及在第K个TS片段文件下载完成后,开始根据每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放,由于K为1到M中的任意一个整数,M为小于TS片段文件总数的正整数,可知K小于所述总数,使得所述第K个TS片段文件下载完成后,在下载第(K+1)个TS片段文件时,就已开始对下载到本地的TS片段文件进行播放,进而能够实现一边下载TS片段文件一边播放TS片段文件,而无需在所有TS片段文件都下载完成之后进行排序后播放,从而能够有效降低播放视频的缓冲时间,提高视频播放的效率,使得用户的体验更好。
本发明实施例中所述模块或单元,可以通过通用集成电路,例如CPU(CentralProcessing Unit,中央处理器),或通过ASIC(Application SpecificIntegratedCircuit,专用集成电路)来实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (10)
1.一种视频播放方法,其特征在于,包括:
获取待播放视频的M3U8文件;
解析所述M3U8文件,获取所述M3U8文件中包含的所有TS片段文件的文件地址;
根据所述所有TS片段文件的文件地址,依次将每个TS片段文件下载到本地,并对每个TS片段文件进行顺序编号,以使下载到本地的TS片段文件的读取顺序与所述所有TS片段文件在所述M3U8文件中的播放顺序相同;
在第K个TS片段下载完成后,开始根据每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放,其中,K为1到M中的任意一个整数,M为小于TS片段文件总数的正整数。
2.如权利要求1所述的方法,其特征在于,在所述TS片段文件总数大于5时,所述K为1-5中的任意一个整数。
3.如权利要求2所述的方法,其特征在于,在依次将每个TS片段文件下载到本地的过程中,所述方法还包括:
对下载到本地的每个TS片段文件的完整性进行验证;
获取未通过验证的TS片段文件,并根据所述未通过验证的TS片段文件的文件地址,重新将完整的所述未通过验证的TS片段文件下载到本地。
4.如权利要求1~3任一项所述的方法,其特征在于,在依次将每个TS片段文件下载到本地的过程中,所述方法还包括:
对下载到本地的每个TS片段文件进行加密。
5.如权利要求4所述的方法,其特征在于,所述根据每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放,具体包括:
对已加密的每个TS片段文件进行解密,再根据解密后每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放。
6.一种视频播放装置,其特征在于,包括:
文件获取单元,用于获取待播放视频的M3U8文件;
文件解析单元,用于解析所述M3U8文件,获取所述M3U8文件中包含的所有TS片段文件的文件地址;
下载单元,用于根据所述所有TS片段文件的文件地址,依次将每个TS片段文件下载到本地;
编号单元,用于在依次将每个TS片段文件下载到本地的过程中,对每个TS片段文件进行顺序编号,以使下载到本地的TS片段文件的读取顺序与所述所有TS片段文件在所述M3U8文件中的播放顺序相同;
播放单元,用于在第K个TS片段文件下载完成后,开始根据每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放,其中,K为1到M中的任意一个整数,M为小于TS片段文件总数的正整数。
7.如权利要求6所述的装置,其特征在于,在所述TS片段文件总数大于5时,所述K为1-5中的任意一个整数。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
验证单元,用于在依次将每个TS片段文件下载到本地的过程中,对下载到本地的每个TS片段文件的完整性进行验证,并获取未通过验证的TS片段文件;
所述下载单元,还用于根据所述未通过验证的TS片段文件的文件地址,重新将完整的所述未通过验证的TS片段文件下载到本地。
9.如权利要求6-8任一项所述的装置,其特征在于,所述装置还包括:
加密单元,用于在依次将每个TS片段文件下载到本地的过程中,对下载到本地的每个TS片段文件进行加密。
10.如权利要求9所述的装置,其特征在于,所述装置还包括:
解密单元,用于对已加密的每个TS片段文件进行解密;
所述播放单元,还用于根据解密后每个TS片段文件对应的编号顺序,依次在缓存中读取已下载到本地的TS片段文件进行播放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610334945.6A CN105933799A (zh) | 2016-05-19 | 2016-05-19 | 一种视频播放方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610334945.6A CN105933799A (zh) | 2016-05-19 | 2016-05-19 | 一种视频播放方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105933799A true CN105933799A (zh) | 2016-09-07 |
Family
ID=56840766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610334945.6A Pending CN105933799A (zh) | 2016-05-19 | 2016-05-19 | 一种视频播放方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105933799A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108174284A (zh) * | 2017-12-29 | 2018-06-15 | 航天科工智慧产业发展有限公司 | 一种基于Android系统的解码视频的方法 |
CN109618219A (zh) * | 2018-12-28 | 2019-04-12 | 中国移动通信集团江苏有限公司 | 网络电视的快速换台方法、装置、设备和存储介质 |
CN109714606A (zh) * | 2018-12-29 | 2019-05-03 | 深圳市网心科技有限公司 | 一种hls文件播放方法、系统及电子设备和存储介质 |
CN109756782A (zh) * | 2017-11-06 | 2019-05-14 | 阿里巴巴集团控股有限公司 | 一种资源处理方法、装置及流媒体服务器 |
CN109889917A (zh) * | 2017-12-06 | 2019-06-14 | 上海交通大学 | 一种基于缓存编码的视频传输方法 |
CN111385660A (zh) * | 2018-12-28 | 2020-07-07 | 广州市百果园信息技术有限公司 | 视频的点播方法、装置、设备及存储介质 |
CN111614744A (zh) * | 2020-05-15 | 2020-09-01 | 武汉麦子科技有限公司 | 一种大文件下载传输方法 |
WO2021042936A1 (zh) * | 2019-09-04 | 2021-03-11 | 北京字节跳动网络技术有限公司 | 视频数据的处理方法、装置、电子设备及计算机可读介质 |
CN112770170A (zh) * | 2020-12-31 | 2021-05-07 | 百视通网络电视技术发展有限责任公司 | 一种ott电视业务中的视频广告投放方法、介质及设备 |
CN114040222A (zh) * | 2021-12-24 | 2022-02-11 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种多媒体文件防篡改播放方法、处理方法及装置 |
CN114449307A (zh) * | 2021-12-21 | 2022-05-06 | 北京网神洞鉴科技有限公司 | 整合分片视频的方法及装置 |
-
2016
- 2016-05-19 CN CN201610334945.6A patent/CN105933799A/zh active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109756782A (zh) * | 2017-11-06 | 2019-05-14 | 阿里巴巴集团控股有限公司 | 一种资源处理方法、装置及流媒体服务器 |
CN109889917B (zh) * | 2017-12-06 | 2020-07-14 | 上海交通大学 | 一种基于缓存编码的视频传输方法 |
CN109889917A (zh) * | 2017-12-06 | 2019-06-14 | 上海交通大学 | 一种基于缓存编码的视频传输方法 |
CN108174284A (zh) * | 2017-12-29 | 2018-06-15 | 航天科工智慧产业发展有限公司 | 一种基于Android系统的解码视频的方法 |
CN108174284B (zh) * | 2017-12-29 | 2020-09-15 | 航天科工智慧产业发展有限公司 | 一种基于Android系统的解码视频的方法 |
CN111385660A (zh) * | 2018-12-28 | 2020-07-07 | 广州市百果园信息技术有限公司 | 视频的点播方法、装置、设备及存储介质 |
CN109618219A (zh) * | 2018-12-28 | 2019-04-12 | 中国移动通信集团江苏有限公司 | 网络电视的快速换台方法、装置、设备和存储介质 |
CN111385660B (zh) * | 2018-12-28 | 2022-07-12 | 广州市百果园信息技术有限公司 | 视频的点播方法、装置、设备及存储介质 |
CN109714606A (zh) * | 2018-12-29 | 2019-05-03 | 深圳市网心科技有限公司 | 一种hls文件播放方法、系统及电子设备和存储介质 |
WO2021042936A1 (zh) * | 2019-09-04 | 2021-03-11 | 北京字节跳动网络技术有限公司 | 视频数据的处理方法、装置、电子设备及计算机可读介质 |
US12069332B2 (en) | 2019-09-04 | 2024-08-20 | Beijing Bytedance Network Technology Co., Ltd. | Video data processing method, electronic device and computer-readable medium |
CN111614744A (zh) * | 2020-05-15 | 2020-09-01 | 武汉麦子科技有限公司 | 一种大文件下载传输方法 |
CN112770170A (zh) * | 2020-12-31 | 2021-05-07 | 百视通网络电视技术发展有限责任公司 | 一种ott电视业务中的视频广告投放方法、介质及设备 |
CN114449307A (zh) * | 2021-12-21 | 2022-05-06 | 北京网神洞鉴科技有限公司 | 整合分片视频的方法及装置 |
CN114040222A (zh) * | 2021-12-24 | 2022-02-11 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种多媒体文件防篡改播放方法、处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105933799A (zh) | 一种视频播放方法及装置 | |
US20060069925A1 (en) | Content processing device, content accumulation medium, content processing method and content processing program | |
CN103886246B (zh) | 支持认证装置安全引导的动态改变的方法和设备 | |
US20110066723A1 (en) | Generating statistics of popular content | |
CN106899566A (zh) | 一种认证方法、设备以及认证客户端 | |
CN106878108B (zh) | 网络流量回放测试方法及装置 | |
CN107220547B (zh) | 终端设备及其启动方法 | |
CN113378236A (zh) | 一种证据数据在线保全公证平台及保全方法 | |
KR20070069435A (ko) | 디바이스 메모리의 무결성 확인 방법 및 장치 | |
US20090202079A1 (en) | Method, apparatus and computer program product for providing mobile broadcast service protection | |
EP2901290A1 (en) | Detecting malicious advertisements using source code analysis | |
JPWO2006090800A1 (ja) | セキュア処理装置、及びセキュア処理システム | |
CN108664774A (zh) | 一种及时生成水印的方法、装置、存储介质及系统 | |
JP2001257865A (ja) | 電子透かしを用いた情報埋め込み方法および抽出方法 | |
CN101578608A (zh) | 用于基于会话票证存取内容的方法及设备 | |
CN113448817A (zh) | 一种页面录屏方法、装置以及存储介质 | |
US20170206364A1 (en) | Decrypting content protected with initialization vector manipulation | |
Gong et al. | Detecting fingerprints of audio steganography software | |
EP2568655A2 (en) | Method for authenticating a storage device, machine-readable storage medium, and host device | |
CN106612283B (zh) | 一种识别下载文件来源的方法及装置 | |
CN103747241A (zh) | 一种视频完整性的检测方法及装置 | |
CN110968885A (zh) | 模型训练数据存储方法及装置、电子设备、存储介质 | |
US20210143978A1 (en) | Method to secure a software code performing accesses to look-up tables | |
CN114448722A (zh) | 跨浏览器登录方法、装置、计算机设备和存储介质 | |
CN109002710A (zh) | 一种检测方法、装置及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160907 |
|
RJ01 | Rejection of invention patent application after publication |