使用ffmpeg合并视频文件的一些问题记录
1、需要重新编解码的方案:
ffmpeg -c:v h264_cuvid -i A.mp4 -i B.mp4 -i C.mp4 -i D.mp4 -c:v h264_nvenc -b:v 4096k output.mkv
上述命令的作用是使用nvidia加速的h264_cuvid解码器对4个mp4文件进行解码,并使用h264_nvenc编码器进行编码,比特率4096k。合并后的文件为output.mkv。
此命令调用Nvidia的GPU进行编解码。2060的卡、原视频1080P的分辨率、6000k的源比特率,速度大约是10-15x左右。
选择解码器之前,需要使用ffprobe -show_streams -print_format json XXX.mp4的命令,查看下原视频的编码方式和比特率。选定正确的解码器。
解码器的查看命令是:ffmpeg -codecs | findstr "h264"
2、不需要重新编解码的方案:
先创建一个文本文件filelist.txt:
file 'input1.mkv'
file 'input2.mkv'
file 'input3.mkv'
然后使用ffmpeg -f concat -i filelist.txt -c copy output.mkv进行合并。
直接合并文件,不重新编解码,也不调用GPU。速度最快(受限磁盘IO)。需要注意的是文件需要是同尺寸、同编码类型。
本文参考了《ffmpeg 硬件加速视频转码指南》、《使用ffmpeg拼接视频踩坑记录》、《ffmpeg拼接视频方法concat详解》
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库