问题描述
我有一个video.ts文件,该文件是通过将m3u8格式的视频流加在一起而编译的。我正在尝试使用以下语句解密视频。
subprocess.run(['openssl','aes-128-cbc','-K','[KEY]','-iv','[IV]','-nosalt','-in','video.ts','-
out','video_name.mp4'])
尽管,我有[IV]的值,但没有[KEY]。我确实有以下格式的“ uri”链接,但是使用浏览器打开该链接时会出错。
'key': {'method': 'AES-128','uri': 'https://...','iv': '.....'}
解决方法
您似乎在HLS流上使用AES-128加密。
您可以通过查看M3U8文件本身来进行检查-您应该看到一些信息,包括以下设置:
EXT-X-KEY:
- 方法:AES-128
- URI:密钥服务器的URL
- KEYFORMAT:身份(或未指定KEYFORMAT)
下面的示例(来自https://docs.unified-streaming.com/documentation/drm/hls.html-您也可以从其他包装商那里看到示例):
#EXTM3U
#EXT-X-VERSION:1
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="https://license-server/video.key"
#EXTINF:4,no desc
video-audio=65000-video=236000-0.ts
从上面显示的内容看来,您只需要简单地从示例中的“ uri”:“ https:// ...” URI中获取密钥,然后在解密中使用它。 / p>