我這樣使用的命令,比如有很多有多個音頻和字幕語言文件,然而軌跡號不一致(英文音頻流並不總是在前):映射流通過語言的FFmpeg
ffmpeg -i "input.mkv" -map 0 -map -0:a:1 -c:v copy -c:a copy "output.mkv"
不會產生預期的結果。周圍搜索後,我發現這是可能基於與此命令語言映射流:
ffmpeg -i "input.mkv" -map 0 -map -0:m:language:eng -c:v copy -c:a copy "output.mkv"
然而-map -0:m:language:eng
將刪除所有曲目與英文標記。要保留字幕軌道,您可以使用-map 0:s
,但這是一個很好的解決方案,但我想知道是否可以僅基於語言映射音頻流。
該命令將複製視頻流*和非英文字幕流。 *除非視頻標記爲英語,通常不會。我的解決方法避免了這一點。 – Mulvya
嗯,你的解決方案不會映射附件,但你怎麼做,而不使用-map 0或給每個附件流的ID?你發佈的第一個解決方案是製作一個臨時文件,這個過程需要更長的時間。另外,如果在刪除英文流後不使用'-map 0:v',那麼如果視頻有英文標誌,視頻會不會被刪除? ? – ffmpeg123
保留數據和附件流的修改解決方法。你的原始目的,IIRC,是隻刪除英文音頻流。我的解決方法可以做到這一點,並讓所有其他事情都可以完成 – Mulvya