[streaming] Re: VOD implementation suggestions
Marc Manthey
marc at let.de
Wed Aug 25 22:18:36 CEST 2004
hy gildas
great idea
i found something interesting maybee you will have a look?;-)
http://212.202.162.140/Cuseemedoku/
maybee you could add some features from the dokumentation
regards
marc
On 25.08.2004, at 21:59, Gildas Bazin 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.
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 stack but
we
can imagine having other "VOD server" plugins implementing other
protocols
(or alternative implementations of the same protocol).
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 stream
for
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).
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.
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 register
it
with the "VOD server" (so clients can see/access it).
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 elementary streams.
That can be done with VLM as well, with the help of a special stream
output
module. Basically, before VLM registers an input item with the "VOD
server", it could start playing the input with a special stream output
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.
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"
3 - Pre-parsing stream output module:
-------------------------------------------
As stated above we need a simple stream output module whose only job is
to
register the elementary stream information of an input and store them in
the input_item_t structure for later use by VLM. Gathering this info
would
be easy as the module will just have to wait until a certain amount of
time
worth of data has reached the stream output fifos. When this amount of
time
has been read from the input, we can assume all the ES are there.
Pre-parsing could of course also be extended to full parsing if need be.
Once the module has the ES info, it could signal the input to stop.
4 - The RTP (access output) plugin:
----------------------------------------
We already have an RTP access output plugin (part of the streaming
output
architecture) so I'm not sure we need much work there.
Well, I think that's about it.
I don't see that as a very difficult job and furthermore there are
several
separated tasks here so it could be done cooperatively....
So all we need now are people motivated enough to start the work :)
Regards,
--
Gildas
--
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>
--
"Wer die freiheit aufgibt, um sicherheit zu gewinnen,
wird am ende beides verlieren." (benjamin franklin)
Marc Manthey
Hildeboldplatz 1a
D – 50672 KÖLN
web:http://www.let.de
mail:marc at let.de
aim:addbuddy?screenname=macfreak2004
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