在具有Raspbian Stretch的Raspberry Pi 3上使用gstreamer播放视频

时间:2018-09-09 18:32:49

标签: video raspberry-pi gstreamer raspbian omxplayer

我尝试用gstreamer在Raspbian上播放视频,但失败了。我开始安装gst-omx并尝试了以下管道:

gst-launch-1.0 videotestsrc ! videoconvert ! glimagesink
-> ERROR: from element /GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLImageSink:sink: Failed to connect to X display server

gst-launch-1.0 --gst-debug=3 uridecodebin uri=file:///opt/test/file.mp4 ! autovideosink
and
gst-launch-1.0 --gst-debug=3 playbin uri=file:///opt/test/file.mp4
-> gldisplay gstgldisplay_x11.c:88:gst_gl_display_x11_new: Failed to open X11 display connection with name, '(null)'

似乎GStreamer正在寻找X显示服务器。但是我不想用。

有人让它在Raspbian Stretch上运行吗?它似乎适用于Wheezy。

1 个答案:

答案 0 :(得分:0)

最终使它与以下要点一起使用:https://gist.github.com/moritzvieli/417de950209a24a4f7a57ce1bb5bfeb7

我必须从源代码构建gstreamer。这是我配置基本插件的方式:

./configure --prefix=/usr \
--disable-gtk-doc --disable-examples \
--disable-opengl --enable-gles2 --enable-egl --disable-glx \
--disable-x11 --enable-wayland --enable-dispmanx \
--with-gles2-module-name=/opt/vc/lib/libbrcmGLESv2.so \
--with-egl-module-name=/opt/vc/lib/libbrcmEGL.so

此后,我总是收到EGL_NOT_INITIALIZED错误,因为gstreamer选择了错误的共享库。可以使用此hack临时修复此问题:

sudo ln -fs /opt/vc/lib/libbrcmEGL.so /usr/lib/arm-linux-gnueabihf/libEGL.so.1
sudo ln -fs /opt/vc/lib/libbrcmGLESv2.so /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2

我仍然必须找出适当的解决方案。也许卸载egl mesa库。