![如何使用 ffmpeg 将 MKV 转换为 MP4 并保留所有视频、音轨和字幕?](https://linux22.com/image/936129/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20ffmpeg%20%E5%B0%86%20MKV%20%E8%BD%AC%E6%8D%A2%E4%B8%BA%20MP4%20%E5%B9%B6%E4%BF%9D%E7%95%99%E6%89%80%E6%9C%89%E8%A7%86%E9%A2%91%E3%80%81%E9%9F%B3%E8%BD%A8%E5%92%8C%E5%AD%97%E5%B9%95%EF%BC%9F.png)
我一直在尝试使用
ffmpeg -i input.mkv -vcodec copy -acodec copy output.mp4
有input.mkv
两个不同audio track
和一个subtitle
。
但我遇到的问题是,当我转换时,只有默认值audio track
保留,而第二个audio track
和第二个subtitle
没有转换
答案1
如果字幕流包含特殊格式以外的格式,则可能无法使用 mp4 容器MPEG-4 Timed Text
。但您可以对其进行转换:
ffmpeg -i input.mkv -vcodec copy -acodec copy -scodec mov_text output.mp4
这样,您就可以获取所有流,包括转换后的字幕。
此命令仅复制视频和音频流,不会重新编码。字幕被翻译成“定时文本”
答案2
使用-map
高级选项。请参阅手册页(man ffmpeg
),但基本上使用-map 0
摘自手册页:
For example, to map ALL streams from the first input file to output
ffmpeg -i INPUT -map 0 output