Full HD with gst-omx on Raspberry Pi?
Peter Maersk-Moller
pmaersk at gmail.com
Fri Jun 27 10:28:15 PDT 2014
Hi Sebastian.
Thanks for answering. Below is the verbose output. The pipeline used to
generate the stream is this pipeline using GStreamer 1.3.3:
width=1920 ; height=1080
#width=1280 ; height=720
rate=44100
gst-launch-1.0 -v \
videotestsrc is-live=true !\
"video/x-raw,width=$width,height=$height,framerate=24/1,format=I420" !\
queue !\
x264enc tune=zerolatency bitrate=3000 speed-preset=6 !\
h264parse !\
queue !\
mux. \
audiotestsrc is-live=true !\
"audio/x-raw,format=S16LE,layout=interleaved,channels=2,rate=$rate"
!\
queue !\
faac bitrate=128000 !\
aacparse !\
queue !\
matroskamux streamable=true name=mux !\
queue !\
tcpserversink host=0.0.0.0 port=5020 sync-method=2
recover-policy=keyframe
The pipeline used to play the stream on Raspberry Pi is this using
GStreamer 1.0.10:
gst-launch-1.0 -v -e \
tcpclientsrc host=$server port=$port !\
decodebin name=decoder !\
autovideosink decoder. !\
autoaudiosink
Would love a newer version, but newer packages seems to be hard to get and
compiling for the Rasp takes a very long time in CPU alone and quite a
while to figure out all the packages required.
Below is the verbose output.
Best regards
Peter
Setting pipeline to PAUSED ...
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstTypeFindElement:typefind.GstPad:src:
caps = video/x-matroska
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMatroskaDemux:matroskademux0.GstPad:sink:
caps = video/x-matroska
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-buffers = 5
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-time = 0
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-bytes = 2097152
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0.GstPad:src_0:
caps = video/x-h264, level=(string)4, profile=(string)high,
codec_data=(buffer)01640028ffe1001b67640028acb200f0044fcb80880000030008000003018478c1924001000568ebccb22c,
stream-format=(string)avc, alignment=(string)au, width=(int)1920,
height=(int)1080, framerate=(fraction)24/1
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstH264Parse:h264parse0.GstPad:sink:
caps = video/x-h264, level=(string)4, profile=(string)high,
codec_data=(buffer)01640028ffe1001b67640028acb200f0044fcb80880000030008000003018478c1924001000568ebccb22c,
stream-format=(string)avc, alignment=(string)au, width=(int)1920,
height=(int)1080, framerate=(fraction)24/1
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstH264Parse:h264parse0.GstPad:sink:
caps = video/x-h264, level=(string)4, profile=(string)high,
codec_data=(buffer)01640028ffe1001b67640028acb200f0044fcb80880000030008000003018478c1924001000568ebccb22c,
stream-format=(string)avc, alignment=(string)au, width=(int)1920,
height=(int)1080, framerate=(fraction)24/1
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstH264Parse:h264parse0.GstPad:src:
caps = video/x-h264, level=(string)4, profile=(string)high,
stream-format=(string)byte-stream, alignment=(string)au, width=(int)1920,
height=(int)1080, framerate=(fraction)24/1, parsed=(boolean)true,
pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstAacParse:aacparse0.GstPad:src:
caps = audio/mpeg, mpegversion=(int)4, framed=(boolean)true,
stream-format=(string)raw, codec_data=(buffer)1210, channels=(int)2,
rate=(int)44100
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstFaad:faad0.GstPad:sink: caps
= audio/mpeg, mpegversion=(int)4, framed=(boolean)true,
stream-format=(string)raw, codec_data=(buffer)1210, channels=(int)2,
rate=(int)44100
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstAacParse:aacparse0.GstPad:sink:
caps = audio/mpeg, mpegversion=(int)4, framed=(boolean)true,
stream-format=(string)raw, codec_data=(buffer)1210, channels=(int)2,
rate=(int)44100
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstFaad:faad0.GstPad:src: caps
= audio/x-raw, format=(string)S16LE, layout=(string)interleaved,
rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstCapsFilter:capsfilter0.GstPad:src:
caps = video/x-h264, level=(string)4, profile=(string)high,
stream-format=(string)byte-stream, alignment=(string)au, width=(int)1920,
height=(int)1080, framerate=(fraction)24/1, parsed=(boolean)true,
pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:sink:
caps = video/x-h264, level=(string)4, profile=(string)high,
stream-format=(string)byte-stream, alignment=(string)au, width=(int)1920,
height=(int)1080, framerate=(fraction)24/1, parsed=(boolean)true,
pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstCapsFilter:capsfilter0.GstPad:sink:
caps = video/x-h264, level=(string)4, profile=(string)high,
stream-format=(string)byte-stream, alignment=(string)au, width=(int)1920,
height=(int)1080, framerate=(fraction)24/1, parsed=(boolean)true,
pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstCapsFilter:capsfilter0.GstPad:src:
caps = video/x-h264, level=(string)4, profile=(string)high,
stream-format=(string)byte-stream, alignment=(string)au, width=(int)1920,
height=(int)1080, framerate=(fraction)24/1, parsed=(boolean)true,
pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:sink:
caps = video/x-h264, level=(string)4, profile=(string)high,
stream-format=(string)byte-stream, alignment=(string)au, width=(int)1920,
height=(int)1080, framerate=(fraction)24/1, parsed=(boolean)true,
pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:src:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive,
colorimetry=(string)bt709, framerate=(fraction)24/1
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-buffers = 5
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-time = 0
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-bytes = 2097152
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstCapsFilter:capsfilter0.GstPad:src:
caps = video/x-h264, level=(string)4, profile=(string)high,
stream-format=(string)byte-stream, alignment=(string)au, width=(int)1920,
height=(int)1080, framerate=(fraction)24/1, parsed=(boolean)true,
pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:sink:
caps = video/x-h264, level=(string)4, profile=(string)high,
stream-format=(string)byte-stream, alignment=(string)au, width=(int)1920,
height=(int)1080, framerate=(fraction)24/1, parsed=(boolean)true,
pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0.GstGhostPad:sink.GstProxyPad:proxypad2:
caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved,
rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPipeline:pipeline0/GstDecodeBin:decoder.GstDecodePad:src_0: caps =
video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive,
colorimetry=(string)bt709, framerate=(fraction)24/1
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0.GstGhostPad:sink.GstProxyPad:proxypad1:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive,
colorimetry=(string)bt709, framerate=(fraction)24/1
/GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0/GstAlsaSink:autoaudiosink0-actual-sink-alsa.GstPad:sink:
caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved,
rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0.GstGhostPad:sink:
caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved,
rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0.GstGhostPad:sink:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive,
colorimetry=(string)bt709, framerate=(fraction)24/1
/GstPipeline:pipeline0/GstDecodeBin:decoder.GstDecodePad:src_0.GstProxyPad:proxypad11:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive,
colorimetry=(string)bt709, framerate=(fraction)24/1
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:src:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive,
colorimetry=(string)bt709, framerate=(fraction)24/1
/GstPipeline:pipeline0/GstDecodeBin:decoder.GstDecodePad:src_0: caps =
video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive,
colorimetry=(string)bt709, framerate=(fraction)24/1
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0.GstGhostPad:sink.GstProxyPad:proxypad1:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive,
colorimetry=(string)bt709, framerate=(fraction)24/1
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0.GstGhostPad:sink:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive,
colorimetry=(string)bt709, framerate=(fraction)24/1
/GstPipeline:pipeline0/GstDecodeBin:decoder.GstDecodePad:src_0.GstProxyPad:proxypad11:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive,
colorimetry=(string)bt709, framerate=(fraction)24/1
ERROR: from element
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0:
Internal data stream error.
Additional debug info:
gstomxvideodec.c(1670): gst_omx_video_dec_loop ():
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0:
stream stopped, reason not-negotiated
ERROR: pipeline doesn't want to preroll.
On Thu, Jun 26, 2014 at 9:44 AM, Sebastian Dröge <sebastian at centricular.com>
wrote:
> On Sa, 2014-06-07 at 14:02 +0200, Peter Maersk-Moller wrote:
> > Hi.
> >
> > I'm having a bit of a problem playing Full HD streams (1080p) on Rasberry
> > Pi using Erik Vontaenes gst-omx build and generating the stream with the
> > x264enc module. It complains about the parameters not negotiated
> indicating
> > the gst-omx decoder won't take 1080p input. The same pipeline happily
> plays
> > 720p streams.
> >
> > Has anybody been able to play 1080p content using the same gst-omx build
> or
> > some other methods?
>
> I can play full HD content here on my RPi with my custom build, using
> latest gst-omx and also the other GStreamer components from GIT master.
>
> Can you provide a GStreamer debug log with the error you get?
>
> --
> Sebastian Dröge, Centricular Ltd - http://www.centricular.com
> Expertise, Straight from the Source
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20140627/fbacf4d6/attachment-0001.html>
More information about the gstreamer-devel
mailing list