当我有密钥和IV时,如何将HLS流解密为.ts文件?

时间:2017-12-27 20:57:50

标签: encryption ffmpeg hls

我可以访问所有.ts文件。 我的 .m3u8 就是这样开始的:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:13
#EXT-X-KEY:METHOD=AES-128,URI="https://localserver/get_key?title_id=144", IV=0x4d1acfe1962002a4abedb8b68c65fa93
#EXTINF:12.066667,
1500_144_00000.ts
#EXTINF:9.000000,
1500_144_00001.ts
EXTINF:9.000000,
1500_144_00002.ts
...

...并且.m3u8继续显示所有.ts文件。它给了我 IV ,我的访问密钥f0d3321327cbaa1aa9ddba07801607442bebaad65b17ca75a15affd5

不,我一直在搜索我的大脑和网络上有关如何解密.ts文件(或连接文件)的答案,我看到使用 openssl 的建议ffmpeg 但是我似乎无法用任何一种工具完全达到目标。

根据我的想法,我可以使用IV和Access_key使用openssl解密流。我使用过IV = 4d1acfe1962002a4abedb8b68c65fa93(删除了0x)。

我到目前为止尝试使用连接文件:

openssl aes-128-cbc -d -in concatenatedfile.ts -out decrypted_concatenatedfile.ts -nosalt -iv 4d1acfe1962002a4abedb8b68c65fa93 -K f0d3321327cbaa1aa9ddba07801607442bebaad65b17ca75a15affd5 

但这只是给了我

bad decrypt
139793444538016:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:539:

我见过使用.key文件并将其转换为可读格式的建议。但由于我没有.key文件,而是一个现成的字符串,我认为这是我失败的地方。

我尝试按this beautiful post @aergistal使用ffmpeg。

ffmpeg -i my.m3u8 -c copy output.ts

但在这里我似乎也失败了我的长串键。

非常欢迎任何关于如何使用openssl或ffmpeg的建议。

1 个答案:

答案 0 :(得分:-1)

AES-128表示密钥是128位,16字节或32个十六进制字符。你的字符串要长得多,这意味着它不能成为正确的密钥。