[vlc-devel] will streaming protocols survive OR will http become the protocol of choice?!
Rémi Denis-Courmont
rdenis at simphalempin.com
Mon Feb 4 16:44:53 CET 2008
Le Tuesday 29 January 2008 22:50:44 Ross Finlayson, vous avez écrit :
> One big benefit of RTSP is that it provides a standard,
We (you and me) wish it would. Unfortunately, feature bloat and corporate
strategies have made RTSP into a noticeably non-interoperating "standard"
protocol.
For instance, why oh why is the Range: parameter so complicated? Who/what
would ever need to schedule multiple streaming of multiple discontinuous time
ranges? Sure, one could program a would-be RTSP-based DVR to record different
broadcasts from the same TV channel... But it could as well send as many
SETUPs as there are Ranges. And both clients and servers would be way simpler
to implement. In practice, I suspect no server implements the Range parameter
*properly* (VLC definitely does NOT). In turns, it makes it more difficult
for clients to know what they can expeft from server, and IOP goes away.
That's my favorite example of the bloast of RTSP.
(...)
> You can't do this usng HTTP, at least not in any standard way.
But it could be standardized easily, using new HTTP headers, or even URI
parameters.
> (Although you can sometimes do seeking using HTTP
> range queries, this works only for media types that are simple and
> uniform enough for the client to know where to seek.)
Indeed. But any VoD-friendly file format should do this anyway, if only so you
can seek the file *locally*. Also, we need to keep in mind that most if not
all operating systems are only capable of seeking byte ranges. Therefore, to
seek to a "certain time", the server needs to convert the time into a certain
byte offset anyhow. Hence, the file format on the server side needs to
support seeking in any case.
> Another benefit comes from its combination with RTP/RTCP, which is
> the standard transport protocol for 'real time' media - including IP
> telephony and video conferencing.
> This means that if you have an existing software infrastructure for
> delivering and/or receiving RTP/RTCP,
True that RTP is a very well designed, *not* bloated protocol for real-time
loss-tolerant data transmission. In my opinion, there is no arguing that any
RT streaming solution should use RTP.
However, there are significant differences in how to write a duplex RTP stack
for VoIP/conferencing, and how to write a simplex RTP stack for media
streaming (--> VLC). At least, if you want to support symmetric RTP, and any
SIP stack definitely should support it.
I am not surprised that, inspite of many reported attempts, nobody yet came up
with a SIP plugin for VLC. The VLC RTP support simply is "simplex-centric".
> then adding support for VOD etc.,
> using RTSP, is relatively stratighforward.
In the same unfirewalled public IP addresses world that SIP has been designed
for :(
> Nonetheless, as Remi notes, the firewall/NAT unfriendliness of these
> protocols remains a major problem
There we go :(
> (but the IETF is working to overcome this).
I beg to differ. The few RTSP folks at IETF have been floating the idea of
standardizing NAT traversal for RTSP for several years, yet nothing concrete
has happened yet. Except for the decision to use ICE as the underlying NAT
traversal mechanism. And that will need RTSP/2.0 which is yet to come too.
Anyway - how to use ICE with RTSP is not so much of a concern to me than the
choice of ICE by itself. ICE is benchmarked to operate in a "peer-to-peer"
symmetric fashion, such as for two VoIP clients to communicate, both from
behind NATs. ICE is as complicated as it is powerful. I daresay know what I
am talking about: I co-authored an open-source ICE stack at Nokia
(http://nice.freedesktop.org/).
RTSP is a client/server protocol. It would be only natural to have a much
simpler and more reliable client-to-server "hole punching" schema there,
which would need much fewer changes to RTSP, and much engineering effort, yet
*better* reliability in the common case that the server has a public IP and
the client does not.
Frankly, if VLC had had a built-in RTSP stack (i.e. were not using live555), I
would already have written a proprietary implementation of such a schema.
Alas, it is pretty clear at this point that most people in IETF disagree with
me on this one design choice. And I am very much afraid that this will become
yet another huge IOP bottleneck for RTSP.
> It's certainly true, though, that for many applications, HTTP is sufficient
> (as sites like YouTube have demonstrated).
--
Rémi Denis-Courmont
http://www.remlab.net/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20080204/f5f80a87/attachment.sig>
-------------- next part --------------
_______________________________________________
vlc-devel mailing list
To unsubscribe or modify your subscription options:
http://mailman.videolan.org/listinfo/vlc-devel
More information about the vlc-devel
mailing list