我正在尝试解密.m3u8
播放列表,我遵循以下步骤:
- 创建目录
- 将密钥复制到密钥文件,即
my.key
,然后将其放在DIR中。笔记如果播放列表具有多个键复制,则可以旋转该键它们到不同的文件。 - 将所有
.ts
段复制到同一DIR - 复制并编辑
playlist.m3u8
,并仅使用文件名钥匙(S)URI(S)和段。
并使用此命令解密播放列表
ffmpeg -i playlist.m3u8 -c copy output.ts
但是我有一个错误: Invalid data found when processing input
这是我的M3U8:
#EXTM3U
#EXT-X-TARGETDURATION:12
#EXT-X-ALLOW-CACHE:YES
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-KEY:METHOD=AES-128,URI="my.key"
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:6.000,
s-1-v1-a1.ts
#EXTINF:6.000,
s-2-v1-a1.ts
#EXTINF:6.000,
s-3-v1-a1.ts
#EXTINF:12.000,
s-4-v1-a1.ts
#EXTINF:12.000,
s-5-v1-a1.ts
#EXTINF:6.000,
s-6-v1-a1.ts
#EXT-X-ENDLIST
- 我的命令怎么了?
- 如何不将播放列表转换为一个
.TS
文件?我想逐渐解密文件
尝试在清单中指定完整的本地路径,因此将钥匙制作为:
#EXT-X-KEY:METHOD=AES-128,URI="file://path/to/local/my.key"
和TS块都喜欢:
file://path/to/local/s-6-v1-a1.ts
如果这不起作用,则FFMPEG可能需要通过HTTP提供M3U8的输入。因此,使用M3U8的URL将M3U8文件和键和所有块放在某个Web dir上,然后重新运行您的ffmpeg命令,以便:
ffmpeg -i http://mytestwebserver.com/playlist.m3u8 -c copy output.ts
如果您无法访问Web服务器,则可以安装一些本地和免费的MAMP。当输入为HLS URL时,我没有使用上述命令在本地复制HLS流的问题。