VideoLAN has been my favorite video player for quite some time already. It’s free and works on Windows as well as Linux. It plays almost anything you feed it without having to install third-party codecs. It features a nice, clean and functional user-interface and doesn’t use up many resources. In all this time I never used the network streaming features that give this player its “LAN” name. This weekend I went to discover some of the magic that is hidden behind the simple, innocent interface.
I have the following scenario now: On my desktop PC in the upstairs office I run VideoLAN as streaming server on Windows XP. The streaming session is initiated from the menu via Media/Streaming or Ctrl-S.
To make things easy I just use the UDP protocol to the destination address 192.168.0.100 (my downstairs client) and port 1234. As Encapsulation I choose MPEG-TS. I leave all the other settings at their default values.
Before I start to play the stream, I added a web-interface from the menu via Tools/Add Interface/Web Interface. This will allow me to control the player remotely from any web-browser. This worked only on localhost (the server) first. To give other computers access to the streaming server, I have to add their addresses or subnet to the hosts-file at C:\Program Files\VideoLAN\VLC\http\.hosts
Downstairs I have an Asus EeePC, originally running on Xandros Linux, now on Easy Peasy, an Ubuntu based operating system optimized for netbooks. The EeePC is connected to the television via an AVerMedia PC/Mac to TV Converter and uses VideoLAN as a client.
Since the streaming server is already sending the video to its IP address, all I have to do is to start playing the stream, from the menu at Media/Open Network or Ctrl-N. The protocol is UDP and the address can stay empty.
And that’s it. The video is now playing on the television set. I can also use any of the other laptops or web-enabled devices to launch the remote control interface at http://streamingserver-address:8080/ and pause, play, adjust volume etc.
So far so good, this works relatively well. However, the video sometimes skips or shows some visible artifacts, which I think are caused by the wireless network range all across the house. I was wondering if I could improve the playback quality by reducing the required bandwidth of the video stream. I experimented with the video and audio codec settings or different encapsulation settings in the stream output dialog box, but none of them really worked. With other settings the player starts to stream, but nothing visible (or audible or both) arrives at the other end. Sometimes VLC doesn’t start to stream at all, or even crashes with an exception. I have to read more about the individual settings and formats, and how I can activate and control them.
In this scenario above I let one server stream a video to one client with a known IP address. If you set the server to stream to a multicast IP address (e.g. 224.0.2.1), you can use a whole group of clients to play the video stream simultaneously. Not sure how often I will make use of this, but it works impressively well! I once played a video on both EeePCs and two desktop PCs.
The VideoLAN player starts the built-in web-server at port 8080 by default. If this port is already taken by another application, you can change it by launching VLC with the command-line parameter --http-host host:port. More information can be found in the documentation.
One Response
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.
Continuing the Discussion