我的最终目标是创建一个FFmpeg命令,将我的h264.DTS.mkv文件转换为与AppleTV兼容的格式,同时保留原始质量。
我差不多了,但是我还没弄清楚如何禁用流/曲目。
到目前为止,我有:
ffmpeg -i FILE \
-y -strict experimental \
-map 0:0 -map 0:1 -map 0:1 -map 0:1 -map 0:2 \
-c:0 copy -c:1 aac -ac:a 2 -c:2 ac3 -ac:a 6 -c:3 copy -c:4 mov_text \
OUTPUT
这将生成一个类似于:
的输出文件问题是我需要它看起来像:
因此,我需要知道如何禁用非第一音频流/曲目。
根据我的阅读,这是“tkhd.flags”位置的轨道标题原子的一部分。但我无法弄清楚如何通过命令行参数设置它。
非常感谢任何帮助。
答案 0 :(得分:2)
你检查过这个:http://ffmpeg.org/trac/ffmpeg/wiki/How%20to%20use%20-map%20option 只是不要将不需要的流复制到输出中。
ffmpeg -i FILE \
-y -strict experimental \
-map 0:0 -map 0:1 -map 0:4 \
-c:0 copy -c:1 aac -ac:a 2 -c:4 mov_text \
OUTPUT
我希望我能正确回答你的问题!
答案 1 :(得分:2)
Hello Dipesh这将解决您的问题。
您要完成的任务是标记哪个音频流是默认的,同时在所有不需要的音频流上取消此标记。当尝试选择哪个(如果有的话)字幕轨道将是默认和/或可能被强制时,该解决方案将是类似的。
FFmpeg会在没有用户干预的情况下自动将所有流标记为default
。因此,我们首先需要标记所有流-default
,然后将default
标记为默认值。让我们使用音频流作为示例。
-disposition:a -default -disposition:a:0 default
上述语句的结果将所有音频流-default
和第一个音频流标记为default
。
有关其使用的详细信息,请参阅 5.4主要选项下的FFmpeg Documentation。
ffmpeg -i FILE \
-y -strict experimental \
-map 0:0 -map 0:1 -map 0:1 -map 0:1 -map 0:2 \
-c:0 copy -c:1 aac -ac:a 2 -c:2 ac3 -ac:a 6 -c:3 copy -c:4 mov_text \
-disposition:a -default -disposition:a:0 default \
OUTPUT
在解决方案-disposition:a -default
中,将输出文件中的所有音频流标记为不默认值。虽然-disposition:a:0 default
将输出文件中的第一个音频流标记为默认值。
答案 2 :(得分:1)