如何在 Intel Sandy Bridge 上正确启用/测试 VA-API?

如何在 Intel Sandy Bridge 上正确启用/测试 VA-API?

我想知道我必须安装哪个包以及如何测试它是否运行良好?

我知道有很多类似的问题,但没有一个对我来说是完整和清楚的

答案1

libva-intel-vaapi-driver 安装 libva-intel-vaapi-drivervainfo 安装 vainfo

然后运行vainfo检查是否看到某些配置文件的入口点:

[...]
vainfo: Supported profile and entrypoints
    VAProfileMPEG2Simple            : VAEntrypointVLD
    [...]

对于所有基于 GStreamer 的视频播放器,这个包应该足够了:gstreamer0.10-vaapi 安装 gstreamer0.10-vaapi。如果我没有记错的话,大多数标准视频播放器(例如 Totem)都是基于 GStreamer 的。

VLC 则不同,但它是--enable-libva在 Ubuntu 中使用构建标志构建的(如图所示apt-get source vlc)。这意味着它应该只需在配置中启用它即可:

在此处输入图片描述

或者,在命令行上手动执行:

vlc --ffmpeg-hw -v
[...]
libva: VA-API version 0.32.0
[0x7feeecc02a28] avcodec decoder: Using VA API version 0.32 for hardware decoding.

答案2

  1. 解码:
    sudo apt-get install i965-va-driver libva-intel-vaapi- driver vainfo
    
    然后设置 vlc 使用硬件解码,从命令行运行它(以获取调试消息)并打开 .mp4 文件。您应该看到:
    [0x1781058] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
    libva info: VA-API version 0.35.0
    libva info: va_getDriverName() returns 0
    libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
    libva info: Found init function __vaDriverInit_0_35
    libva info: va_openDriver() returns 0
    [0x7fd825a569a8] avcodec decoder: Using VA API version 0.35 for **hardware decoding**.*
    
  2. 编码:安装 Gstreamer、libgstremaer-vaapi1.x、i965-va-driver;以下命令将启动 gstremaer 过滤器图,该图从您的网络摄像头 (/dev/video0) 获取输入,然后编码并复用到测试2.mp4文件:
    gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1800 ! video/x-raw,format= I420,width=640,height=480 ! vaapipostproc ! queue ! vaapiencode_h264 ! qtmux ! filesink location=test2.mp4
    
    它会失败如果您的 Sandy Bridge 显卡 (HD 2000/3000 GPU) 没有硬件编码支持。请注意,它对我来说失败了 (Core i7、HD3000 显卡),但根据英特尔的说法,它不应该失败,因为 HD2000/3000 支持 H.264 硬件编码....

答案3

关于 Totem 的一个简短说明:现在无法对 Totem 使用 gstreamer-vaapi,因为它使用了一个特殊的 GTK 小部件,而该小部件不能像经典播放器那样与 gstreamer 交互。团队正在努力解决这个问题。

答案4

只需安装 vainfo 即可。要安装它,请使用++CTRL打开终端ALTT

sudo apt-get install vainfo

相关内容