我一直在尝试从MKV(Matroska)文件中删除不需要的音频流。我之所以这样做,是为了避免在Windows Media Player中手动选择所需的流。
输入文件提供以下ffmpeg信息:
Stream #0.0: Video: mpeg4, yuv420p, 704x396 [PAR 1:1 DAR 16:9], 29.98 tbr, 1k tbn, 29.98 tbc
Stream #0.1(eng): Audio: aac, 24000 Hz, 5.1, s16
Stream #0.2(jpn): Audio: aac, 24000 Hz, 5.1, s16
Stream #0.3(eng): Subtitle: 0x0000
Stream #0.4(eng): Subtitle: 0x0000
Stream #0.5: Attachment: 0x0000
Stream #0.6: Attachment: 0x0000
由于我想要流0、1和3(子流),因此我的ffmpeg命令如下所示:
ffmpeg -i input.mkv -map 0:0 -map 0:1 -map 0:3 -vcodec copy -acodec libmp3lame -newsubtitle test.mkv
奇怪地给出了错误:
At least one output file must be specified
删除字幕:
ffmpeg -i input.mkv -map 0:0 -map 0:1 -vcodec copy -acodec libmp3lame test.mkv
给我这个:
Number of stream maps must match number of output streams
我似乎不太了解“地图”选项的工作原理。有人可以帮我解决吗?
--atracks
option不再存在,而是应该使用--audio-tracks
或--video-tracks
。