Playbin could not recognize H264 stream with RTP over UDP

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Playbin could not recognize H264 stream with RTP over UDP

rland
This post was updated on .
Hi,
I am using GStreamer 1.10 and stream screen with  RTP over UDP,pipeline as follows:
sender:
gst-launch-1.0 -v ximagesrc ! videoconvert ! videoscale ! video/x-raw,width=1080,height=720 ! x264enc speed-preset=ultrafast tune=zerolatency ! rtph264pay config-interval=3 ! udpsink host=127.0.0.1 port=5200

I tested, if with  following pipeline, it works well.
----
gst-launch-1.0 udpsrc uri=udp://127.0.0.1:5200 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, payload=(int)96'  ! rtpjitterbuffer !rtph264depay ! h264parse ! decodebin ! glimagesink sync=false
----
However, playbin can not play, show the following error:
-----------
gst-launch-1.0 playbin uri=udp://127.0.0.1:5200                                                     
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind: Could not determine type of stream.
Additional debug info:
gsttypefindelement.c(994): gst_type_find_element_chain_do_typefinding (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind
Execution ended after 0:00:01.547020089
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...


It seems like caps have not been detected?
Because I have several  play scenes using playbin, I would like to ask,is there any way to make playbin can play above stream?

Any comments and suggestion will be appreciated,thanks.

Reply | Threaded
Open this post in threaded view
|

Re: Playbin could not recognize H264 stream with RTP over UDP

Gst-Geek
Hi,

Caps are not set properly in playback pipeline itseems.

Below pipelines are working for me.


gst-launch-1.0 -v videotestsrc ! videoconvert ! videoscale ! video/x-raw,width=1080,height=720 ! x264enc speed-preset=ultrafast tune=zerolatency ! rtph264pay  ! udpsink host=127.0.0.1 port=5200

gst-launch-1.0 udpsrc uri=udp://127.0.0.1:5200 caps='application/x-rtp, media=video, clock-rate=90000, encoding-name=H264, packetization-mode=1, payload=96'  ! rtpjitterbuffer ! rtph264depay ! h264parse ! decodebin ! checksumsink


~ Vinod
Reply | Threaded
Open this post in threaded view
|

Re: Playbin could not recognize H264 stream with RTP over UDP

rland
This post was updated on .
Vinod Kesti wrote
Hi,

Caps are not set properly in playback pipeline itseems.
~ Vinod
yes ,thanks for your comment.
RTP requires additional configuration data out of band, that is not
available inside the stream itself. so,it is necessary to correct settings udpsrc' caps.

But I hope that this can work properly:
gst-launch-1.0 playbin uri=udp://aaa.bbb.ccc.ddd:eee?xxx1=xxx1,xxx2=xxx2,xxx3=xxx3...

It seems there is no  provide an URI scheme for RTP.

Just now, I found this  bug:https://bugzilla.gnome.org/show_bug.cgi?id=703111,hope someone can make it as soon as possible to merge into  git master.