ffmpeg 合并下载m3u8流媒体

博客介绍了使用FFmpeg合并下载m3u8流媒体的方法。若视频未加密可直接用命令下载,若已加密,可通过Fiddler网络抓包获取解密key,保存成文件后修改m3u8文件中EXT - X - KEY的URI,最后执行命令下载视频。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ffmpeg 合并下载m3u8流媒体

m3u8 不是一个视频文件,而是一个playlist。用 sublime text 打开下载下载下来的 m3u8 文件是这样子的:


 
 
  1. #EXTM3U
  2. #EXT-X-VERSION:3
  3. #EXT-X-MEDIA-SEQUENCE:0
  4. #EXT-X-ALLOW-CACHE:YES
  5. #EXT-X-KEY:METHOD=AES-128,URI="http://hls.videocc.net/a0713eea93/3/a0713eea93d0d017ace1c26de982c673_3.key?pid=1548059731161X1008771&ts=1548059730000&sign=859d3dbfd2f62e76b6e4ba4ed110cbca&ms=d45fbe22c7d970a99750939929f27276",IV=0xa8db2560ebdc26250e7c559e48389139
  6. #EXT-X-TARGETDURATION:12
  7. #EXTINF:11.120000,
  8. http: //ab-mts.videocc.net/a0713eea93/18/1512390832000/3/82/c6/73_3/a0713eea93d0d017ace1c26de982c673_3_0.ts?pid=1548059731161X1008771&ts=1548059730000&sign=d45fbe22c7d970a99750939929f27276
  9. #EXTINF:9.960000,
  10. http: //ab-mts.videocc.net/a0713eea93/18/1512390832000/3/82/c6/73_3/a0713eea93d0d017ace1c26de982c673_3_1.ts?pid=1548059731161X1008771&ts=1548059730000&sign=d45fbe22c7d970a99750939929f27276

可以看到,视频被分成了很多段。

如果没有 #EXT-X-KEY 或是 EXT-X-KEY:METHOD=NONE,说明视频没有被加密,可以直接用命令下载

ffmpeg -protocol_whitelist "file,http,crypto,tcp" -i a0713eea93d0d017ace1c26de982c67.m3u8 1.ts
 
 

如果视频已加密,下面着重讲怎样获取解密的 key

使用 fiddler 网络抓包,找到下载 key 的请求。看 RAW 文本发现是乱码,因为 key 的内容不是可读的字符。从右侧的窗口选择 Inspectors -> HexView, 黑色的部分就是 key 的内容,以16进制显示。

选择黑色的部分,右键 -> save selected bytes 保存成文件,例如名字 a.key。后面解密将要用到。

sublime 打开 m3u8 文件,将 EXT-X-KEY 的 URI 修改成 a.key 的路径,然后执行命令

ffmpeg -allowed_extensions ALL -protocol_whitelist "file,http,crypto,tcp" -i a0713eea93d0d017ace1c26de982c67.m3u8 1.ts
 
 

开始下载视频。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值