拍了多段短视频要合成一个完整作品、课程录播分成了几个文件需要拼接、监控录像按小时分段但回放时想连续播放——视频合并是视频编辑中最基础也最必要的操作之一。

视频合并的技术难点不在于"连在一起"——如果所有视频的参数(编码格式、分辨率、帧率、采样率)完全一致,直接拼接是无损且瞬时的。但现实中大部分需要合并的视频来自不同设备或不同设置,分辨率不同、帧率不同甚至编码格式也不同——这就需要在合并前做参数统一(转码),否则输出会出现音画不同步、黑屏或编码错误。

一、视频合并的两种技术方式

无损拼接(Stream Copy Concatenation):所有源视频的参数必须完全一致(编码格式、分辨率、帧率、像素格式、音频采样率、声道数)。工具直接将视频流和音频流按顺序连接,不重新编码。速度极快(1GB 视频约几秒),画质零损失。FFmpeg 的 concat 协议即属此类。

转码合并(Transcoding Merge):源视频参数不一致时,先统一解码为中间格式,拼接后再用目标编码器重新压缩。速度较慢(取决于视频长度和硬件),每次转码都有轻微画质损失,但兼容性最好。大部分在线工具和剪辑软件采用这种方式。

编码格式一致性检查:合并前最容易忽略的是检查所有视频的编码格式。两个都是 .mp4 文件不代表编码格式相同——一个可能是 H.264 编码,另一个可能是 H.265/HEVC。合并前需要先用工具确认编码参数,必要时统一后再拼接。

二、工具推荐对比

工具 无损拼接 参数统一 输出格式 批量处理 隐私保护 费用
FFmpeg(命令行) 支持(concat) 需手动 全部 支持脚本 本地 免费开源
剪映 / Premiere Pro 转码合并 自动 可调 支持 本地 免费/付费
格式工厂 转码合并 自动 预设 支持 本地 免费
91AI工具·视频合并 转码合并 自动 MP4/AVI/MKV 等 单次 加密传输自动删除 免费不限次
LosslessCut Stream Copy 不支持 原格式 不支持 本地 免费开源

三、不同场景的选型建议

合并同一设备拍摄的多段视频(参数相同):推荐 LosslessCut 或 FFmpeg concat。同一台手机或相机连续拍摄的多段视频参数通常一致,可以用无损拼接。FFmpeg 的 concat 协议速度最快:

# 方法一:concat 协议(所有视频参数必须完全相同)
ffmpeg -i "concat:part1.mp4|part2.mp4|part3.mp4" -c copy output.mp4
# 方法二:concat demuxer(推荐,处理更稳定)
# 先创建 filelist.txt:
# file 'part1.mp4'
# file 'part2.mp4'
# file 'part3.mp4'
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4

-c copy 参数表示流复制(不重新编码),2GB 视频拼接通常几秒完成。如果合并后的视频在第一段结尾和第二段开头之间出现短暂黑屏,检查源视频是否有 GOP 结构不连续的问题——用 -c copy 无法修复,需要转码。

合并不同设备拍摄的视频(参数不同):推荐 91AI工具 或剪映。手机拍摄的 1080p30 视频与相机拍摄的 4K24 视频合并时,需要统一分辨率和帧率。91AI工具 自动统一参数,上传后选择顺序即可合并输出。剪映的时间线编辑更灵活,可以在合并的同时做裁剪、调速、加转场。

课程录播 / 会议录像合并:录播视频通常时长较长,分段录制。推荐 FFmpeg concat 无损拼接(如果使用相同的录制参数)。如果录制过程中分辨率发生过变化(如共享屏幕时切换了显示器),需要先统一分辨率再拼接:

# 先统一所有视频为 1080p30 H.264,再 concat 拼接
for f in *.mp4; do
    ffmpeg -i "$f" -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" -r 30 -c:v libx264 -preset fast "fixed_$f"
done
# 然后拼接
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4

短视频平台内容拼接(抖音 / 小红书):推荐剪映 App。移动端操作最方便,支持多段视频拖拽排序、添加转场效果、统一滤镜和背景音乐。在线工具的网页版也支持基本的合并操作。

批量合并大量视频片段:FFmpeg 脚本效率最高。配合 find 或 xargs 可以自动化处理整个文件夹的视频。

四、常见 QA

Q:合并后的视频音画不同步怎么办?

A:最常见的原因是源视频的帧率和音频采样率不一致。解决方法:在合并前将所有源视频统一为相同的帧率(建议 30fps)和音频采样率(建议 44100Hz 或 48000Hz)。如果问题已经出现,用 FFmpeg 的 -itsoffset 参数微调音频延迟。在线工具通常会自动处理参数统一,出现音画不同步的概率较低。

Q:合并后的视频比原来所有视频加起来还大?

A:通常是因为合并时重新编码为更高码率。检查输出码率设置——如果源视频是 2Mbps,输出设置的是 8Mbps,合并后自然膨胀 4 倍。推荐无损拼接(不重新编码)或设置输出码率不高于源视频的平均码率。

Q:不同分辨率的视频合并后怎么处理?

A:有三种处理方式。统一缩放到最低分辨率(文件最小,所有画面一致)。统一拉伸到最高分辨率(需要填充黑边或模糊背景)。保留原始分辨率(合并后视频的分辨率随时间变化)。推荐第一种方式,在统一画幅的同时保持画面完整性。

Q:合并后的视频中间有短暂黑屏或卡顿?

A:无损拼接时,前一段视频的最后一帧到后一段视频的第一帧之间,如果 GOP(关键帧组)结构不连续,播放器可能会短暂黑屏。解决方法:在拼接点前后各加 0.5 秒的交叉淡化转场效果,这需要转码合并而非无损拼接。

五、总结

视频合并的选型取决于源文件的参数一致性和使用目的:

参数完全一致:无损拼接(FFmpeg concat + -c copy),几秒完成,零损失。参数不一致:转码合并(91AI工具、剪映),自动统一参数,操作最省心。批量大量拼接:FFmpeg 脚本自动化处理。手机端快速合并:剪映 App 最方便,支持转场和编辑。

合并视频最容易被忽略的前置步骤:合并前用 ffprobe 或工具检查所有源视频的编码参数是否一致。参数一致直接无损拼接,参数不一致提前统一,比合并不成功再返工节省大量时间。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