Trying to figure out a way to start an instance of VLC from the command line to stream 3 displays on a Win7 box. We can start an instance of each one individually, and connect to each (though not at the same time, hence the need for 1 instance; we are assuming this will fix it).

Constraints & progress thus far:

  • HTTP stream/connect method with authentication = working individually
  • Same IP and Port (192.168.x.x & 8181 respectively) = working individually
  • Different paths (/screen1, /screen2, /screen3) = working individually
  • Running separate instances using multiple IP's and/or NIC's = works as alt solution; not desirable as final solution

Sample cmd string for primary monitor with local display option (nothing fancy):

vlc screen:// :screen-fps=20.000000 :live-caching=300 :sout=#transcode{vcodec=MJPG,vb=800,fps=20,scale=0.5,acodec=none,user=admin,pwd=admin}:duplicate{dst=http{mux=mpjpeg,dst=:8181/screen1},dst=display} :sout-keep

Sample cmd string for second monitor with local display option:

vlc screen:// :screen-fps=20.000000 :screen-width=1600 :screen-height=900 :screen-top=-900 :screen-left=-1280 :live-caching=300 :sout=#transcode{vcodec=MJPG,vb=800,fps=20,scale=0.5,acodec=none,user=admin,pwd=admin}:duplicate{dst=http{mux=mpjpeg,dst=:8181/screen2},dst=display} :sout-keep

Again, is there a way to combine them into same cmd string, resulting in 2+ streams (1 for each monitor/display), within said instance? Started looking at VLM and MOSAIC, but seemed overkill? Stuck for the moment.


VLM is the way to go for multiple streams.

Here is a guide from the VLC docs on how to do multiple streaming. I created two streams, both with the input of screen:// and the output being:


Obviously with a different URL path for the different streams.

To add the screen options on the second and third screens use the setup option command.

Here are all of the commands I issued to make it work on my machine:

new Screen1 broadcast enabled
setup Screen1 input screen://
setup Screen1 output #transcode{vcodec=MJPG,vb=800,fps=20,scale=0.5,acodec=none,user=admin,pwd=admin}:duplicate{dst=http{mux=mpjpeg,dst=:8181/screen1},dst=display}

new Screen2 broadcast enabled
setup Screen2 input screen://
setup Screen2 output #transcode{vcodec=MJPG,vb=800,fps=20,scale=0.5,acodec=none,user=admin,pwd=admin}:duplicate{dst=http{mux=mpjpeg,dst=:8181/screen2},dst=display}
setup Screen2 option screen-width=1920
setup Screen2 option screen-height=1080
setup Screen2 option screen-top=0
setup Screen2 option screen-left=-1920

control Screen1 play
control Screen2 play

I had a similar problem; I wanted have a 3-wide array of 1080p displays. My solution was to invent a custom resolution for the host computer, in this case 5760x1080. I then installed screen splitting software; I think it was SplitView. One annoying thing about using such a large display with VLC is that the frame rate dropped and I abandoned it.

  • Also, this meant that the actual display had a very weird resolution which the display driver said might damage my monitor; I'm unsure how true that threat is. – Shane Di Dona Jun 12 '15 at 19:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.