如何使用 Intel HD Graphics 4600 GPU 从 USB 网络摄像头进行 HEVC 转码?

如何使用 Intel HD Graphics 4600 GPU 从 USB 网络摄像头进行 HEVC 转码?

我正在尝试使用 Intel GPU 进行硬件加速。

尝试进行基本测试,似乎 ffmpeg 不允许硬件加速,尽管支持。不确定问题是什么。

尝试将 USB 网络摄像头流从 MJPG 解码转码为 HEVC 编码。

电脑详细信息:

  • 操作系统:Arch Linux x86_64
  • 核心:5.18.12-arch1-1
  • 解决:1920x1080
  • 中央处理器:英特尔 i5-4570 (4) @ 3.600GHz (Haswell)(2013 年 6 月发布)
  • 图形处理器:英特尔高清显卡
  • 记忆:565MiB / 3814MiB

以下是一些不起作用的基本编码 FFMPEG 命令:

ffmpeg -i video_sample.mp4 -c:v hevc_qsv -preset 7 output.mp4 -y

ffmpeg version n5.0.1 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 12.1.0 (GCC)
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-shared --enable-version3
  libavutil      57. 17.100 / 57. 17.100
  libavcodec     59. 18.100 / 59. 18.100
  libavformat    59. 16.100 / 59. 16.100
  libavdevice    59.  4.100 / 59.  4.100
  libavfilter     8. 24.100 /  8. 24.100
  libswscale      6.  4.100 /  6.  4.100
  libswresample   4.  3.100 /  4.  3.100
  libpostproc    56.  3.100 / 56.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video_sample.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    encoder         : Lavf58.76.100
  Duration: 00:00:40.87, start: 0.000000, bitrate: 9392 kb/s
  Stream #0:0[0x1](und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p(pc, gbr/bt709/iec61966-2-1), 1920x1080 [SAR 1:1 DAR 16:9], 9391 kb/s, 30.02 fps, 30 tbr, 15360 tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg4 (native) -> hevc (hevc_qsv))
Press [q] to stop, [?] for help
[hevc_qsv @ 0x559d32fee840] Error initializing an internal MFX session: unsupported (-3)
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!

可能存在什么问题?

值得一提的是,Haswell CPU 似乎没有嵌入 HEVC 转码。

但是,当我尝试编码 H.264 时,我得到了完全相同的错误。Haswell CPU 确实有 H.264 嵌入式转码。

相关内容