我一直在寻找使用 ffmpeg 将自定义数据保存到电影文件中的方法,主要是实际的开始帧、结束帧和其他一些信息(例如键:值对),以便以后我可以随时从电影文件中获取详细信息。
我到处找了找,但还是搞不懂。有什么办法吗?
答案1
您没有提到想要该功能用于哪种容器格式,因为有些容器格式不允许自定义标签。
FFmpeg 的 Matroska 复用器允许随机标签,因此
ffmpeg -i input -c copy
-metadata key1=value1
-metadata:s:v key2=value2
-metadata:s:a:0 key3=value3
out.mkv
第一个元数据选项设置一个全局值,第二个选项应用于所有视频流,第三个选项仅适用于第一个音频流。
Mediainfo 和 ffprobe 可以显示这些值。
答案2
明白了。。在对同一行进行一些挖掘后 - 元数据发现了这篇精彩的文章 -https://jmesb.com/how_to/create_id3_tags_using_ffmpeg我相信这可以实现任何格式。
ffmpeg 支持一些可以操作的标签,如标题、评论、艺术家、专辑、曲目
ffmpeg32 -i out.mov-metadata publisher="Publishers Info" -metadata artist="my metadata" -metadata album="another data" -metadata TIT3="more data" out2.mov
这样我就能够将自定义数据添加到元数据中,虽然 TIT3 用于字幕,但我们在工作中从未使用它,所以我可以通过这个属性进行破解。