ffmpeg 下载加密的切片视频 m3u8

正常情况下载视频:

ffmpeg -i <m3u8-path> -c copy OUTPUT.mp4
ffmpeg -i <m3u8-path> -vcodec copy -acodec copy OUTPUT.mp4
ffmpeg -i https://test.com/playlist.m3u8 -c copy OUTPUT.mp4


下载加密的 m3u8:


1. playlist.m3u8的文件

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="hls/key.m3u8"
#EXTINF:3,
hls/p7oAIQXg.ts
#EXTINF:3,
hls/0nfR0Plc.ts
#EXTINF:3,
hls/9u4FoSx6.ts
#EXTINF:3.84,
hls/nIcjOfWB.ts
#EXTINF:4.76,
hls/5elj0W8T.ts
#EXT-X-ENDLIST


2.解密

创建一个文件夹 test,把key 那那个数字保存为一个 “key.m3u8” 文件,上面的 playlist.m3u8,修改内容如下后,也放入test目录:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="key.m3u8"
#EXTINF:3,
https://test.com/hls/p7oAIQXg.ts
#EXTINF:3,
https://test.com/hls/0nfR0Plc.ts
#EXTINF:3,
https://test.com/hls/9u4FoSx6.ts
#EXTINF:3.84,
https://test.com/hls/nIcjOfWB.ts
#EXTINF:4.76,
https://test.com/hls/5elj0W8T.ts
#EXT-X-ENDLIST


3.ffmpeg解密并合并,在 test目录执行下列命令

ffmpeg -protocol_whitelist "file,http,crypto,tcp" -i index.m3u8 -c copy out.mp4

如果视频切片文件下载到本地的话,可以使用下列命令:

ffmpeg -allowed_extensions ALL -i index.m3u8 -c copy out.mp4
ffmpeg -allowed_extensions ALL -protocol_whitelist "file,http,https,crypto,tcp" -i index.m3u8 -c copy out.mp4


修改时间 2021-04-21

真诚赞赏,手留余香
赞赏
随机推荐
Git 重写历史,修改commit 的注释
Thinkcmf 后台文章管理[posts]表新增字段调用编辑器
实现Thinkcmf面包屑导航
Cheerio 中文文档
Vuex
CentOS 系统时间相关命令
sql 之 union && union all 以及安全问题
手机APP界面颜色搭配案例
使用 Android 调试桥 (adb) 无线调试 APP
vue-router 切换页面时设置过渡动画