multimedia over network I

I want to:

* run a program on a work PC, and
* see and hear it in action on a leisure PC.

The first attempt is failed, therefore I started to search for a solution using the step-by-step approach. The first step is to make sure that multimedia over networks works at all.

After some research, I found the tool “VideoLAN – VLC media player”. Video streaming is one of the main features of the tool.

The documentation explains what to do to:

* http://www.videolan.org/doc/streaming-howto/en/index.html
* http://www.videolan.org/doc/streaming-howto/en/ch02.html

Important settings (probably suboptimal, but they work — it’s enough for start):
* RTP: On, address, port // address is where to send, not where to bind
* MPEG-TS: On
* Video: On
* Audio: On

The first test: make sure that streaming to 127.0.0.1 works.

The second test: make sure that streaming to the same computer (but with an external IP, not 127.0.0.1) works.

The third, final test, is to stream to another computer.

Command line

A correct command line for streaming can be found somewhere in GUI. In my vlc 0.9.1:

* go to Media->Streaming,
* select a file,
* press the button “Stream”,
* after setting options, borrow the text from the field “Generated stream output string”.

My test command line (on the streaming PC):


$ cvlc lalalalala.avi --sout '#transcode{vcodec=mp1v,vb=80
  0,scale=0,acodec=mpga,ab=128,channels=2}:duplicate{dst=r
  tp{dst=leisure_ip,mux=ts,port=1234}}'

To play video (on the multimedia PC):


$ cvlc rtp://@leisure_ip:1234

One Response to “multimedia over network I”

  1. T_X Says:

    Great tutorial, it helped me a lot figuring out how to get it working. And I like that you’ve done it in these quite small chunks, so that everyone has a chance to test different components.

    I’ve first been trying to use the feature of pulse to also directly receive the rtp stream: load-module module-rtp-recv. However that resulted in annoying tune and speed changes. Looks like cvlc is more mature here, in that being able to synchronize the stream playback better.

    And I’ve actually removed the whole #transcode from cvlc. Works fine here, usually drains about 1.44MBit/s which is no sweat for the gbit-lan here at all.

    And to make it even more complicated, I’m using a multicast address, so anyone else who would like to drop in and listen too or play it back over their own speakers can do so. And I’m doing some multicast routing as well (using smcroute in linux), the pc streaming the music is on a different ip subnet than the pc playing the music. Getting the multicast bit was a pain in the a** to get working, but it worked in the end. So I suggest anyone to start with the normal, unicast address stuff first, like you did.

Leave a Reply