6

I am running the latest Jessie image on my pi2 B. I have gstreamer-1.0 installed with gstreamer omx plugins. gst-inspect confirms the omx plugins are installed. I am not using the X server and need to output directly to the hdmi framebuffer.

pi@raspberrypi:~ $ gst-inspect-1.0 | grep omx
omx: omxmpeg2videodec: OpenMAX MPEG2 Video Decoder
omx: omxmpeg4videodec: OpenMAX MPEG4 Video Decoder
omx: omxh263dec: OpenMAX H.263 Video Decoder
omx: omxh264dec: OpenMAX H.264 Video Decoder
omx: omxtheoradec: OpenMAX Theora Video Decoder
omx: omxvp8dec: OpenMAX VP8 Video Decoder
omx: omxmjpegdec: OpenMAX MJPEG Video Decoder
omx: omxvc1dec: OpenMAX WMV Video Decoder
omx: omxh264enc: OpenMAX H.264 Video Encoder
omx: omxanalogaudiosink: OpenMAX Analog Audio Sink
omx: omxhdmiaudiosink: OpenMAX HDMI Audio Sink

I am unable to play any video back on the framebuffer. I do not seem to have any video sinks installed and I cannot seem to figure out what gstreamer packages I am missing.

pi@raspberrypi:~ $ gst-inspect-1.0 | grep sink
omx: omxanalogaudiosink: OpenMAX Analog Audio Sink
omx: omxhdmiaudiosink: OpenMAX HDMI Audio Sink
tcp: multisocketsink: Multi socket sink
tcp: multifdsink: Multi filedescriptor sink
tcp: tcpserversink: TCP server sink
tcp: tcpclientsink: TCP client sink
app: appsink: AppSink
playback: playsink: Player Sink
gio: giostreamsink: GIO stream sink
gio: giosink: GIO sink
coreelements: filesink: File Sink
coreelements: fdsink: Filedescriptor Sink
coreelements: fakesink: Fake Sink

I know that video output to the framebuffer works, because I can use omxplayer and see the video I am trying to play. I need gstreamer to work because I need more flexibility than omxplayer can provide.

pi@raspberrypi:~ $ gst-launch-1.0 filesrc location=myvideo.mpg ! decodebin ! autovideosink
WARNING: erroneous pipeline: no element "autovideosink"
pi@raspberrypi:~ $ gst-launch-1.0 filesrc location=myvideo.mpg ! decodebin ! fbdevsink
WARNING: erroneous pipeline: no element "fbdevsink"

What am I missing to playback video on the pi framebuffer device? Is there an omxhdmivideosink?

Thanks.

asked Mar 12, 2016 at 17:24
2
  • Hi did you have any luck with this? I'm having a smiilar issue with gstreamer + framebuffer on Raspbian. Thx Commented Jun 20, 2016 at 4:56
  • no, I was not able to figure it out. I switched to omxplayer to get a temporary implementation. gstreamer would be the best solution once I get this answer. Commented Jun 20, 2016 at 21:52

1 Answer 1

5

The one way you can output directly to the frame buffer is using fbdevsink, e.g.:

gst-launch-1.0 -v videotestsrc ! fbdevsink

The fbdevsink can be found in the gstreamer1.0-plugins-bad package.

answered Jun 28, 2017 at 15:42
5
  • Any experiences with this solution sometimes yielding a blank screen? My experience is that sometimes the user can output to /dev/fb0, but other times it'll silently fail. Commented Mar 20, 2018 at 22:00
  • 1
    @mpr Yes. I had this problem on RPi 2 rev.B with Raspbian, and haven't found any solution. Only reboot helped. Though everything goes fine on RPi 3 for already an year. Commented Mar 21, 2018 at 11:59
  • Ok here's an interesting detail. If I set the hdmi_group and hdmi_mode in config.txt, reboot, and don't use tvservice at all, fbdevsink works. After invoking tvservice, fbdevsink no longer works. I'm currently testing on a Raspbery Pi 3 Model B V 1.2. Commented Mar 21, 2018 at 14:02
  • 1
    Ok it looks like calls to tvservice may also need a following, matching call to fbset. See here: raspberrypi.org/forums/viewtopic.php?t=52309 Commented Mar 21, 2018 at 15:13
  • Thanks. Now I have a stable behavior using this series of commands (my monitor has 1280x1024 resolution): tvservice -o, tvservice -p, fbset -depth 8, fbset -g 1280 1024 1280 1024 16 Commented May 1, 2018 at 11:52

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.