gpt4 book ai didi

ffmpeg - 如何从具有可靠/可重现结果的视频文件中剥离元数据?

转载 作者:行者123 更新时间:2023-12-04 23:14:40 25 4
gpt4 key购买 nike

我正在尝试找到一种从各种媒体文件中生成“仅原始数据”的干净方法。我的意思是,拿一个文件,test.mp4并剥离所有元数据/标题,以便我可以生成实际视频数据的哈希。

在对这个主题进行了大量研究之后,ffmpeg 似乎是我最好的选择,但是我发现执行元数据剥离的命令似乎会根据 ffmpeg 的版本产生不同的结果,这让我认为要么( a) 我的咒语有误,或者 (b) ffmpeg 实际上并没有只返回原始数据。

为了对此进行测试,我使用了 jrottenberg's ffmpeg Docker containers在多个 ffmpeg 版本中创建同一文件的哈希:

for tag in 4.0-centos 4.0-alpine 3.4-alpine 3.4-centos 3.0-alpine 3.0-centos; do
docker pull jrottenberg/ffmpeg:${tag}
docker run --rm \
-v /data/:/data/ \
-it jrottenberg/ffmpeg:${tag} \
-i /data/test.mp3 \
-map_metadata -1 -c:v copy -c:a copy \
-f mp4 - | md5sum
done

结果是这些实例中的每一个都有不同的哈希输出(为清楚起见,Docker 输出被截断):
d7e3577ffe65d73240f48842e8d42207  -
da2bda81911d758c877aace6ed3c0025 -
ed24948c1dedf5d53870dfcfe24c7c70 -
3dbb89d812c26711a33ca670403ccc20 -
a4533446d3225e755eb041167e32b279 -
69a51d82acc9987eed8b517a748435eb -

所以我的问题是:有没有更可靠的方法来做到这一点?我只是错过了 ffmpeg 的选项吗?我在这里遗漏了什么,还是 ffpeg 不是这项工作的好工具?如果不是这样,什么是好的选择?

最佳答案

生成哈希

使用 hash muxer返回原始解码数据的哈希:

$ ffmpeg -loglevel error -i input.mp3 -f hash -f null -
SHA256=727ef2f1a4317a97ddb9aa83e80b5d876986a92c67045317bffb6505e4de6617

使用 -map option选择所需的流。

仅生成第一个音频流的哈希并输出 MD5 哈希的示例:
$ ffmpeg -loglevel error -i input.foo -map 0:a:0 -f hash -hash MD5 -
MD5=616beb5bf16504caf37aacf0d0e99731

元数据不会影响返回的哈希(除非您考虑专辑封面元数据,您的 MP3 包含它,并且您的 ffmpeg 命令不排除它)。

原始数据

Barring simply using the SHA256 hash instead, is there a way to get the raw data rather than just a hash of it?



您可以输出原始视频:
ffmpeg -i input -f rawvideo output

或管道它:
ffmpeg -i input -f rawvideo -

视频和音频到单独的输出文件 outvideooutaudio :
ffmpeg -i input -map 0:v:0 -f rawvideo outvideo -map 0:a:0 -f s16le outaudio

关于ffmpeg - 如何从具有可靠/可重现结果的视频文件中剥离元数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50593967/

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