You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用ffmpeg拼接两个.m4v文件并保留原有字幕

ffmpeg concat拼接视频保留字幕解决方案

原命令执行后字幕丢失是因为ffmpeg默认仅自动选中输入流中的视频、音频轨道,-c copy仅会复制已选中的轨道,字幕轨道未被选中所以会丢失。

方案1:流复制模式(所有输入文件轨道参数一致时使用)

如果所有输入文件的视频、音频、字幕轨道的编码、分辨率、帧率、采样率等参数完全匹配,可直接通过指定选中所有轨道实现字幕保留,命令如下:

ffmpeg -f concat -safe 0 -i list.txt -c copy -map 0? output.m4v

参数说明:

  • -map 0?:选中拼接后的第0路输入的所有轨道,后缀?表示对应轨道不存在时不会抛出错误

方案2:兼容MP4/M4V容器字幕编码

如果方案1执行后字幕仍然无法正常显示,是因为MP4/M4V容器仅支持特定编码的字幕轨,需主动指定字幕编码为兼容的mov_text格式:

ffmpeg -f concat -safe 0 -i list.txt -c:v copy -c:a copy -c:s mov_text -map 0? output.m4v

替代方案:使用兼容性更好的MKV容器

MKV容器几乎支持所有格式的字幕轨道,无需额外指定字幕编码,命令如下:

ffmpeg -f concat -safe 0 -i list.txt -c copy -map 0? output.mkv

注意事项

使用-c copy流复制拼接的前提是所有输入文件的轨道参数完全一致,若参数不匹配会出现音画不同步、轨道损坏的问题,这种情况下需要移除-c copy相关参数,走重新编码流程完成拼接。

内容的提问来源于stack exchange,提问作者Sequestered1776Vexer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 22:00:02