使用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详解

posted @ 2024-03-21 17:54  Mrcoool  阅读(108)  评论(0编辑  收藏  举报