当输入包含容器时无法写入元数据

当输入包含容器时无法写入元数据

我不明白这一点。

对于第一个命令,元数据(处理程序、语言)已正确存储。第二个命令保留了 temp.mkv 中的元数据。

我究竟做错了什么?

作品:

ffmpeg^
 -i video.h264 -i audio1.dts -i audio2.dts -i sbtl1.srt -i sbtl2.srt^
 -map 0:0 -map 1:0 -map 2:0 -map 3:0 -map 4:0^
 -metadata:s:v:0 handler="AVC"^
 -metadata:s:a:0 language=deu -metadata:s:a:0 handler="DTS-HD Master Audio"^
 -metadata:s:a:1 language=kor -metadata:s:a:1 handler="DTS-HD Master Audio"^
 -metadata:s:s:0 language=ger -metadata:s:s:0 handler="Deutsch (forced)"^
 -metadata:s:s:1 language=ger -metadata:s:s:1 handler="Deutsch"^
 -movflags disable_chpl^
 -c:s mov_text -c:v copy -c:a alac -sample_fmt:a s16p^
 output.m4v

不:

ffmpeg^
 -i temp.mkv -i sbtl1.srt -i sbtl2.srt^
 -map 0:0 -map 0:1 -map 0:2 -map 1:0 -map 2:0^
 -metadata:s:v:0 handler="AVC"^
 -metadata:s:a:0 language=deu -metadata:s:a:0 handler="DTS-HD Master Audio"^
 -metadata:s:a:1 language=kor -metadata:s:a:1 handler="DTS-HD Master Audio"^
 -metadata:s:s:0 language=ger -metadata:s:s:0 handler="Deutsch (forced)"^
 -metadata:s:s:1 language=ger -metadata:s:s:1 handler="Deutsch"^
 -movflags disable_chpl^
 -c:s mov_text -c:v copy -c:a alac -sample_fmt:a s16p^
 output.m4v

temp.mkv = 视频.h264 & 音频1.dts & 音频2.dts

答案1

在 ffmpeg 4.0.3 中它是处理程序,自 4.1(可能更早)以来它是 handler_name。

相关内容