[streaming] Re: VOD implementation suggestions

Derk-Jan Hartman hartman at videolan.org
Thu Aug 26 13:43:30 CEST 2004


Marc Manthey wrote:

> On 26.08.2004, at 11:49, Dermot McGahon wrote:
> On Wed, 25 Aug 2004 21:59:43 +0200, Gildas Bazin <gbazin at altern.org> wrote:
> 
>> Hi people,
>>
>> Since there has been some interest in implementing VOD support for VLC, I
>> decided to gather some information (special thanks to fenrir :) and write
>> up a small proposal about how to implement this.
>> Bear in mind that I don't really know much about RTSP so you'll have 
>> to take all this with a pinch of salt.
> 
> 
>  >SDP is a little more complicated but is basically a textual description
>  >of a stream.
> 
>  >I'm delighted that there is interest in implementing this. I would ask
>  >though, that we try and keep vod clients in mind as well as vod server
>  >capability. In other words, it is currently possible to receive raw
>  >udp multicast streams using vlc, but I don't think it is possible to
>  >receive rtsp unicast streams from a kasenna server. Derk-Jan and myself
>  >have been talking about this over the last few months; have made some
>  >progress; but haven't really cracked it fully yet.
> 
> thats very interesting  because i tryed to use http://www.iwitnesstv.com/
> a programm called MacTV from Joe Huber ,is designed to work primarily 
> with Cisco's IP/TV servers or with MBONE programs. Although you can try 
> it out via the Internet, you'll get the best results using it on a LAN 
> with a local IP/TV server. MacTV is an independent product and is not 
> sold, endorsed nor supported by Cisco Systems.
> 
> It works with builtin SAP/SDP Listener but i could  not  find  
> information about  this
> on the  web.

SAP is a protocal to create SDP announces over multicast
SDP is a textual format to represent the basic parameters of a stream.
plenty of information is on the web.

the latest live.com version combined with VLC is able to playback IP/TV 
streams in almost the same manner as MacTV, though it can't use any 
special IP/TV directory systems.

> i had contact  with henning schulzrinne (http://www.cs.columbia.edu/~hgs/)
> he  is  involved  in the sip protokoll discription and  rtsp as well 
> and  he told  me
> that you have " to track rtsp packets " to make  this "live" list possible

I'm not sure i understand this, it sounds a bit misinformed. You just 
have to listen to a certain multicast address and pick up the SAP packets.

> then i asked  about  if you could use ( 
> http://developer.apple.com/darwin/projects/opendirectory/) open 
> directory and  he  said  that its not  been supported.

well opendirectory is more a MacOSX API to access multiple directory 
systems. (a directory system is basically a system that creates lists of 
what is available on a network, there are numerous of them)

> So there were a solution because i used cuseeme for  years and  there  
> where
> a "live" list you see all connected  users and  you can get access thru an
> authentification with username and  password. When you are  logged in
> you see yourself  in the  list. SO you dont  have to worry  about
> "announcing";)

Well connecting, basically is announcing in this case :)
the IP/TV way you talk about is basically a Instant messaging system 
though.. not difficult, but also unstandard and i think even IP/TV isn't 
further developing it anymore.

