从视频流中下载加密的 TS 文件

alb*_*789 5 encryption video ffmpeg

在这篇文章之后,我通常使用浏览器的开发者控制台来查找 .ts 文件的 URL,然后使用 wget 下载它们来下载传输流 (.ts) 文件。之后我使用该ffmpeg -f concat方法将它们组合成一个mp4文件。

最近我遇到一个流视频网站,我使用相同的方法下载所有 .ts 文件。网站在这里。下载所有单独的 .ts 文件后,我使用 ffmprobe 检查文件格式,但意识到 ffmpeg/ffmprobe 无法理解 .ts 文件。虽然该网站使用 http(不是 https),但我认为流未加密,因此我尝试在十六进制编辑器中打开 .ts 文件,但我不知道它是什么格式(但它们看起来不像 zip/gz )。我的问题是:传输流是否加密?如果是,有办法解密吗?如果不?谁能指出我正确的方向,以便我可以让 ffmpeg 理解它们?

示例传输流(第一和第二)位于此处此处,但链接可能稍后会过期。在这种情况下,您将需要在开发人员控制台中打开该站点以查找 .ts 文件的更新链接。

本站使用JW Player 8.0.0

Jas*_*ang 2

您的 ts 示例链接无法成功访问,但我怀疑 ts 已使用 DRM 加密,通常是 AES 128 加密。在这种情况下,您将需要密钥来解密流,然后您可以连接或执行您需要的任何后期制作。

您可以关注以下页面中的信息: https://developer.bitmovin.com/hc/en-us/articles/115001084734-What-is-HLS-AES-Encryption-

Android 上采用 AES 128 加密的 HLS(冰淇淋三明治)

https://www.wowza.com/docs/how-to-secure-apple-hls-streaming-using-drm-encryption

ETC。

  • 只是一个快速更新。我在使用 0 作为 iv 后成功解码了流。即 `openssl enc -d -aes128 -in input.ts -out output.ts -K $(hexdump -v -e '/1 "%02X"' < keyfile.key) -iv 0` (4认同)
  • @IamVISH 我希望这还不算太晚。有多种方法可以做到这一点,但最简单的方法是使用 ffmpeg。打开浏览器的调试器模式,转到“网络”选项卡。转到视频加载的页面,或者如果您已经在该页面,请重新加载页面。然后从调试器网络选项卡中搜索扩展名为 .m3u8 的文件。找到 .m3u8 文件的完整路径后,打开终端并输入“ffmpeg -i“path/to/m3u8”output.mp4”,如果在m3u8 文件。 (3认同)