通过使用 GPU 硬件加速使用 ffmpeg 连接多个文件

通过使用 GPU 硬件加速使用 ffmpeg 连接多个文件

我需要使用 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 的输出:

图片.png

ffmpeg version: ffmpeg version N-102801-gb74beba9a9
CUDA version: 11.2
Nvidia driver version: 460.84

我不知道还能做什么来加快串联速度。

答案1

这只是部分答案。从您发布的命令行来看,您似乎正在通过解码器和编码器运行源视频。即重新编码。为什么?

如果您想要的只是速度、连接和压缩,我认为您可以直接传递视频帧。与音频相同:-c:v copy

大概。 :-)

相关内容