如何让 Intel QSV FFmpeg 在 ubuntu 14.04 上的 GPU 上运行?

如何让 Intel QSV FFmpeg 在 ubuntu 14.04 上的 GPU 上运行?

在 ubuntu 14.04 中,我的 ffmpeg 配置是,

ffmpeg version ebe0fa0 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-4)
  configuration: --enable-gpl --enable-libx264 --enable-opencl --enable-nonfree --enable-libmfx --enable-libmp3lame --enable-libaacplus
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

使用此命令,

ffmpeg -i /home/M.mp4 -c:v h264_qsv -preset:v faster /home/out.avi

CPU% 已超过 90(375%)。因此它在 CPU 中运行。

我研究发现 Intel QSV 运行在 die 处理器上,几乎是在 CPU 上。ffmpeg 主要用于硬件加速。那么是否可以让它在 ubuntu 中的 Intel GPU 上运行?

答案1

CPU 几乎被充分利用并不意味着它没有在 GPU 上工作。全部编码工作转移到 GPU,但 GPU 会加速并卸载部分任务。可能有工具可以直接查询 GPU 的利用率图形处理器组件(我不知道它们是什么)——这些可以确认你的 GPU 正在执行部分工作。

在我的特定机器上,h264_qsv 编解码器的运行速度在帧/秒方面比 libx264 编解码器快大约 5 倍,尽管在两种情况下报告的“CPU 利用率”都接近 100%。

[lwobker:/dtop/nobackup/]$ cat /proc/cpuinfo | egrep 'model name'
model name      : Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz

[lwobker:/dtop/nobackup]$ ffmpeg -hide_banner -codecs | egrep 'qsv' | egrep '264'
 DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_qsv ) (encoders: libx264 libx264rgb h264_nvenc h264_qsv nvenc nvenc_h264 )

相关内容