我需要使用 GPU 硬件加速将多个 mp4、h264 编码文件与加速过滤器连接成一个文件。我使用的是 Debian 10 Buster 64bit,我使用的显卡是 Nvidia Gainward GTX960。
我已经安装了 CUDA 和 Nvidia 驱动程序,并使用以下参数配置了 ffmpeg:
./configure --enable-nonfree -–enable-cuda-sdk –enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64`
我认为问题在于 GPU 并未 100% 工作,因此串联需要相当长的时间。
我用来连接文件并加速它们的命令:
./ffmpeg -c:v h264_cuvid -f concat -i mylist.txt -c:a copy -c:v h264_nvenc -y -filter:v 'setpts='0.0625'*PTS' -an merged.mp4
执行上述命令时 nvidia-smi 的输出:
ffmpeg version: ffmpeg version N-102801-gb74beba9a9
CUDA version: 11.2
Nvidia driver version: 460.84
我不知道还能做什么来加快串联速度。
答案1
这只是部分答案。从您发布的命令行来看,您似乎正在通过解码器和编码器运行源视频。即重新编码。为什么?
如果您想要的只是速度、连接和压缩,我认为您可以直接传递视频帧。与音频相同:-c:v copy
。
大概。 :-)