[MPlayer-dev-eng] About adding "Real" RDT protocol support to Live....

Bernhard Kaindl bernhard.kaindl at gmx.de
Sun Aug 3 17:15:47 CEST 2003

Hi all,
       I've read http://www.live.com/mplayer/:

> A note about RealAudio and RealVideo sessions
> Note that the LIVE.COM Streaming Media libraries do not support RealAudio
> and/or RealVideo streams - even those described by a "rtsp://" URL - because
> these streams do not use RTP for transport. (Instead, these streams use
> RealNetworks' proprietary "RDT" protocol.)
> Recently, however, MPlayer was updated so that it can play
> RealAudio/RealVideo "rtsp://" streams. It does this by first checking whether
> the URL ends with ".rm" or ".ra". If it does, it handles it as a special
> case, not using the LIVE.COM Streaming Media support. Otherwise, it uses the
> LIVE.COM Streaming Media support, as usual.

Thanks to this note, I was able to view and dump RealAudio/RealVideo "rtsp://"
streams using the current MPlayer CVS as described, I was quite pleased to see
this happending!

Video slowly starts to fall behind audio beween 0-3 seconds(floating) and I
was not able find A/V stream syncronisation code in the RealAudio/RealVideo
"rtsp://" support in MPlayer which was ported from xine(libmpdemux/realrtsp).

It uses "Transport: x-pn-tng/tcp;mode=play,rtp/avp/tcp;unicast;mode=play"
and uses a TCP stream, so it should have audio/video interleaved, so this
seems to be a reason why it's not drifting further, I guess.

I noticed that there is good Audio/Video syncronisation support in the
LIVE.COM Streaming Media libraries and it's also used by the interface
layer libmpdemux/demux_rtp.cpp.

My guess was that adding the code from mplayer/libmpdemux/realrtsp/real.c
(it contains the proprietary RDT protocol and RealPlayer handshaking)
could give the LIVE.COM Streaming Media library the possiblity to retrieve
RealAudio/RealVideo "rtsp://" streams.

Would this be possible?

I know that the LIVE.COM Streaming Media library could not play them
directly, but my hope was that could be possible to play the streams
sychronzied in mplayer, using the existing mplayer/libmpdemux/demux_rtp.cpp.


PS: For compiling the live.2003.07.29 on my gcc-3.3+ system, I needed
the attached patch. Later gcc releases complain about that only the
headers defined in the C++ standard should be used, in these cases,
it even aborted with "file not found" for strstream.h(not sure why)
-------------- next part --------------
--- groupsock/Groupsock.cpp
+++ groupsock/Groupsock.cpp	2003/08/03 14:29:30
@@ -26,7 +26,7 @@
 #if defined(__WIN32__) || defined(_WIN32)
 #include <strstrea.h>
-#include <strstream.h>
+#include <sstream>
 #include <stdio.h>
--- groupsock/NetInterface.cpp
+++ groupsock/NetInterface.cpp	2003/08/03 14:30:06
@@ -24,7 +24,7 @@
 #if defined(__WIN32__) || defined(_WIN32)
 #include <strstrea.h>
-#include <strstream.h>
+#include <sstream>
 ////////// NetInterface //////////

More information about the MPlayer-dev-eng mailing list