如何对加密的m3u8、ts文件进行合并

先来简要介绍一下什么是MPEG2-TS吧。MPEG2格式大家都通过对DVD的接触而多多少少了解了一些,DVD节目中的MPEG2格式,确切地说是MPEG2-PS,全称是ProgramStream,而TS的全称则是TransportStream。MPEG2-PS主要应用于存储的具有固定时长的节目,如DVD电影,而MPEG-TS则主要应用于实时传送的节目,比如实时广播的电视节目。这两种格式的主要区别是什么呢?简单地打个比喻说,你将DVD上的VOB文件的前面一截cut掉(或者干脆就是数据损坏),那么就会导致整个文件无法解码了,而电视节目是你任何时候打开电视机都能解码(收看)的,所以,MPEG2-TS格式的特点就是要求从视频流的任一片段开始都是可以独立解码的。

以上都是废话......

加密后的ts文件不能直接合并或播放,需要使用key对每个ts文件进行解密。

这里分为两种情况:
(1).如果ts文件已经全部下载好,则可以直接在本地通过ffmpeg快速解密合并。
(2).如果ts文件没有下载好,则可以通过vlc直接下载整个视频,或者通过ffmpeg下载并转换。

无论是哪种情况,都要去视频源地址下载m3u8文件。如果可以下载key(有些网站加密方式比较严谨,不那么容易获取到key),把key文件也下载好。

 

把能找到的m3u8和一个key文件,都下载好。记事本打开两个m3u8,其中有一个包含了ts文件列表,这个m3u8文件是我们所需要的。例如我这里的是hls-720p.m3u8文件,以下是一小部分内容。

 

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-KEY:METHOD=AES-128,URI="enc.key",IV=0x97e7678f0137815ec07dfed2a66af812
#EXTINF:4.166667,
hls-720p0.ts
#EXTINF:4.166667,
hls-720p1.ts

情形一:ts文件已经下载好

假如我的ts文件全部下载好,放在C:\Users\Desktop\1579578087921目录下,如下图:

如何对加密的m3u8、ts文件进行合并_第1张图片

如上图:这里我已经下载好key文件,放在用一个文件目录下面

修改m3u8文件中key的URI路径和ts文件的路径为本地路径。下面是hls-720p.m3u8文件修改URI后的部分内容

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-KEY:METHOD=AES-128,URI="C:/Users/10452/Desktop/1579578087921/enc.key"
#EXTINF:4.166667,
hls-720p0.ts
#EXTINF:4.166667,
hls-720p1.ts

命令行进入到文件目录下(或者打开文件夹,在空白处按着shift的同时右键,点击“在此处打开Powershell窗口”)

然后使用ffmpeg进行合并(合并前先把ffmpeg安装进你的电脑里,去搜一下ffmpeg就有,这里不再多做介绍)

ffmpeg -allowed_extensions ALL -i hls-720p.m3u8 -c copy new.mp4

之后这样说明已经在操作,等待完成即可

如何对加密的m3u8、ts文件进行合并_第2张图片

如何对加密的m3u8、ts文件进行合并_第3张图片

new.mp4文件会默认保存在当前文件夹里面

 

情形二:ts文件没有下载

同样,下载好m3u8文件(key可下载可不下载,因为可以直接在m3u8文件中指定key的网络uri路径)。

修改m3u8文件中key和ts的uri路径。下面是HdNz1kaz.m3u8文件修改后的一小部分内容。

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:13
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="http://www.example.com/20180125/key.key"
#EXTINF:12.5,
http://www.example.com/20180125/GBDYO3576000.ts
#EXTINF:12.5,
http://www.example.com/20180125/GBDYO3576001.ts
#EXTINF:12.5,
http://www.example.com/20180125/GBDYO3576002.ts

然后,使用ffmpeg下载并合并。

ffmpeg -i hls-720p.m3u8 -c copy new.mp4

 

你可能感兴趣的:(如何对加密的m3u8、ts文件进行合并)