我想知道我必须安装哪个包以及如何测试它是否运行良好?
我知道有很多类似的问题,但没有一个对我来说是完整和清楚的
答案1
libva-intel-vaapi-driver
vainfo
然后运行vainfo
检查是否看到某些配置文件的入口点:
[...]
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
[...]
对于所有基于 GStreamer 的视频播放器,这个包应该足够了: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
- 解码:
然后设置 vlc 使用硬件解码,从命令行运行它(以获取调试消息)并打开 .mp4 文件。您应该看到:sudo apt-get install i965-va-driver libva-intel-vaapi- driver vainfo
[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**.*
- 编码:安装 Gstreamer、libgstremaer-vaapi1.x、i965-va-driver;以下命令将启动 gstremaer 过滤器图,该图从您的网络摄像头 (/dev/video0) 获取输入,然后编码并复用到测试2.mp4文件:
它会失败如果您的 Sandy Bridge 显卡 (HD 2000/3000 GPU) 没有硬件编码支持。请注意,它对我来说失败了 (Core i7、HD3000 显卡),但根据英特尔的说法,它不应该失败,因为 HD2000/3000 支持 H.264 硬件编码....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
答案3
关于 Totem 的一个简短说明:现在无法对 Totem 使用 gstreamer-vaapi,因为它使用了一个特殊的 GTK 小部件,而该小部件不能像经典播放器那样与 gstreamer 交互。团队正在努力解决这个问题。
答案4
只需安装 vainfo 即可。要安装它,请使用++CTRL打开终端ALTT
sudo apt-get install vainfo