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._______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
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? 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 [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (968 bytes) Download Attachment |
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 gst-launch-1.0 -v -e \ tcpclientsrc host=$server port=$port !\ decodebin name=decoder !\ autovideosink decoder. !\ autoaudiosink 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 <[hidden email]> wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
And the debug is attached to mail ... lets see if the mail list can accept attachments?? On Fri, Jun 27, 2014 at 7:28 PM, Peter Maersk-Moller <[hidden email]> wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel gstdebug.txt (138K) Download Attachment |
On Fr, 2014-06-27 at 19:33 +0200, Peter Maersk-Moller wrote:
> And the debug is attached to mail ... lets see if the mail list can accept > attachments?? From the logs the problem seems to be that your sink does not handle the resolution and also the decoder is outputting frames in CPU memory. This is going to be too slow for HD video on the RPi. Try a manual pipeline that does not use decodebin but instead just has ... ! h264parse ! omxh264dec ! queue ! glimagesink (or if you're using 1.2 use eglglessink). You'll ideally have gst-omx from latest GIT master, compiled for the RPi and with libgstgl support. -- Sebastian Dröge, Centricular Ltd - http://www.centricular.com Expertise, Straight from the Source _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (968 bytes) Download Attachment |
Hi Sebastian. Thanks for answering.Don't have glimagesink in Eriks binary of gstreamer 1.0.10. eglglessink is there and yes it helps bringing down the overall load. I can post debug output if you like. If you would like to see it, please specify verbose mode and debug options you would like to see output for.
On Thu, Jul 3, 2014 at 10:52 AM, Sebastian Dröge <[hidden email]> wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Sebastian Dröge-3
Hi Sebastian. I now have the latest 1.3.90 Git Master running on Raspberry Pi.
gst-launch-1.0 videotestsrc is-live=true ! 'video/x-raw, width=1512, height=1080, frame-rate=10/1' ! glimagesink Then I see a the video test picture being shown approx. 2 frames per second but with black screen in-between and it complains about being too slow. If I try anything above 1512x1080, such as 1514x1080 or 1920x1080 it will show an initial flicker of a white line being drawn across and the just black screen. So it seems not to be able to play it. When I was displaying video with either autovideosink or eglglessink for gstreamer 1.0.10 it would scale the display to fullscreen using hardware scale of the Pi. But when I play 1.3.90 with glimagesink, no scaling is taking place. What is the appropriate way to get gstreamer 1.3.90 to scale to full screen on a Pi? When I try to play content using the following pipeline for 1.3.90, it complain about being to slow: gst-launch-1.0 tcpclientsrc host=192.168.10.50 port=5010 ! decodebin ! glimagesink The pipeline works well for 1.0.10 and eglglessink or autovideosink WHen I try to play the following pipeline for 1.3.90, it fails: gst-launch-1.0 tcpclientsrc host=192.168.10.50 port=5010 ! matroskaparse ! matroskademux ! h264parse ! queue ! omxh264dec ! queue ! glimagesink Got context from element 'glimagesink0': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayEGL\)\ gldisplayegl0"; ** (gst-launch-1.0:2770): CRITICAL **: gst_video_frame_map_id: assertion `GST_IS_BUFFER (buffer)' failed (gst-launch-1.0:2770): GStreamer-CRITICAL **: gst_mini_object_unref: assertion `mini_object != NULL' failed ERROR: from element /GstPipeline:pipeline0/GstGLImageSink:glimagesink0: Failed to upload buffer Additional debug info: gstglimagesink.c(768): gst_glimage_sink_prepare (): /GstPipeline:pipeline0/GstGLImageSink:glimagesink0 ERROR: pipeline doesn't want to preroll. Where do I go from here? Thanks in advance for hints and pointers. best regards Peter Maersk-Moller On Thu, Jul 3, 2014 at 10:52 AM, Sebastian Dröge <[hidden email]> wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi Any luck with this? I am also in same boat. I have two videos 720p and 1080p
720p video plays but it drops frames once in a while. But 1080p video is doesnt smooth at all. I have used gst-omx version 1.2.0 and the latest version 1.9.90 .. I have set gpu_mem = 386MB also i have tried playing using gst-launch playbin..
|
On 13/10/16 06:40, munezbn.dev wrote:
> Hi Any luck with this? I am also in same boat. I have two videos 720p and > 1080p > 720p video plays but it drops frames once in a while. But 1080p video is > doesnt smooth at all. > > I have used gst-omx version 1.2.0 and the latest version 1.9.90 .. > I have set gpu_mem =86MB also i have tried playing using gst-launch > playbin.. 1.2.0 will not perform zerocopy decoding with gst-plugins-bad 1.9.90 and will use the CPU memory path instead. As Sebastian mentioned below, you need 1.9.90 of both gst-omx and gst-plugins-bad to get the best performance out of the RPi. Also, it's very likely that your gpu_mem is not large enough for this at the moment. Cheers -Matt > Peter Maersk-Moller-2 wrote >> Hi Sebastian. >> >> I now have the latest 1.3.90 Git Master running on Raspberry Pi. >> >> Trying to do something very simple like the following pipeline >> >> gst-launch-1.0 videotestsrc is-live=ue ! 'video/x-raw, width12, >> height80, frame-rate/1' ! glimagesink >> >> Then I see a the video test picture being shown approx. 2 frames per >> second >> but with black screen in-between and it complains about being too slow. >> >> If I try anything above 1512x1080, such as 1514x1080 or 1920x1080 it will >> show an initial flicker of a white line being drawn across and the just >> black screen. So it seems not to be able to play it. >> >> When I was displaying video with either autovideosink or eglglessink for >> gstreamer 1.0.10 it would scale the display to fullscreen using hardware >> scale of the Pi. But when I play 1.3.90 with glimagesink, no scaling is >> taking place. What is the appropriate way to get gstreamer 1.3.90 to scale >> to full screen on a Pi? >> >> When I try to play content using the following pipeline for 1.3.90, it >> complain about being to slow: >> >> gst-launch-1.0 tcpclientsrc host2.168.10.50 portP10 ! decodebin ! >> glimagesink >> >> The pipeline works well for 1.0.10 and eglglessink or autovideosink >> >> WHen I try to play the following pipeline for 1.3.90, it fails: >> >> gst-launch-1.0 tcpclientsrc host2.168.10.50 portP10 ! matroskaparse ! >> matroskademux ! h264parse ! queue ! omxh264dec ! queue ! glimagesink >> >> Got context from element 'glimagesink0': gst.gl.GLDisplay=ntext, >> gst.gl.GLDisplay=stGLDisplay)"\(GstGLDisplayEGL\)\ gldisplayegl0"; >> >> ** (gst-launch-1.0:2770): CRITICAL **: gst_video_frame_map_id: assertion >> `GST_IS_BUFFER (buffer)' failed >> >> (gst-launch-1.0:2770): GStreamer-CRITICAL **: gst_mini_object_unref: >> assertion `mini_object !=ULL' failed >> ERROR: from element /GstPipeline:pipeline0/GstGLImageSink:glimagesink0: >> Failed to upload buffer >> Additional debug info: >> gstglimagesink.c(768): gst_glimage_sink_prepare (): >> /GstPipeline:pipeline0/GstGLImageSink:glimagesink0 >> ERROR: pipeline doesn't want to preroll. >> >> Where do I go from here? >> >> Thanks in advance for hints and pointers. >> >> best regards >> Peter Maersk-Moller >> >> >> >> >> >> On Thu, Jul 3, 2014 at 10:52 AM, Sebastian Dröge < >> sebastian@ >> > >> wrote: >> >>> On Fr, 2014-06-27 at 19:33 +0200, Peter Maersk-Moller wrote: >>>> And the debug is attached to mail ... lets see if the mail list can >>> accept >>>> attachments?? >>> From the logs the problem seems to be that your sink does not handle the >>> resolution and also the decoder is outputting frames in CPU memory. This >>> is going to be too slow for HD video on the RPi. >>> >>> Try a manual pipeline that does not use decodebin but instead just has >>> >>> ... ! h264parse ! omxh264dec ! queue ! glimagesink >>> (or if you're using 1.2 use eglglessink). >>> >>> You'll ideally have gst-omx from latest GIT master, compiled for the RPi >>> and with libgstgl support. >>> >>> -- >>> Sebastian Dröge, Centricular Ltd - http://www.centricular.com >>> Expertise, Straight from the Source >>> >>> _______________________________________________ >>> gstreamer-devel mailing list >>> >> gstreamer-devel@.freedesktop >>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel >>> >>> >> _______________________________________________ >> gstreamer-devel mailing list >> gstreamer-devel@.freedesktop >> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > > > > -- > View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Full-HD-with-gst-omx-on-Raspberry-Pi-tp4667414p4680018.html > Sent from the GStreamer-devel mailing list archive at Nabble.com. > _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (495 bytes) Download Attachment |
1] Ahhh something wrong with your quote? .. I had set gpu_mem = 386 MB and not 86 MB.. I think 386Mb should be sufficient for 720HD playback ? If not kindly suggest me the value. 2] My bad about gst-omx versions, What I meant to say is I have tried both the version of gst-omx 1.20 with gstreamer bundle 1.8.1 and gst-omx 1.9.90 with gstreamer bundle 1.9.90 |
Hi, I'm doing video playback with gst-omx on raspbian, and have (completely unscientifically) set my GPU memory to 256mb and everything seems to work OK. 386mb sounds like it should be fine. S++ On Thursday, October 13, 2016 1:20 PM, munezbn.dev <[hidden email]> wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Not sure why it doesn't play smooth for me. What about FULL HD ? Does it play smothly with 256MB GPU_MEM ? Is anything wrong with my bootcmd or config.txt ? Can you please share your config ? I am also trying to write player with gstreamer ( gst-omx). I am using custom Buildroot image. I have made changes in buildroot files to use gstreamer 1.9.90.. But STill it doesnt play smooth. I think there is something wrong with my config.txt |
Ah, just got into work + had a go on our setup. Tried big buck bunny 30fps andyour right it does seem to be missing some frames / be a little juddery in places. A video of this demo Seemed to far way worse and was barely watchable at 1080p... though I've just noticed that is 60fps. S++ On Monday, October 17, 2016 11:34 AM, munezbn.dev <[hidden email]> wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
So I am not alone. I had tried with 30fps and behaviour is same. I have two videos which almost have HD resolution (1280 x 5xx) And bot of them play fine without any frame drops. But once you play actual HD content ( 1280x720) it starts dropping frames and FULL HD , like you mentioned, it is unwatchable. I am totally new to OpenMax so not sure if i can do something here :( .. So we have left with omxplayer now .. |
On 18/10/16 19:18, munezbn.dev wrote:
> Stuart Axon wrote >> Ah, just got into work + had a go on our setup. >> Tried big buck bunny 30fps andyour right it does seem to be missing some >> frames / be a little juddery in places. >> >> A video of this demo >> https://www.youtube.com/watch?v=km6TXwo1Z-Q >> >> Seemed to far way worse and was barely watchable at 1080p... though I've >> just noticed that is 60fps. > So I am not alone. I had tried with 30fps and behaviour is same. I have > two videos which almost have HD resolution (1280 x 5xx) And bot of them play > fine without any frame drops. But once you play actual HD content ( > 1280x720) it starts dropping frames and FULL HD , like you mentioned, it is > unwatchable. here, no frame drops at all. A couple of things to note: 1. Make sure you have an updated rpi userland - there have been bugs here 2. You need gst-plugins-bad 1.9.90 configured for dispmanx, egl and gles2 and pointing to the videocore opengl libraries. i.e. I configure gst-plugins-bad with: CPPFLAGS="-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/IL" LIBS="-L/opt/vc/lib" ./configure --disable-x11 --disable-opengl --disable-glx --enable-gles2 --disable-wayland --with-gles2-module-name=/opt/vc/lib/libGLESv2.so --with-egl-module-name=/opt/vc/lib/libEGL.so 3. You need gst-omx 1.9.90. When running applications for zerocopy, the omx decoder must output memory:GLMemory caps: $ gst-launch-1.0 playbin uri=file:///home/matt/test3.mp4 -v | grep omx /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:src: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)sRGB, framerate=(fraction)30/1 and the sink should be glimagesink. Hope that helps -Matt > I am totally new to OpenMax so not sure if i can do something here :( .. So > we have left with omxplayer now .. _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (495 bytes) Download Attachment |
This post was updated on .
Can you please share your config.txt file also ? I am using Buildroot based image. Will update the .mk to take latest one and try. But omxplayer plays FULL HD smoothly, so this should not be the case right ? I am using latest versions (1.9.90) of gstreamer and gst-omx. Let me check how buildroot configures gst1-plugins-bad. If it configures differently then i can modify the files to use above configure options. Yes. Let me check this and get back to you. I can confirm that in my case it uses glimagesink. Thanks for your suggestion I will try everything and get back to you. Thanks & Regards Munez |
This post was updated on .
Ahh I think it is not using GLmemory copy .. What could be the issue ?
I checked confiure option and it has all the options which you mentioned above. Video 1 : # gst-launch-1.0 playbin uri=file:/mnt/tears_of_steel_1080p.mov -v | grep omx /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)4, profile=(string)main, width=(int)1920, height=(int)800, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)24/1 Video 2 : # gst-launch-1.0 playbin uri=file:/mnt/big_buck_bunny_720p_h264.mov -v | grep omx /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)3.1, profile=(string)main, width=(int)1280, height=(int)720, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)24/1 Then I tried searching both for omx and GLmem and the output was like below gst-launch-1.0 playbin uri=file:/mnt/tears_of_steel_1080p.mov -v video-sink=glimagesink | grep "omx\|GLMem" /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)4, profile=(string)main, width=(int)1920, height=(int)800, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)24/1 /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSinkBin:glimagesinkbin0/GstGLUploadElement:gluploadelement0.GstPad:src: caps = video/x-raw(memory:GLMemory), format=(string)I420, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)24/1, texture-target=(string)2D /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSinkBin:glimagesinkbin0/GstGLColorConvertElement:glcolorconvertelement0.GstPad:src: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)24/1, texture-target=(string)2D /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSinkBin:glimagesinkbin0/GstGLColorBalance:glcolorbalance0.GstPad:src: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)24/1, texture-target=(string)2D /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSinkBin:glimagesinkbin0/GstGLImageSink:sink.GstPad:sink: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)24/1, texture-target=(string)2D /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSinkBin:glimagesinkbin0/GstGLColorBalance:glcolorbalance0.GstPad:sink: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)24/1, texture-target=(string)2D /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSinkBin:glimagesinkbin0/GstGLColorConvertElement:glcolorconvertelement0.GstPad:sink: caps = video/x-raw(memory:GLMemory), format=(string)I420, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)24/1, texture-target=(string)2D Thanks |
On 19/10/16 12:10, munezbn.dev wrote:
> Ahh i think i is not using GLmemory copy .. What could be the issue ? Double check that you meet the requirements set out earlier, otherwise look through the GStreamer debug logs for why it's not negotiating memory:GLMemory. Cheers -Matt > # gst-launch-1.0 playbin uri=file:/mnt/tears_of_steel_1080p.mov -v | grep > omx > /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:sink: > caps = video/x-h264, stream-format=(string)byte-stream, > alignment=(string)au, level=(string)4, profile=(string)main, > width=(int)1920, height=(int)800, framerate=(fraction)24/1, > pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true > /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:src: > caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)800, > interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, > chroma-site=(string)mpeg2, colorimetry=(string)bt709, > framerate=(fraction)24/1 > > > > > > -- > View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Full-HD-with-gst-omx-on-Raspberry-Pi-tp4667414p4680110.html > Sent from the GStreamer-devel mailing list archive at Nabble.com. > _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (495 bytes) Download Attachment |
This post was updated on .
Hi Matt,
After searching both for omx and GLMem and the output was like below. So little confused now because glupload element uses GLMemory. regarding other requirements, I have cross checked everything excepet latest rpi-userland and there are no issues. Only thing which I have try now is using latest rpi-userland, I didn't try it because with same firmware omxplayer works fine. Second point which I need to verify is config.txt .. t gst-launch-1.0 playbin uri=file:/mnt/tears_of_steel_1080p.mov -v video-sink=glimagesink | grep "omx\|GLMem" /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)4, profile=(string)main, width=(int)1920, height=(int)800, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)24/1 /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSinkBin:glimagesinkbin0/GstGLUploadElement:gluploadelement0.GstPad:src: caps = video/x-raw(memory:GLMemory), format=(string)I420, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)24/1, texture-target=(string)2D /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSinkBin:glimagesinkbin0/GstGLColorConvertElement:glcolorconvertelement0.GstPad:src: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)24/1, texture-target=(string)2D /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSinkBin:glimagesinkbin0/GstGLColorBalance:glcolorbalance0.GstPad:src: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)24/1, texture-target=(string)2D /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSinkBin:glimagesinkbin0/GstGLImageSink:sink.GstPad:sink: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)24/1, texture-target=(string)2D /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSinkBin:glimagesinkbin0/GstGLColorBalance:glcolorbalance0.GstPad:sink: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)24/1, texture-target=(string)2D /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSinkBin:glimagesinkbin0/GstGLColorConvertElement:glcolorconvertelement0.GstPad:sink: caps = video/x-raw(memory:GLMemory), format=(string)I420, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)24/1, texture-target=(string)2D Thanks & Regards munez On Wed, Oct 19, 2016 at 12:41 PM, Matthew Waters <ystreet00@gmail.com> wrote: > On 19/10/16 12:10, munezbn.dev wrote: > > Ahh i think i is not using GLmemory copy .. What could be the issue ? > > Double check that you meet the requirements set out earlier, otherwise > look through the GStreamer debug logs for why it's not negotiating > memory:GLMemory. > > Cheers > -Matt > > > # gst-launch-1.0 playbin uri=file:/mnt/tears_of_steel_1080p.mov -v | > grep > > omx > > /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/ > GstDecodeBin:decodebin0/GstOMXH264Dec-omxh264dec: > omxh264dec-omxh264dec0.GstPad:sink: > > caps = video/x-h264, stream-format=(string)byte-stream, > > alignment=(string)au, level=(string)4, profile=(string)main, > > width=(int)1920, height=(int)800, framerate=(fraction)24/1, > > pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true > > /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/ > GstDecodeBin:decodebin0/GstOMXH264Dec-omxh264dec: > omxh264dec-omxh264dec0.GstPad:src: > > caps = video/x-raw, format=(string)I420, width=(int)1920, > height=(int)800, > > interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, > > chroma-site=(string)mpeg2, colorimetry=(string)bt709, > > framerate=(fraction)24/1 > > > > > > > > > > > > -- > > View this message in context: http://gstreamer-devel.966125. > n4.nabble.com/Full-HD-with-gst-omx-on-Raspberry-Pi-tp4667414p4680110.html > > Sent from the GStreamer-devel mailing list archive at Nabble.com. > > > > > _______________________________________________ gstreamer-devel mailing list gstreamer-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On 19/10/16 20:04, munez bn wrote:
Yes, glupload is uploading the system memory from the decoder when the decoder should be producing memory:GLMemory buffers for zerocopy. This download/reupload across the memory bus is what is killing your performance. Cheers -Matt
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (495 bytes) Download Attachment |
Free forum by Nabble | Edit this page |