GNOME Bugzilla – Bug 546465
can't play m.youtube.com rtsp streams
Last modified: 2008-08-20 17:32:07 UTC
gst-launch rtspsrc debug=1 location=rtsp://ehug.rtsp-youtube.l.google.com/CiwLENy73wIaIwlB4lQscw-v2xMYDSANFEIJbXYtZ29vZ2xlSARSBWluZGV4DA==/0/0/0/video.3gp ! decodebin2 ! fakesink ERROR: Pipeline doesn't want to pause. ERROR: from element /pipeline0/rtspsrc0: The stream is in the wrong format. Additional debug info: gstrtspsrc.c(3942): gst_rtspsrc_setup_streams (): /pipeline0/rtspsrc0: No supported stream was found. Setting pipeline to NULL ... FREEING pipeline ...
Created attachment 115928 [details] debug log file for the session
I cannot find any player that can play those streams. It seems that we need to special case the UDP setup for google servers, though.
It also seems that it only works with UDP Server=>Client. Just tried on a phone (N81). When connected via wifi (router doesn't route incoming udp) it fails. When connected over 3G (direct connection) it works.
This fixes setting up the stream over UDP, at least it now negotiates well but I can't test further as UDP is blocked on the network I'm on. * gst/rtsp/Makefile.am: * gst/rtsp/gstrtsp.c: (plugin_init): * gst/rtsp/gstrtspgoogle.c: (gst_rtsp_google_before_send), (gst_rtsp_google_after_send), (gst_rtsp_google_get_transports), (_do_init), (gst_rtsp_google_base_init), (gst_rtsp_google_class_init), (gst_rtsp_google_init), (gst_rtsp_google_finalize), (gst_rtsp_google_change_state), (gst_rtsp_google_extension_init): * gst/rtsp/gstrtspgoogle.h: Add google RTSP extension, it can only handle udp and responds with unsupported if we do anything else. Fixes #546465. * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_connection_send), (gst_rtspsrc_connection_receive), (gst_rtspsrc_loop_send_cmd), (gst_rtspsrc_create_transports_string), (gst_rtspsrc_setup_streams), (gst_rtspsrc_open), (gst_rtspsrc_close), (gst_rtspsrc_pause): Make transport setup code a bit better using GString. Add some more debug. Check for closed connections before doing anything on them.