[streaming] Re: VOD implementation suggestions

Marc Manthey marc at let.de
Thu Aug 26 12:10:30 CEST 2004


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.

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
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.
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";)





> 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