(1) What on earth are the settings -->preferences for? Specifically how are they different from some of the settings under file--> open disk--> stream output --> settings?
In a general way, the Preferences box is used to set global settings, while settings that can be set at other places are specific for a playlist item. That is the case for stream output items in particular
(2) What is an MRL (media resource locator? Where is such a tag defined? Give me an example of a mrl? Yes, I know that the MRL will be created when I decide on an output method, but how is this defined, and who else uses such an approach?
In its most basic interpretation, a MRL is easily the address of a stream.
examples :
c:\videos\test.avi
http://www.myserver.com/test.avi
udp:@239.255.1.1
However, a MRL can also contain item specific settings. In fact, most VLC settings can be set on an item basis. For this, take the global setting name (e.g. --fullscreen) and remplace "--" by ":". To get a list of these settings, you can use vlc --longhelp
example : with
vlc --no-fullscreen /data/test.avi
http://www.myserver.com/test.avi:fullscreen udp:@239.255.1.1:no-fullscreen
VLC will start, and add 3 MRLs to its playlist :
/data/test.avi
http://www.myserver.com/test.avi:fullscreen
udp:@239.255.1.1:no-fullscreen
/data/test.avi will be played using the default setting : --no-fullscreen, the second item will be played in fullscreen, the 3rd in no-fullscreen mode.
Another example is :
vlc --sout '#standard{url=239.255.1.1,access=udp,mux=ts}' /data/test1.avi:sout '#std{url=127.0.0.1,access=http,mux=avi} /data/test2.avi /data/test3.avi /data/test4.avi:sout '#display':fullscreen
We have 4 MRLs here :
/data/test1.avi:sout '#std{url=127.0.0.1,access=http,mux=avi}
/data/test2.avi
/data/test3.avi
/data/test4.avi:sout '#display':fullscreen
So, vlc will first stream test1.avi in http, then test2.avi and test3.avi using the default setting : udp multicast, and then display test4.avi in fullscreen.
(3) If I look at setting a stream output, do the output methods all run simoultaneously (which the menu appears to allow) or is compute resource distributed differently to the different methods.
When using the gui, the duplicate stream output module is used, that means than all the output are used at the same time.
For instance :
#duplicate{dst=display,dst=std{url=239.255.1.1,mux=ts,access=udp},dst=std{access=http,mux=avi,url=127.0.0.1} will :
- play the stream locally
- stream it using udp on the multicast address 239.255.1.1
- stream it using http
at the same time
(4) Where is the server referred to in the VLC documentation? How is it controlled?
Well, which point in the documentation are you referring to exactly ?
VLC comes with its own udp / rtp / mms server, used for streaming purpose, as well as with its own http server, used for the http interface, and for http streaming.
These servers can be set using the command line (that is what the "sout" syntax is for. The html pages used by the http interface can be changed too.
(5)If I select an output method, am I supposed to enter the target address or the local address of the client on which the server (wherever this is ) running?
That depends on the streaming method : for udp and rtp streaming, that are "push" streaming method, you have to enter the client address, to which the streamer has to send data.
That's why, when streaming over udp, using unicast, all you need is telling the client to listen to packets arriving an a given udp port : you don't need to give any server address : data is already arriving, sent by the server.
The situation is roughly the same with multicast : you need to give an address, but this is not the server address, but the multicast destination address. This allow the client to make the proper igmp request to its switch, saying it wants to receive the corresponding stream. As you see, requests are not handled by the server, bu by the network, so this is still push streaming.
For http / mms streaming, (ie pull streaming), giving an address is optional, and only has sense if the server has several network interfaces. Since the client is making requests to the server, the given address must be one of the server address : it is th address of the interface on which the server will liste to requests.
(6)What does SAP announce do?Where did this come fromand how important is this?
SAP is a for "Session Anouncement protocol". This is a standard announcement protocal used for multicast streaming.
It allows to annouce what channels are being streamed on a network.
A server sends packets containing the name of the channels it is streaming, on which multicast address. Clients are then listening to these annoucements, and adding the corresponding items to their playlist.
So OK, I chose what I thought were the right answers on my private wireless network in the small office where I work(I set the VLC client to stream the dvd, under UDP and provided a a target address of the device I was delivering the video to).
On the client I told it to receive the UDP stream from the VLC 'server' address. To be specific, the VLC 'server' [at 192.168.1.103] was told to stream to 192.168.1.101. The VLC client on the receiving end was told to use 192.168.1.103 as the server.
As I said before, you shouldn't give any address to the client : you should only tell it to listen to the proper udp port, since the server is already "pushing" data to the client.
for that, you should use the
vlc udp://:1234
syntax, or use the first choice in the network tab in the open stream box.