【发布时间】:2014-11-05 15:43:10
【问题描述】:
我下载了一个软件 (info-beamer),我想使用 GPU 加速来解码 H.264 视频。我知道我的平台能够使用 GPU 解码 H.264 视频。我使用以下命令对 gstreamer 进行了一些测试,视频播放流畅,没有过多的 CPU 使用:
gst-launch-1.0 filesrc location=./Sintel.mp4 ! qtdemux ! vaapidecode ! vaapisink
但是当我使用 info-beamer 播放相同的视频时,会使用 100% 的 CPU。我认为 libavcodec 如果可用的话会自动使用 VAAPI ...我应该使用另一个库吗?我做错了什么?
我的平台正在运行带有 Intel HD 的 Atom E3826,并安装了 Ubuntu 14.04。
编辑:
我想我安装了所有必需的库:
nap@nap:~$ dpkg -l | grep libva
ii libva-dev:amd64 1.3.0-2 amd64 Video Acceleration (VA) API for Linux -- development files
ii libva-drm1:amd64 1.3.0-2 amd64 Video Acceleration (VA) API for Linux -- DRM runtime
ii libva-egl1:amd64 1.3.0-2 amd64 Video Acceleration (VA) API for Linux -- EGL runtime
ii libva-glx1:amd64 1.3.0-2 amd64 Video Acceleration (VA) API for Linux -- GLX runtime
ii libva-intel-vaapi-driver 1.3.0-1ubuntu1 all VAAPI driver for Intel G45 & HD Graphics family (transitional package)
ii libva-tpi1:amd64 1.3.0-2 amd64 Video Acceleration (VA) API for Linux -- TPI runtime
ii libva-wayland1:amd64 1.3.0-2 amd64 Video Acceleration (VA) API for Linux -- Wayland runtime
ii libva-x11-1:amd64 1.3.0-2 amd64 Video Acceleration (VA) API for Linux -- X11 runtime
ii libva1:amd64 1.3.0-2 amd64 Video Acceleration (VA) API for Linux -- runtime
nap@nap:~$ dpkg -l | grep vaapi
ii gstreamer1.0-vaapi:amd64 0.5.7-0ubuntu4 amd64 VA-API plugins for GStreamer
ii libgstreamer-vaapi1.0-0:amd64 0.5.7-0ubuntu4 amd64 GStreamer libraries from the "vaapi" set
ii libva-intel-vaapi-driver 1.3.0-1ubuntu1 all VAAPI driver for Intel G45 & HD Graphics family (transitional package)
这是 vainfo 的输出:
nap@nap:~$ sudo vainfo
error: XDG_RUNTIME_DIR not set in the environment.
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
vainfo: VA-API version: 0.35 (libva 1.3.0)
vainfo: Driver version: Intel i965 driver - 1.3.0
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
VAProfileJPEGBaseline : VAEntrypointVLD
【问题讨论】:
-
你安装了
libva吗?你能显示vainfo命令的输出吗? -
似乎 info beamer 的主要目标是 raspebbeyr pi,可能不支持其他 cpu 和 gpu 上的硬件加速。
-
阅读 info-beamer.com/doc/info-beamer#opensourceversion 并使用 git clone github.com/dividuum/info-beamer.git 获取源代码,我没有看到任何对 libva 支持的引用。
-
完全重新编译它之后: ldd info-beamer |grep libva libva.so.1 => /usr/lib/x86_64-linux-gnu/libva.so.1 ,所以它至少链接有了它...
标签: gpu gstreamer h.264 libavcodec