raspberry pi omx decoding

Arnaud Loonstra arnaud at sphaero.org
Sat Nov 29 04:06:21 PST 2014


On 2014-11-29 00:23, Arnaud Loonstra wrote:
> I'm able to play a 1080p h264 file smoothly on an rpi using 1.4.4 and
> latest gst-omx:
> gst-launch-1.0 -v filesrc location=test.h264 ! decodebin ! queue !
> glimagesink
>
>
> However if I try to send a x264 encoded stream from a desktop to the
> RPi I only get a green screen.
>
> I.e:
> gst-launch-1.0 -v udpsrc port=5000 !
> application/x-rtp,encoding-name=H264,payload=96 ! rtph264depay !
> decodebin ! queue ! glimagesink sync=false
>
> from a desktop:
> gst-launch-1.0 -v ximagesrc use-damage=false !
> videoconvert ! x264enc ! rtph264pay ! udpsink host=raspberrypi 
> port=5000
>
> Has anybody had more success? Are there specific parameters needed?
>
> Rg,
>
> Arnaud

I had a better look at how the pipeline gets constructed between 
working streams (filesrc) and a networked stream. And it seems the caps 
between the h264 elements differ. A pipeline like this:

gst-launch-1.0 -v ximagesrc use-damage=false endx=639 endy=479 ! 
videoconvert ! x264enc ! rtph264pay ! udpsink host=raspberrypi port=5000

creates a stream with caps = "video/x-h264\,\ 
stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)au\,\ 
width\=\(int\)640\,\ height\=\(int\)480\,\ 
framerate\=\(fraction\)25/1\,\ parsed\=\(boolean\)true\,\ 
pixel-aspect-ratio\=\(fraction\)1/1\,\ level\=\(string\)3\,\ 
profile\=\(string\)high-4:4:4"

However a the filesrc with the test.h264 gave me:
caps = "video/x-h264, width=(int\)1920\,\ height\=\(int\)1080\,\ 
framerate\=\(fraction\)0/1\,\ parsed\=\(boolean\)true\,\ 
stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)au\,\ 
level\=\(string\)4.1\,\ profile\=\(string\)main"

notice the profile and level difference.

So I constructed a sender pipeline like:

gst-launch-1.0 -v ximagesrc use-damage=false endx=639 endy=479 ! 
videoconvert ! x264enc ! video/x-h264,profile=high ! rtph264pay ! 
udpsink host=raspberrypi port=5000

Which did work

The first pipeline also gives unrecoverable errors:
omxh264dec-omxh264dec0: GStreamer encountered a general supporting 
library error.
OpenMAX component in error state Stream corrupt (0x8000100b)

Reboot was necessary.

Rg,

Arnaud






More information about the gstreamer-devel mailing list