压缩 MP4 文件时 FFMPEG 命令行不使用 GPU

FFMPEG command line not using GPU when compressing MP4 file

嘿,我一直在研究一个很好的命令行字符串,用于我的电影,我想 trim 将大小缩小到至少当前大小的一半。

关于我的 GPU 和计算机系统的手刹信息是这样的:

HandBrake 1.5.1 (2022011000)
OS: Microsoft Windows NT 10.0.19043.0
CPU: Intel(R) Xeon(R) CPU           X5650  @ 2.67GHz (12 Cores, 24 Threads)
Ram: 40940 MB, 
GPU Information:
  Microsoft Remote Display Adapter - 10.0.19041.662
  NVIDIA Tesla K10 - 30.0.14.7141
  NVIDIA Tesla K10 - 30.0.14.7141
  Microsoft Basic Display Adapter - 10.0.19041.868

当我最初制作命令行时,我只是用它来将文件复制到需要使用以下命令的位置:

ffmpeg -y -hide_banner -threads 8 -hwaccel cuda -hwaccel_device 1 -hwaccel_output_format cuda -v verbose -i "c:\testingvids\AEON FLUX 2005.mp4" -c:v h264_cuvid -gpu:v 1 -preset slow -c copy "c:\testingvids\AEON FLUX 2005 nvidia.mp4"

这产生了 828x 的处理速度:

但是对于同一个文件并进行压缩,我似乎只能获得大约 8 倍的速度?

所以这有很大的不同。我是否使用了正确的语法来仅使用我的 GPU convert/compress 带有 h264 nvenc 的 mp4?

IMO,性能几乎符合您对 10-year-old GPU 的期望。如果您检查 this link 并仅显示“GK104 - Kepler(第一代)”的结果并且性能约为 5 fps。 Tesla K10 板载了 x2 GK104,因此大约是这个数字的两倍 10 fps(减去缩放损失)得到你得到的数字。

此外,您应该将 GPU 性能与可比较的 CPU 编码性能进行比较,而不是复制。 运行 带有 -c:v libx264 的 FFmpeg(这是 MP4 的默认编码器)并找出您的双 CPUs 运行 的 FPS 类型。然后,选择两者中更强大的。

旁注:我发现我的旧 low-end GPU(2014 年左右的 GTX 750 Ti)在较新的 mid-range Ryzen 3600 CPU(2020 年)上没有业务编码视频).因此,当您的系统像我一样不平衡时,GPU 并不总是比 CPU 编码得更快。