我正在对包含 2 个音轨的视频文件进行转码 - 波兰语和英语。不幸的是,我的转码器以某种方式与元数据混淆,并且在输出时,当我使用 MediaInfo 检查视频文件时,我看到两个音轨都被描述为英语。我想将第一个音轨的描述更改为波兰语,因此根据 ffmpeg 文档:
To set the language of the first audio stream:
ffmpeg -i INPUT -metadata:s:a:0 language=eng OUTPUT
Run Code Online (Sandbox Code Playgroud)
不幸的是,运行命令:
ffmpeg -i INPUTPATH -metadata:s:a:0 language=pol OUTPUTPATH
Run Code Online (Sandbox Code Playgroud)
覆盖输入文件导致保存文件大小为 63KB,但它被描述为波兰语音频(没有第二个音轨 - 英语不知何故被删除)
当我使用此命令时,将输出文件保存为另一个文件,以避免在某些内容丢失时覆盖(这是当前情况),但使用参数 -metadata:s:a:4 因为我认为也许我正在从 ffmpeg 读取元数据错误地,它导致将输出文件保存为 800Mb,仅包含英语(没有波兰语曲目)。
我不知道应该在此命令中更改什么才能按我想要的方式运行 - 只需将第一个音轨语言的元数据更改为波兰语。
这是完整的 ffmpeg 输出:
C:\Users\user>ffmpeg -i F:\Path\33244813_6000_1_trailer.mp4 -metadata:s:a:4 language=pol F:\Path\testtest.mp4
ffmpeg version N-91931-gb69ea742ab Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 8.2.1 (GCC) 20180813
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enabl
e-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame …Run Code Online (Sandbox Code Playgroud)