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