大地主的知识库
专注于收集、整理和分享各种各样的知识信息

如何使用FFmpeg合并多个MP4视频(短剧分集合成完整版)

如何使用FFmpeg合并多个MP4视频(短剧分集合成完整版)

在追剧或整理视频素材时,经常需要将多个分集的MP4视频合并成一个完整视频。本文将详细介绍如何使用FFmpeg实现无损合并,并解决常见问题。

目录

准备工作

安装FFmpeg

Windows:

# 从官网下载后解压,并添加bin目录到PATH
https://ffmpeg.org/download.html

Linux/macOS:

sudo apt install ffmpeg # Ubuntu/Debian
brew install ffmpeg # macOS

检查视频文件

确保所有MP4文件:

  • 编码格式相同(如H.264/AAC)
  • 文件名按顺序排列

基础合并方法

步骤

  1. 创建list.txt文件:
    file '1.mp4'
    file '2.mp4'
    ...
    file '40.mp4'
  2. 执行合并命令:
    ffmpeg -f concat -safe 0 -i list.txt -c copy output.mp4

按数字顺序合并

Windows(PowerShell)

Get-ChildItem "*.mp4" |
Sort-Object { [int]($_.Name -replace '[^\d]', '') } |
ForEach-Object { "file '$($_.Name)'" } |
Out-File "list.txt" -Encoding UTF8NoBOM

Linux/macOS

for f in $(ls *.mp4 | sort -V); do
echo "file '$f'";
done > list.txt

常见问题解决

错误:unknown keyword 'file'

  • 原因:BOM头或格式错误
  • 解决:
    • 用Notepad++转为UTF-8(无BOM)
    • 确保格式为file '文件名.mp4'

错误:Invalid data found

  • 原因:编码不一致
  • 解决:
    ffprobe input.mp4 # 检查编码
    # 不一致时先转码
    ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4

进阶技巧

添加片头/片尾

echo "file 'intro.mp4'" > list.txt
Get-ChildItem "*.mp4" | Sort-Object >> list.txt
echo "file 'outro.mp4'" >> list.txt

添加转场效果

ffmpeg -f concat -safe 0 -i list.txt -vf "fade=in:0:30" output.mp4

总结

需求 解决方案
快速合并 ffmpeg -f concat -i list.txt -c copy output.mp4
数字排序 Sort-Object { [int]($_.Name -replace '[^\d]', '') }
中文路径 使用单引号包裹
编码错误 检查并统一编码格式

提示:合并前建议备份原文件,FFmpeg版本建议使用最新稳定版。

赞(0) 打赏
未经允许不得转载:大地主的知识库 » 如何使用FFmpeg合并多个MP4视频(短剧分集合成完整版)

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

微信扫一扫打赏

登录

找回密码

注册