【问题标题】:Download encrypted TS files from video stream从视频流中下载加密的 TS 文件
【发布时间】:2018-06-06 02:00:17
【问题描述】:

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

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

一个示例传输流(第一个和第二个)是herehere,但链接可能会过期。在这种情况下,您需要在开发者控制台中打开该站点以找到 .ts 文件的更新链接。

网站使用 JW Player 8.0.0

【问题讨论】:

  • Stackoverflow 适用于编程问题。关于通用计算硬件和软件的问题对于 Stack Overflow 来说是题外话,除非它们直接涉及主要用于编程的工具。您可以通过Super User 获得帮助。

标签: video encryption ffmpeg


【解决方案1】:

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

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

HLS with AES 128 encryption on Android (Ice Cream Sandwich)

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

等等

【讨论】:

  • 从这个意义上说,这是否意味着我无法解密流?我是流的接收者,我的浏览器可以播放流,所以我确信密钥也以某种方式传递。我只是不知道如何找到它。
  • 你可以尝试定位m3u8文件,里面保存了所有的ts地址,key一般分布在那里。没有 DRM 是完美的,只是解密流有多难。
  • 每个段的iv应该在m3u8文件中注明。如果不存在,您可以尝试使用 0 来设置初始向量。毕竟,正如您所说,您需要的一切都已经在页面中。
  • 只是一个快速更新。在使用 0 作为 iv 后,我设法解码了流。那是openssl enc -d -aes128 -in input.ts -out output.ts -K $(hexdump -v -e '/1 "%02X"' < keyfile.key) -iv 0
  • @IamVISH 我希望这还不算太晚。有几种方法可以做到这一点,但最简单的方法是使用 ffmpeg。打开浏览器的调试器模式,转到“网络”选项卡。转到加载视频的页面,或者如果您已经在该页面,请重新加载该页面。然后从调试器网络选项卡中搜索扩展名为 .m3u8 的文件。找到 .m3u8 文件的完整路径后,打开终端并输入 ffmpeg -i "path/to/m3u8" output.mp4 如果 m3u8 文件中还指定了密钥,ffmpeg 将自动为您解密并连接它们。
猜你喜欢
  • 2014-04-06
  • 1970-01-01
  • 2012-12-06
  • 2013-12-04
  • 2019-08-10
  • 1970-01-01
  • 2012-11-13
  • 2013-02-24
  • 1970-01-01
相关资源
最近更新 更多