【发布时间】:2016-03-18 01:35:33
【问题描述】:
我有几千个带有 .key 和 .m3u8 文件的 .ts AES-128 加密音频文件。
密钥文件只包含一个由 44 个字符组成的密钥。 .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 文件的关键 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=
【问题讨论】:
-
您知道是否使用了静脉输液吗?我假设是的,因为您不想使用相同的密钥加密多个值,除非您每次都使用唯一的 IV。但假设加密文件的人不知道这一点,您可以使用 openssl 命令行来解密文件: openssl enc -aes-128-cbc -in 'file' -out 'file.ts' -K 'key'跨度>
-
@j-u-s-t-i-n 不知道,但有两个问题。1)这看起来像编码文件的语法。 2)我需要解密来合并文件。
-
那不是编码而是解密。我不熟悉 ffmpeg 格式,但如果您只需要组合文件解密它们,创建一个字节数组并将解密的字节按顺序放置,即 file1 + file2 + file3,然后以您需要的编码对字节进行编码。如果您需要合并文件,我不会使用命令行并将输出文件复制/粘贴在一起,而是应该使用 openssl api c/c++ 或用于 .NET 的 bouncy castle 并在代码中处理解密/合并:wiki.openssl.org/index.php/…
-
我有一个问题:是否可以在没有密钥的情况下解密 .ts 文件?我已经下载了一些东西,但几乎不可能得到密钥。
标签: encryption ffmpeg