>> First it has to be noted that the "streaming output" architecture of VLC
>> combined with the VLM (videolan manager which is part of VLC) should make
>> implementing RTSP support relatively straightforward. Which means it will
>> need a fair amount of code but should integrate well in the current
>> architecture.
>>
>> So what needs to be done ?
>>
>> 1 - "VOD server" plugin:
>> ---------------------------
>> Most of the work needed will be to create a new "VOD server" plugin. 
>> In our case the "VOD server" plugin will implement an RTSP protocol 
>> stackbut we can imagine having other "VOD server" plugins implementing 
>> other protocols (or alternative implementations of the same protocol).
> 
> 
> In order of importance:
> 
> (1) RTSP/RTP/UDP
> (2) RTSP/UDP/MPEG-2
> (3) RTSP-Kasenna/UDP
> (4) Other?
> 
> The LIVE.COM code is already a good RTSP protocol stack. I have implemented
> Kasenna RTSP support for it, but these patches are not folded back to the
> LIVE.COM project for a couple of reasons:
> 
> (1) The Kasenna RTSP is slightly non-standard. So there is understandably
>     some resistance to polluting the currently standards based 
> implementation.
> 
> (2) My implementation is poor. It implements Kasenna RTSP but breaks
>     standard RTSP. The implementation could fairly easily be fixed to
>     support both RTSP variants in parallel and Derk-Jan and I have
>     discussed ways to do that.
> 
> 
>> This "VOD server" plugin will only act as a middle man between clients 
>> and the VLM. So it will basically receive commands from clients and 
>> send orders to VLM (play/pause/stop input or such). When clients 
>> request a streamfor instance, the "VOD server" will send a start 
>> command to VLM with the
>> appropriate stream output options (to select the right elementary stream
>> and stream them with the requested output method).
> 
> 
>  >Sounds like a good design.
> 
> yes
> 
> 
>> I want to emphasis the fact that the "VOD server" wouldn't stream the 
>> input data itself. This part of the task would be delegated to the 
>> "streaming
>> output" layer of VLC. The "VOD server" is just there for the interaction
>> between the client and VLC.
> 
> 
>  >Interaction between a couple of different types of clients and vlc ..
> 
> we had  the  idea  like 
> http://homepage.mac.com/rossetantoine/osirix/Index2.html
> 
> that you can stream a desktop or  a window too!!
> 
> 
> 
>> 2 - VLM (videolan manager):
>> --------------------------------
>> The VLM is already there but it will need to be extended to work with 
>> "VOD server" plugins.
>>
>> VLM is used to add/register new input items with the "VOD server".
>> For instance: "new foo vod input file://bar.avi loop" adds a new input 
>> item to the videolan manager and "setup foo enabled" will later on 
>> registerit with the "VOD server" (so clients can see/access it).
> 
> 
>  >Ok. Again, sounds good.
> 
>  >Ideally, the clients would have a way to build a playlist of vod
>  >items available. This could be done using SAP/SDP.
> 
>  >Even more ideal again would be a mixture of SAP/SDP announcements,
>  >letting the client know that there are, for example, five unicast
>  >mpeg-2 or 4 streams available, and there are ten multicast tv
>  >stations being broadcast from a dvb card. The multicast streams
>  >don't need RTSP for setup, but I don't see any difference between
>  >unicast and multicast as regards SAP/SDP announcements.
> 
> yeah!!!!
> 
> 
>> In the case of an "RTSP server", to generate the SDP for an input, we 
>> will need to pre-parse it to gather information about its 
>> elementarystreams. That can be done with VLM as well, with the help of 
>> a specialstream output module. Basically, before VLM registers an 
>> input item withthe "VOD server", it could start playing the input with 
>> a special streamoutput module which would gather all ES information 
>> and store it in a shared
>> location (like the input_item_t structure that defines the basic 
>> properties of an input). Once this information is gathered, the 
>> special stream output module will stop the input and VLM will register 
>> the input to the "VOD
>> server" and pass along the ES info.
> 
> 
> This is clever. This is essentially registration of the content. The
> commercial vod servers do this anyway. They also perform processing on
> the mpeg streams while "importing" them, normalising PTSs, adding sync
> points at various places. I'm not up on all the details but could probably
> find out more.
> 
> 
>> So VLM needs to be modified to:
>> - Start the "VOD server"
>> - Initiate the pre-parsing of the input to gather the ES info
>> - Register/Unregister an input item with the "VOD server"
> 
> 
>  >- SAP/SDP announcements?
>  >- Allow registration of multicast inputs
> 
>  >Different vod servers implement trickplay differently. If we want
>  >vlc to act as a vod client, we need to be aware of these differences.
> 
> cool
>  >Dermot.
> 
> 
> greetings  from germany  marc
> 
> 
> -- 
> "It doesn't matter who you are, it's what you do that  takes you far"
>  —Madonna.
> 
>          Marc Manthey
>          Hildeboldplatz 1a
>          D – 50672 KÖLN
>          web:http://www.let.de
>          mail:marc at let.de
>          aim:addbuddy?screenname=macfreak2004
>          sip:+49221355338066
>          Mobile:+49(0)177-3415481
> -- 
> 

-- 
This is the streaming mailing-list, see http://www.videolan.org/streaming/
To unsubscribe, please read http://www.videolan.org/support/lists.html
If you are in trouble, please contact <postmaster at videolan.org>



More information about the streaming mailing list