gpt4 book ai didi

encryption - 解密 .ts 音频文件并将其与 .m3u8 结合

转载 作者:行者123 更新时间:2023-12-03 07:46:24 25 4
gpt4 key购买 nike

我有几千个 .ts AES-128 加密音频文件,其中包含 .key 和 .m3u8 文件。

key 文件仅包含由 44 个字符组成的 key 。 .m3ud 文件似乎是某种类型的播放列表。

#EXTM3U
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="http://localhost:[port]/hls/keys/nax_9781843794066.key"
#EXTINF:10,
http://localhost:[port]/filesequence0000000.ts
#EXTINF:10,
etc...

请注意,.ts 文件的 key URI 和路径现在都是错误的。

环顾四周,ffmpeg 似乎可以使用这种格式。但我不确定语法。

如何解密并合并这些文件?

我一直在尝试修复播放列表语法并弄清楚如何使用 ffmpeg,然后就开始了。

ffmpeg -i nax_9781843794066.m3u8 -c copy output.ts
ffmpeg version N-77197-gdf2ce13 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 5.2.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
libavutil 55. 10.100 / 55. 10.100
libavcodec 57. 17.100 / 57. 17.100
libavformat 57. 19.100 / 57. 19.100
libavdevice 57. 0.100 / 57. 0.100
libavfilter 6. 20.100 / 6. 20.100
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
[hls,applehttp @ 0000003e6348a660] Error when loading first segment 'filesequence0000000.ts'
nax_9781843794066.m3u8: Invalid data found when processing input

filesequence0000000.ts 是同一文件夹中的第一个文件。我无法判断这是加密问题还是其他问题。

这是关键文件,如果重要的话:MoOoNvcKlThWBm2T+VzYq9QKZLw7MFUqSyLYjiwquTQ=

最佳答案

最新版本的 ffmpeg 应该能够解密 AES-128 HLS 流。您不需要网络服务器。如果 m3u8 URI/路径错误,您可以:

  • 创建目录
  • 将 key 复制到 key 文件,即my.key,并将其放在目录中。请注意,如果播放列表有多个键,则可以旋转键,将它们全部复制到不同的文件中。
  • 将所有 .ts 段复制到同一目录
  • 复制并编辑 playlist.m3u8,并仅使用键 URI 和段的文件名。
  • 要获取单个 .ts 文件,请执行以下操作:

    ffmpeg -i playlist.m3u8 -c copy output.ts
  • 如果您只想要音频流而不需要 .ts 容器,您可以提取它。例如:假设您有一个使用 AAC 编解码器运行的单个音频流:

    ffmpeg -i playlist.m3u8 -map 0:a -c copy output.aac

这会将 AAC 流提取到文件中,而无需重新编码。如果您想要与源不同的编解码器,则必须重新编码。

如果由于某种原因您必须使用 openssl 来解密段,请记住,如果没有指定 IV,则 IV 为等于片段的媒体序列,即。第一段为 IV=0,第二段为 IV=1,依此类推。解密后更新播放列表以指向解密的片段并删除 EXT-X-KEY 行。如果你走这条路,你甚至不需要 ffmpeg 来获取单个 .ts 文件,因为 MPEG-TS 是可以直接连接的,即。您只需在解密的段上使用 cat 即可。

关于encryption - 解密 .ts 音频文件并将其与 .m3u8 结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34235397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com