Due to the fact that the jvlc library does not work properly, I decided to use VLC externaly for streaming the video from the Robot to the Controlling PC.

With the jvlc library it would have been possible to hit any button within the VLC player to change options like the Video size or source.

With an external VLC player there is no possibility to change propertys remotly. VLC must be always restarted, with new command line options, to change propertys. The following Code snippets show how to start and how to stop the VLC player.  In this case there should only be one VLC instance be running. Therefore all VLC instances are killed before starting a new one.

The following code shows how an external program like the VLC player can be killed and started.
The exitVal is 0 if no error was returned by the called programm.
If it is not 0 the input stream contains the error message.

Runtime rt = Runtime.getRuntime();
try {
Process pr1=rt.exec("cmd /c TASKKILL /F /im vlc.exe");
int exitVal =0;
    try {
              exitVal = pr1.waitFor();
              System.out.println("Process exitValue: " + exitVal);
         } catch (InterruptedException e1) {
    System.out.println("Starting vlc with file: " + port);
    System.out.println(vlcpath + "\\vlc.exe -vvv ");
    pr_ = rt.exec("cmd /c START "+system.data.library.vlc + "\\vlc.exe -vvv dshow:// :dshow-vdev=\""+cam+"\" :dshow-adev=\"\"  :dshow-size=\"320\" :dshow-caching=50 :dshow-chroma=\"\" :dshow-fps=15.000000 :no-dshow-config :no-dshow-tuner :dshow-tuner-channel=0 :dshow-tuner-country=0 :dshow-tuner-input=0 :dshow-video-input=-1 :dshow-audio-input=-1 :dshow-video-output=-1 :dshow-audio-output=-1 :sout=#transcode{vcodec=mp4v,vb=256,scale=1}:duplicate{dst=std{access=udp,mux=ts,dst=}}");
    this.started_ = true;	
    InputStream stderr = pr_.getErrorStream();
    InputStreamReader isr = new InputStreamReader(stderr);
    BufferedReader br = new BufferedReader(isr);
    tring line = null;
    try {
         exitVal = pr_.waitFor();
         System.out.println("Process exitValue: " + exitVal);
        } catch (InterruptedException e1) {
    if(exitVal != 0)
        while ( (line = br.readLine()) != null)
    System.out.println("VLC should be started");
} catch (IOException e) {

Is a  Bachelor Thesis  about remote Controlling the DAO over Wireless LAN with multiple Video Streams for seeing the environment around the robot.

You can download it here.

The Sourcecode is also available, but i couldnt manage to run the program yet.

There is some problem regarding the combination of the java programm and the VLC player.  (jvlc.jar)

I first thought it is an compatibility problem regarding jvlc.jar and the current VLC player, but an older version of the VLC player did not fix the problem.

I am hoping to find a solution soon.


The remote controlling of the Robot works now. Some methods where missing in the code.

The JVLC library doesnot work yet, but manual streaming is possible. (starting VLC with batchfile or Java  Runtime exec )

This is a guide howto Stream the Video with VLC from the DAO Robot to some Computer.

The Dao Robot has a WLAN Bridge.
Its Current IP Adress is

Use the same Adress Range on your Laptop (for example
run VLC on the Robot.
The following example *.bat file opens a stream for camera2
Just add lines to open multiple streams for multiple cameras.

cd C:\Progra~1\VideoLAN\VLC\

start vlc -vvv dshow:// :dshow-vdev=”cam2″ :dshow-adev=”” :dshow-size=”160″ :dshow-caching=50 :dshow-chroma=”” :dshow-fps=15.000000 :no-dshow-config :no-dshow-tuner :dshow-tuner-channel=0 :dshow-tuner-country=0 :dshow-tuner-input=0 :dshow-video-input=-1 :dshow-audio-input=-1 :dshow-video-output=-1 :dshow-audio-output=-1 :sout=#transcode{vcodec=mp4v,vb=256,scale=1}:duplicate{dst=std{access=udp,mux=ts,dst=}}

On the laptop with the IP Adress open a VLC UDP Stream on Port 1236, either with the “Open Network Stream” Wizzard. or with a *.bat file with following commands:

cd C:\Programme\VideoLAN\VLC\
start vlc -vvv udp://@:1236

Now you can see on your screen what the robot is seeing.