Topics

Hardware video decode on RPi3


Rudolf J Streif
 

I am trying to play back mp4 video (venerable Big Buck Bunny at this time) on RPi3.

I added gstreamer1.0, gstreamer1.0-omx and the plugins to the image.

libgstomx.so is installed in usr/lib/gstreamer-1.0 on target.

However, gst-inspect-1.0 | grep omx does not return any results.

Consequently,

gst-launch-1.0  filesrc location="/home/root/kiosk/kiosk/videos/bunny.mp4" ! qtdemux ! h264parse ! omxh264dec ! kmssink
WARNING: erroneous pipeline: no element "omxh264dec"

I guess I am missing something somewhere but I don't know what.

Thanks,
Rudi


Rudolf J Streif
 

I am trying to play back mp4 video (venerable Big Buck Bunny at this time) on RPi3.

I added gstreamer1.0, gstreamer1.0-omx and the plugins to the image.

libgstomx.so is installed in usr/lib/gstreamer-1.0 on target.

However, gst-inspect-1.0 | grep omx does not return any results.

Consequently,

gst-launch-1.0  filesrc location="/home/root/kiosk/kiosk/videos/bunny.mp4" ! qtdemux ! h264parse ! omxh264dec ! kmssink
WARNING: erroneous pipeline: no element "omxh264dec"

I guess I am missing something somewhere but I don't know what.

Thanks,
Rudi


Khem Raj
 

On Thu, Nov 19, 2020 at 7:38 PM Rudolf J Streif
<rudolf.streif@ibeeto.com> wrote:

I am trying to play back mp4 video (venerable Big Buck Bunny at this
time) on RPi3.

I added gstreamer1.0, gstreamer1.0-omx and the plugins to the image.

libgstomx.so is installed in usr/lib/gstreamer-1.0 on target.

However, gst-inspect-1.0 | grep omx does not return any results.

Consequently,

gst-launch-1.0 filesrc
location="/home/root/kiosk/kiosk/videos/bunny.mp4" ! qtdemux ! h264parse
! omxh264dec ! kmssink
WARNING: erroneous pipeline: no element "omxh264dec"

I guess I am missing something somewhere but I don't know what.
are you using userland for graphics or vc4 ?

Thanks,
Rudi




Rudolf J Streif
 

Thanks, Khem.

On 11/22/20 11:15 PM, Khem Raj wrote:
On Thu, Nov 19, 2020 at 7:38 PM Rudolf J Streif
<rudolf.streif@ibeeto.com> wrote:
I am trying to play back mp4 video (venerable Big Buck Bunny at this
time) on RPi3.

I added gstreamer1.0, gstreamer1.0-omx and the plugins to the image.

libgstomx.so is installed in usr/lib/gstreamer-1.0 on target.

However, gst-inspect-1.0 | grep omx does not return any results.

Consequently,

gst-launch-1.0 filesrc
location="/home/root/kiosk/kiosk/videos/bunny.mp4" ! qtdemux ! h264parse
! omxh264dec ! kmssink
WARNING: erroneous pipeline: no element "omxh264dec"

I guess I am missing something somewhere but I don't know what.
are you using userland for graphics or vc4 ?
Yes, I am. I actually discovered what the problem was: I built my system for 64-bit but Broadcom's proprietary libraries are 32-bit. I switched the system to 32-bit and now gst-inspect shows omx support.

Unfortunately, decoding is still not working. This works:

gst-launch-1.0  -v videotestsrc ! omxh264enc ! h264parse ! avdec_h264 ! autovideosink

However, this does not:

gst-launch-1.0  -v videotestsrc ! omxh264enc ! h264parse ! omxh264dec ! autovideosink

I also tried with kmssink with the same results.

I am using EGLFS backend. It appears to me that there is something off with the omxh264dec decoder plugin passing the decoded buffers on to the output sink. Unfortunately, I have not been able to figure out what that could be.

Ultimately, this would go into a Qt application. I have never had any issues with EGLFS and Qt hence I would be reluctant to switch the backend to Wayland/Weston or X11. But of course I also don't know if omxh264dec would work with either one of those backends.

Thanks,
Rudi


--
Rudolf J Streif
CEO/CTO ibeeto
+1.855.442.3386 x700