<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=RealMurphy</id>
	<title>VideoLAN Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=RealMurphy"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/RealMurphy/"/>
	<updated>2026-11-04T16:09:37Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=MosaicExampleSetup&amp;diff=10123</id>
		<title>MosaicExampleSetup</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=MosaicExampleSetup&amp;diff=10123"/>
		<updated>2007-10-22T12:38:59Z</updated>

		<summary type="html">&lt;p&gt;RealMurphy: /* Port multiplication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Example set-up for a conference: Plans =&lt;br /&gt;
&lt;br /&gt;
== Problem description ==&lt;br /&gt;
&lt;br /&gt;
For a conference we needed a web stream for participants who were not able to come. The set-up needed to be flexible as well transportable, since the conference took place at two venues which were several hundred meters apart. VLC was chosen because there was already a somehow working set-up available which was modified for this conference.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
We were using a dual-core AMD box (Athlon X2 4600+) with 1 GB of memory and only two PCI slots (Fujitsu Siemens PC). So nothing out of the ordinary. We had two PolyCom remote controllable cameras which can output SVIDEO signals which we feed into to BT878 based grabber cards.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
We used the vlc version coming with Ubuntu Gutsy 0.8.6c along with xawtv for direct control of the cameras (the encoding process and buffering of the clients usually introduce a lag of a few seconds which makes it hard to steer the camera efficiently.&lt;br /&gt;
&lt;br /&gt;
== Network distribution ==&lt;br /&gt;
&lt;br /&gt;
One of our problems was that at one of the conference venues the network bandwidth was somehow limited and we feared to overload that network. We thus decided to stream only to a single dedicated box which is connected to a network with a much larger bandwidth. This box was restreaming the content to anyone interested.&lt;br /&gt;
&lt;br /&gt;
= Details =&lt;br /&gt;
&lt;br /&gt;
== Needed devices ==&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
Grabber cards registered their devices where the camera output can be viewed from:&lt;br /&gt;
 /dev/video0&lt;br /&gt;
 /dev/video1&lt;br /&gt;
&lt;br /&gt;
The very first step is to check, if these are working. For this, start &lt;br /&gt;
 xawtv -c /dev/video0&lt;br /&gt;
and we saw a blue window, because xawtv sets the input mode to composite not SVIDEO. To change this, right-click on the blue window, and change the input to SVIDEO. I have not found a possibility to change this via the command line.&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;video0&#039;&#039; is working, try the same with &#039;&#039;video1&#039;&#039; it should work as well.&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
The grabber cards I used, do have audio input but I only got very bad quality. With the on-board audio I got a much better quality so this was used. If you are a fan of a graphical interface try to record input from &#039;&#039;/dev/dsp&#039;&#039; (need the OSS kernel modules) with &#039;&#039;audacity&#039;&#039;. Don&#039;t simply connect the output of the sound card to loudspeakers and the input of your microphone to the microphone input of your computer. The sound card may directly connect those two channels without the software having the possibility to record anything. If you find the input of the grabber cards are good enough, they are usually labeled &#039;&#039;/dev/dsp0&#039;&#039; or something like this.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
&lt;br /&gt;
For a simple set-up with two equally sized images next to each other I use the following config file for vlc:&lt;br /&gt;
&lt;br /&gt;
 # first camera uses /dev/video0 and the on-board sound /dev/audio or /dev/dsp&lt;br /&gt;
 new cam1 broadcast enabled&lt;br /&gt;
 setup cam1 input v4l:/dev/video0:norm=PAL:channel=1:adev=/dev/audio&lt;br /&gt;
 setup cam1 option rtsp-tcp&lt;br /&gt;
 setup cam1 output #transcode{vcodec=mp4v,vb=512,scale=1}:duplicate{dst=mosaic-bridge{id=1,height=400,width=300},&lt;br /&gt;
 select=video,dst={transcode{acodec=mp3,ab=64,channels=1}:bridge-out{id=0}},select=audio}&lt;br /&gt;
 &lt;br /&gt;
 # second camera. Important: adev=/dev/null otherwise I couldn&#039;t get it to run&lt;br /&gt;
 new cam2 broadcast enabled&lt;br /&gt;
 setup cam2 input v4l:/dev/video1:norm=PAL:channel=1:adev=/dev/null&lt;br /&gt;
 setup cam2 output #transcode{vcodec=mp4v,vb=512,scale=1}:duplicate{dst=mosaic-bridge{id=2,height=400,width=300}}&lt;br /&gt;
 &lt;br /&gt;
 # set up for the background&lt;br /&gt;
 new background broadcast enabled&lt;br /&gt;
 setup background input fake:&lt;br /&gt;
 setup background option mosaic-width=800&lt;br /&gt;
 setup background option mosaic-height=300&lt;br /&gt;
 setup background option mosaic-rows=1&lt;br /&gt;
 setup background option mosaic-cols=2&lt;br /&gt;
 setup background option mosaic-position=1&lt;br /&gt;
 setup background option mosaic-order=&amp;quot;1,2&amp;quot;&lt;br /&gt;
 setup background option fake-file=&amp;quot;back.gif&amp;quot;&lt;br /&gt;
 setup background option fake-width=800&lt;br /&gt;
 setup background option fake-height=300&lt;br /&gt;
 setup background option fake-fps=&amp;quot;8&amp;quot;&lt;br /&gt;
 setup background output #transcode{sfilter=mosaic,soverlay,vcodec=mp4v,acodec=mp3,ab=64,channels=1,scale=1}:bridge-in{id-offset=100}:std{access=http{mime=video/x-asf-stream},mux=asf,dst=:8080}&lt;br /&gt;
 &lt;br /&gt;
 # put it all together&lt;br /&gt;
 control background play&lt;br /&gt;
 control cam1 play&lt;br /&gt;
 control cam2 play&lt;br /&gt;
&lt;br /&gt;
For us it was not so important to have both images the same. The first camera just showed the audience while the second one looked at the projections made which needed to be of higher quality. We used therefore a special background image with a logo in the bottom left corner and this configuration:&lt;br /&gt;
&lt;br /&gt;
 new cam1 broadcast enabled&lt;br /&gt;
 setup cam1 input v4l:/dev/video0:norm=PAL:channel=1:adev=/dev/audio&lt;br /&gt;
 setup cam1 option rtsp-tcp&lt;br /&gt;
 setup cam1 output #transcode{vcodec=mp4v,vb=384,scale=1}:duplicate{dst=mosaic-bridge{id=1,height=300,width=400},select=video,dst={transcode{acodec=mp3,ab=64,channels=1}:bridge-out{id=0}},select=audio}&lt;br /&gt;
 &lt;br /&gt;
 new cam2 broadcast enabled&lt;br /&gt;
 setup cam2 input v4l:/dev/video1:norm=PAL:channel=1:adev=/dev/null&lt;br /&gt;
 setup cam2 output #transcode{vcodec=mp4v,vb=1500,scale=1}:duplicate{dst=mosaic-bridge{id=2,height=600,width=800},select=video}&lt;br /&gt;
 &lt;br /&gt;
 new background broadcast enabled&lt;br /&gt;
 setup background input fake:&lt;br /&gt;
 setup background option mosaic-width=1200&lt;br /&gt;
 setup background option mosaic-height=600&lt;br /&gt;
 setup background option mosaic-rows=2&lt;br /&gt;
 setup background option mosaic-cols=3&lt;br /&gt;
 setup background option mosaic-position=1&lt;br /&gt;
 setup background option mosaic-order=&amp;quot;1,2,0,0,0,0&amp;quot;&lt;br /&gt;
 setup background option fake-file=&amp;quot;aei3.gif&amp;quot;&lt;br /&gt;
 setup background option fake-width=1200&lt;br /&gt;
 setup background option fake-height=600&lt;br /&gt;
 setup background option fake-fps=&amp;quot;8&amp;quot;&lt;br /&gt;
 setup background option mosaic-keep-picture=1&lt;br /&gt;
 setup background option mosaic-keep-aspect-ratio=1&lt;br /&gt;
 &lt;br /&gt;
setup background output #transcode{sfilter=mosaic,soverlay,vcodec=mp4v,vb=2000,acodec=mp3,ab=64,channels=1,scale=1}:bridge-in{id-offset=100}:std{access=http{mime=video/x-asf-stream},mux=asf,dst=:8080}&lt;br /&gt;
&lt;br /&gt;
control background play&lt;br /&gt;
control cam1 play&lt;br /&gt;
control cam2 play&lt;br /&gt;
&lt;br /&gt;
Either of these set-ups will start a streaming server listening on port 8080 for incoming http connections.&lt;br /&gt;
&lt;br /&gt;
Out next problem was, how shall we prevent our small internet connection from the conference venue from being saturated?&lt;br /&gt;
&lt;br /&gt;
== Internet setup ==&lt;br /&gt;
&lt;br /&gt;
We used a very simple but effective way. For this we not only needed our streaming server (from now on named &#039;&#039;&#039;origin&#039;&#039;&#039;), but also another server on a much faster network (named &#039;&#039;&#039;broadcast&#039;&#039;&#039;). We started the server on &#039;&#039;&#039;origin&#039;&#039;&#039; with &lt;br /&gt;
&lt;br /&gt;
 vlc -vvv --color -I telnet --vlm-conf conference.conf --ttl 10 --upd-caching 2000&lt;br /&gt;
&lt;br /&gt;
Then we start a ssh tunnel from &#039;&#039;&#039;origin&#039;&#039;&#039; to &#039;&#039;&#039;broadcast&#039;&#039;&#039; (best placed into a screen environment):&lt;br /&gt;
&lt;br /&gt;
 ssh -N -c blowfish -R8000:localhost:8080 account@broadcast&lt;br /&gt;
&lt;br /&gt;
This will forward the local port 8080 (on &#039;&#039;&#039;origin&#039;&#039;&#039;) to port 8000 on &#039;&#039;&#039;broadcast&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Finally, we start another vlc instance on &#039;&#039;&#039;broadcast&#039;&#039;&#039; to restream the original stream:&lt;br /&gt;
&lt;br /&gt;
 vlc -vvv http://localhost:8000/ --udp-caching 1500 --sout &#039;#standard{access=http{mime=video/x-ms-asf},mux=asf,dst:7070}&#039;&lt;br /&gt;
&lt;br /&gt;
== Final tips ==&lt;br /&gt;
&lt;br /&gt;
=== Port multiplication ===&lt;br /&gt;
If you need to &amp;quot;multiply&amp;quot; a port easily, you can use iptables on Linux:&lt;br /&gt;
&lt;br /&gt;
 #possibly not all of these modules are strictly needed:&lt;br /&gt;
 modprobe xt_tcpup&lt;br /&gt;
 modprobe ip_tables&lt;br /&gt;
 modprobe iptable_filter&lt;br /&gt;
 modprobe ip_conntraqck&lt;br /&gt;
 modprobe iptable_nat&lt;br /&gt;
 modprobe ipt_state&lt;br /&gt;
 modprobe ipt_MASQUERADE&lt;br /&gt;
 modprobe ipt_REDIRECT&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
 &lt;br /&gt;
 # I&#039;m flushing everything here, this may not be good for you&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -F -t nat&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-ports 7070&lt;br /&gt;
&lt;br /&gt;
This will forward all requests to port 8080 transparently to port 7070 (where our broadcast server listens). Note: Port 8080 might be better because some firewalls allow only http related ports out and 8080 is a typical proxy port.&lt;br /&gt;
&lt;br /&gt;
= Credits =&lt;br /&gt;
&lt;br /&gt;
Thanks a lot for the folks on #videolan, especially ILEoo for helping me a lot when need was great! Without your help I don&#039;t think I would have finished this set-up in time!&lt;/div&gt;</summary>
		<author><name>RealMurphy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=MosaicExampleSetup&amp;diff=10122</id>
		<title>MosaicExampleSetup</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=MosaicExampleSetup&amp;diff=10122"/>
		<updated>2007-10-22T12:38:34Z</updated>

		<summary type="html">&lt;p&gt;RealMurphy: /* Port multiplication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Example set-up for a conference: Plans =&lt;br /&gt;
&lt;br /&gt;
== Problem description ==&lt;br /&gt;
&lt;br /&gt;
For a conference we needed a web stream for participants who were not able to come. The set-up needed to be flexible as well transportable, since the conference took place at two venues which were several hundred meters apart. VLC was chosen because there was already a somehow working set-up available which was modified for this conference.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
We were using a dual-core AMD box (Athlon X2 4600+) with 1 GB of memory and only two PCI slots (Fujitsu Siemens PC). So nothing out of the ordinary. We had two PolyCom remote controllable cameras which can output SVIDEO signals which we feed into to BT878 based grabber cards.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
We used the vlc version coming with Ubuntu Gutsy 0.8.6c along with xawtv for direct control of the cameras (the encoding process and buffering of the clients usually introduce a lag of a few seconds which makes it hard to steer the camera efficiently.&lt;br /&gt;
&lt;br /&gt;
== Network distribution ==&lt;br /&gt;
&lt;br /&gt;
One of our problems was that at one of the conference venues the network bandwidth was somehow limited and we feared to overload that network. We thus decided to stream only to a single dedicated box which is connected to a network with a much larger bandwidth. This box was restreaming the content to anyone interested.&lt;br /&gt;
&lt;br /&gt;
= Details =&lt;br /&gt;
&lt;br /&gt;
== Needed devices ==&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
Grabber cards registered their devices where the camera output can be viewed from:&lt;br /&gt;
 /dev/video0&lt;br /&gt;
 /dev/video1&lt;br /&gt;
&lt;br /&gt;
The very first step is to check, if these are working. For this, start &lt;br /&gt;
 xawtv -c /dev/video0&lt;br /&gt;
and we saw a blue window, because xawtv sets the input mode to composite not SVIDEO. To change this, right-click on the blue window, and change the input to SVIDEO. I have not found a possibility to change this via the command line.&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;video0&#039;&#039; is working, try the same with &#039;&#039;video1&#039;&#039; it should work as well.&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
The grabber cards I used, do have audio input but I only got very bad quality. With the on-board audio I got a much better quality so this was used. If you are a fan of a graphical interface try to record input from &#039;&#039;/dev/dsp&#039;&#039; (need the OSS kernel modules) with &#039;&#039;audacity&#039;&#039;. Don&#039;t simply connect the output of the sound card to loudspeakers and the input of your microphone to the microphone input of your computer. The sound card may directly connect those two channels without the software having the possibility to record anything. If you find the input of the grabber cards are good enough, they are usually labeled &#039;&#039;/dev/dsp0&#039;&#039; or something like this.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
&lt;br /&gt;
For a simple set-up with two equally sized images next to each other I use the following config file for vlc:&lt;br /&gt;
&lt;br /&gt;
 # first camera uses /dev/video0 and the on-board sound /dev/audio or /dev/dsp&lt;br /&gt;
 new cam1 broadcast enabled&lt;br /&gt;
 setup cam1 input v4l:/dev/video0:norm=PAL:channel=1:adev=/dev/audio&lt;br /&gt;
 setup cam1 option rtsp-tcp&lt;br /&gt;
 setup cam1 output #transcode{vcodec=mp4v,vb=512,scale=1}:duplicate{dst=mosaic-bridge{id=1,height=400,width=300},&lt;br /&gt;
 select=video,dst={transcode{acodec=mp3,ab=64,channels=1}:bridge-out{id=0}},select=audio}&lt;br /&gt;
 &lt;br /&gt;
 # second camera. Important: adev=/dev/null otherwise I couldn&#039;t get it to run&lt;br /&gt;
 new cam2 broadcast enabled&lt;br /&gt;
 setup cam2 input v4l:/dev/video1:norm=PAL:channel=1:adev=/dev/null&lt;br /&gt;
 setup cam2 output #transcode{vcodec=mp4v,vb=512,scale=1}:duplicate{dst=mosaic-bridge{id=2,height=400,width=300}}&lt;br /&gt;
 &lt;br /&gt;
 # set up for the background&lt;br /&gt;
 new background broadcast enabled&lt;br /&gt;
 setup background input fake:&lt;br /&gt;
 setup background option mosaic-width=800&lt;br /&gt;
 setup background option mosaic-height=300&lt;br /&gt;
 setup background option mosaic-rows=1&lt;br /&gt;
 setup background option mosaic-cols=2&lt;br /&gt;
 setup background option mosaic-position=1&lt;br /&gt;
 setup background option mosaic-order=&amp;quot;1,2&amp;quot;&lt;br /&gt;
 setup background option fake-file=&amp;quot;back.gif&amp;quot;&lt;br /&gt;
 setup background option fake-width=800&lt;br /&gt;
 setup background option fake-height=300&lt;br /&gt;
 setup background option fake-fps=&amp;quot;8&amp;quot;&lt;br /&gt;
 setup background output #transcode{sfilter=mosaic,soverlay,vcodec=mp4v,acodec=mp3,ab=64,channels=1,scale=1}:bridge-in{id-offset=100}:std{access=http{mime=video/x-asf-stream},mux=asf,dst=:8080}&lt;br /&gt;
 &lt;br /&gt;
 # put it all together&lt;br /&gt;
 control background play&lt;br /&gt;
 control cam1 play&lt;br /&gt;
 control cam2 play&lt;br /&gt;
&lt;br /&gt;
For us it was not so important to have both images the same. The first camera just showed the audience while the second one looked at the projections made which needed to be of higher quality. We used therefore a special background image with a logo in the bottom left corner and this configuration:&lt;br /&gt;
&lt;br /&gt;
 new cam1 broadcast enabled&lt;br /&gt;
 setup cam1 input v4l:/dev/video0:norm=PAL:channel=1:adev=/dev/audio&lt;br /&gt;
 setup cam1 option rtsp-tcp&lt;br /&gt;
 setup cam1 output #transcode{vcodec=mp4v,vb=384,scale=1}:duplicate{dst=mosaic-bridge{id=1,height=300,width=400},select=video,dst={transcode{acodec=mp3,ab=64,channels=1}:bridge-out{id=0}},select=audio}&lt;br /&gt;
 &lt;br /&gt;
 new cam2 broadcast enabled&lt;br /&gt;
 setup cam2 input v4l:/dev/video1:norm=PAL:channel=1:adev=/dev/null&lt;br /&gt;
 setup cam2 output #transcode{vcodec=mp4v,vb=1500,scale=1}:duplicate{dst=mosaic-bridge{id=2,height=600,width=800},select=video}&lt;br /&gt;
 &lt;br /&gt;
 new background broadcast enabled&lt;br /&gt;
 setup background input fake:&lt;br /&gt;
 setup background option mosaic-width=1200&lt;br /&gt;
 setup background option mosaic-height=600&lt;br /&gt;
 setup background option mosaic-rows=2&lt;br /&gt;
 setup background option mosaic-cols=3&lt;br /&gt;
 setup background option mosaic-position=1&lt;br /&gt;
 setup background option mosaic-order=&amp;quot;1,2,0,0,0,0&amp;quot;&lt;br /&gt;
 setup background option fake-file=&amp;quot;aei3.gif&amp;quot;&lt;br /&gt;
 setup background option fake-width=1200&lt;br /&gt;
 setup background option fake-height=600&lt;br /&gt;
 setup background option fake-fps=&amp;quot;8&amp;quot;&lt;br /&gt;
 setup background option mosaic-keep-picture=1&lt;br /&gt;
 setup background option mosaic-keep-aspect-ratio=1&lt;br /&gt;
 &lt;br /&gt;
setup background output #transcode{sfilter=mosaic,soverlay,vcodec=mp4v,vb=2000,acodec=mp3,ab=64,channels=1,scale=1}:bridge-in{id-offset=100}:std{access=http{mime=video/x-asf-stream},mux=asf,dst=:8080}&lt;br /&gt;
&lt;br /&gt;
control background play&lt;br /&gt;
control cam1 play&lt;br /&gt;
control cam2 play&lt;br /&gt;
&lt;br /&gt;
Either of these set-ups will start a streaming server listening on port 8080 for incoming http connections.&lt;br /&gt;
&lt;br /&gt;
Out next problem was, how shall we prevent our small internet connection from the conference venue from being saturated?&lt;br /&gt;
&lt;br /&gt;
== Internet setup ==&lt;br /&gt;
&lt;br /&gt;
We used a very simple but effective way. For this we not only needed our streaming server (from now on named &#039;&#039;&#039;origin&#039;&#039;&#039;), but also another server on a much faster network (named &#039;&#039;&#039;broadcast&#039;&#039;&#039;). We started the server on &#039;&#039;&#039;origin&#039;&#039;&#039; with &lt;br /&gt;
&lt;br /&gt;
 vlc -vvv --color -I telnet --vlm-conf conference.conf --ttl 10 --upd-caching 2000&lt;br /&gt;
&lt;br /&gt;
Then we start a ssh tunnel from &#039;&#039;&#039;origin&#039;&#039;&#039; to &#039;&#039;&#039;broadcast&#039;&#039;&#039; (best placed into a screen environment):&lt;br /&gt;
&lt;br /&gt;
 ssh -N -c blowfish -R8000:localhost:8080 account@broadcast&lt;br /&gt;
&lt;br /&gt;
This will forward the local port 8080 (on &#039;&#039;&#039;origin&#039;&#039;&#039;) to port 8000 on &#039;&#039;&#039;broadcast&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Finally, we start another vlc instance on &#039;&#039;&#039;broadcast&#039;&#039;&#039; to restream the original stream:&lt;br /&gt;
&lt;br /&gt;
 vlc -vvv http://localhost:8000/ --udp-caching 1500 --sout &#039;#standard{access=http{mime=video/x-ms-asf},mux=asf,dst:7070}&#039;&lt;br /&gt;
&lt;br /&gt;
== Final tips ==&lt;br /&gt;
&lt;br /&gt;
=== Port multiplication ===&lt;br /&gt;
If you need to &amp;quot;multiply&amp;quot; a port easily, you can use iptables on Linux:&lt;br /&gt;
&lt;br /&gt;
 #possibly not all of these modules are strictly needed:&lt;br /&gt;
 modprobe xt_tcpup&lt;br /&gt;
 modprobe ip_tables&lt;br /&gt;
 modprobe iptable_filter&lt;br /&gt;
 modprobe ip_conntraqck&lt;br /&gt;
 modprobe iptable_nat&lt;br /&gt;
 modprobe ipt_state&lt;br /&gt;
 modprobe ipt_MASQUERADE&lt;br /&gt;
 modprobe ipt_REDIRECT&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
 &lt;br /&gt;
 # I&#039;m flushing everything here, this may not be good for you&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -F -t nat&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-ports 7070&lt;br /&gt;
&lt;br /&gt;
This will forward all requests to port 8080 transparently to port 7070 (where our broadcast server listens). Note: Port 8080 might be better because some firewalls all only www realted ports out and 8080 is a typical proxy port.&lt;br /&gt;
&lt;br /&gt;
= Credits =&lt;br /&gt;
&lt;br /&gt;
Thanks a lot for the folks on #videolan, especially ILEoo for helping me a lot when need was great! Without your help I don&#039;t think I would have finished this set-up in time!&lt;/div&gt;</summary>
		<author><name>RealMurphy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=MosaicExampleSetup&amp;diff=10121</id>
		<title>MosaicExampleSetup</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=MosaicExampleSetup&amp;diff=10121"/>
		<updated>2007-10-22T12:37:27Z</updated>

		<summary type="html">&lt;p&gt;RealMurphy: /* Port multiplication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Example set-up for a conference: Plans =&lt;br /&gt;
&lt;br /&gt;
== Problem description ==&lt;br /&gt;
&lt;br /&gt;
For a conference we needed a web stream for participants who were not able to come. The set-up needed to be flexible as well transportable, since the conference took place at two venues which were several hundred meters apart. VLC was chosen because there was already a somehow working set-up available which was modified for this conference.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
We were using a dual-core AMD box (Athlon X2 4600+) with 1 GB of memory and only two PCI slots (Fujitsu Siemens PC). So nothing out of the ordinary. We had two PolyCom remote controllable cameras which can output SVIDEO signals which we feed into to BT878 based grabber cards.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
We used the vlc version coming with Ubuntu Gutsy 0.8.6c along with xawtv for direct control of the cameras (the encoding process and buffering of the clients usually introduce a lag of a few seconds which makes it hard to steer the camera efficiently.&lt;br /&gt;
&lt;br /&gt;
== Network distribution ==&lt;br /&gt;
&lt;br /&gt;
One of our problems was that at one of the conference venues the network bandwidth was somehow limited and we feared to overload that network. We thus decided to stream only to a single dedicated box which is connected to a network with a much larger bandwidth. This box was restreaming the content to anyone interested.&lt;br /&gt;
&lt;br /&gt;
= Details =&lt;br /&gt;
&lt;br /&gt;
== Needed devices ==&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
Grabber cards registered their devices where the camera output can be viewed from:&lt;br /&gt;
 /dev/video0&lt;br /&gt;
 /dev/video1&lt;br /&gt;
&lt;br /&gt;
The very first step is to check, if these are working. For this, start &lt;br /&gt;
 xawtv -c /dev/video0&lt;br /&gt;
and we saw a blue window, because xawtv sets the input mode to composite not SVIDEO. To change this, right-click on the blue window, and change the input to SVIDEO. I have not found a possibility to change this via the command line.&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;video0&#039;&#039; is working, try the same with &#039;&#039;video1&#039;&#039; it should work as well.&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
The grabber cards I used, do have audio input but I only got very bad quality. With the on-board audio I got a much better quality so this was used. If you are a fan of a graphical interface try to record input from &#039;&#039;/dev/dsp&#039;&#039; (need the OSS kernel modules) with &#039;&#039;audacity&#039;&#039;. Don&#039;t simply connect the output of the sound card to loudspeakers and the input of your microphone to the microphone input of your computer. The sound card may directly connect those two channels without the software having the possibility to record anything. If you find the input of the grabber cards are good enough, they are usually labeled &#039;&#039;/dev/dsp0&#039;&#039; or something like this.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
&lt;br /&gt;
For a simple set-up with two equally sized images next to each other I use the following config file for vlc:&lt;br /&gt;
&lt;br /&gt;
 # first camera uses /dev/video0 and the on-board sound /dev/audio or /dev/dsp&lt;br /&gt;
 new cam1 broadcast enabled&lt;br /&gt;
 setup cam1 input v4l:/dev/video0:norm=PAL:channel=1:adev=/dev/audio&lt;br /&gt;
 setup cam1 option rtsp-tcp&lt;br /&gt;
 setup cam1 output #transcode{vcodec=mp4v,vb=512,scale=1}:duplicate{dst=mosaic-bridge{id=1,height=400,width=300},&lt;br /&gt;
 select=video,dst={transcode{acodec=mp3,ab=64,channels=1}:bridge-out{id=0}},select=audio}&lt;br /&gt;
 &lt;br /&gt;
 # second camera. Important: adev=/dev/null otherwise I couldn&#039;t get it to run&lt;br /&gt;
 new cam2 broadcast enabled&lt;br /&gt;
 setup cam2 input v4l:/dev/video1:norm=PAL:channel=1:adev=/dev/null&lt;br /&gt;
 setup cam2 output #transcode{vcodec=mp4v,vb=512,scale=1}:duplicate{dst=mosaic-bridge{id=2,height=400,width=300}}&lt;br /&gt;
 &lt;br /&gt;
 # set up for the background&lt;br /&gt;
 new background broadcast enabled&lt;br /&gt;
 setup background input fake:&lt;br /&gt;
 setup background option mosaic-width=800&lt;br /&gt;
 setup background option mosaic-height=300&lt;br /&gt;
 setup background option mosaic-rows=1&lt;br /&gt;
 setup background option mosaic-cols=2&lt;br /&gt;
 setup background option mosaic-position=1&lt;br /&gt;
 setup background option mosaic-order=&amp;quot;1,2&amp;quot;&lt;br /&gt;
 setup background option fake-file=&amp;quot;back.gif&amp;quot;&lt;br /&gt;
 setup background option fake-width=800&lt;br /&gt;
 setup background option fake-height=300&lt;br /&gt;
 setup background option fake-fps=&amp;quot;8&amp;quot;&lt;br /&gt;
 setup background output #transcode{sfilter=mosaic,soverlay,vcodec=mp4v,acodec=mp3,ab=64,channels=1,scale=1}:bridge-in{id-offset=100}:std{access=http{mime=video/x-asf-stream},mux=asf,dst=:8080}&lt;br /&gt;
 &lt;br /&gt;
 # put it all together&lt;br /&gt;
 control background play&lt;br /&gt;
 control cam1 play&lt;br /&gt;
 control cam2 play&lt;br /&gt;
&lt;br /&gt;
For us it was not so important to have both images the same. The first camera just showed the audience while the second one looked at the projections made which needed to be of higher quality. We used therefore a special background image with a logo in the bottom left corner and this configuration:&lt;br /&gt;
&lt;br /&gt;
 new cam1 broadcast enabled&lt;br /&gt;
 setup cam1 input v4l:/dev/video0:norm=PAL:channel=1:adev=/dev/audio&lt;br /&gt;
 setup cam1 option rtsp-tcp&lt;br /&gt;
 setup cam1 output #transcode{vcodec=mp4v,vb=384,scale=1}:duplicate{dst=mosaic-bridge{id=1,height=300,width=400},select=video,dst={transcode{acodec=mp3,ab=64,channels=1}:bridge-out{id=0}},select=audio}&lt;br /&gt;
 &lt;br /&gt;
 new cam2 broadcast enabled&lt;br /&gt;
 setup cam2 input v4l:/dev/video1:norm=PAL:channel=1:adev=/dev/null&lt;br /&gt;
 setup cam2 output #transcode{vcodec=mp4v,vb=1500,scale=1}:duplicate{dst=mosaic-bridge{id=2,height=600,width=800},select=video}&lt;br /&gt;
 &lt;br /&gt;
 new background broadcast enabled&lt;br /&gt;
 setup background input fake:&lt;br /&gt;
 setup background option mosaic-width=1200&lt;br /&gt;
 setup background option mosaic-height=600&lt;br /&gt;
 setup background option mosaic-rows=2&lt;br /&gt;
 setup background option mosaic-cols=3&lt;br /&gt;
 setup background option mosaic-position=1&lt;br /&gt;
 setup background option mosaic-order=&amp;quot;1,2,0,0,0,0&amp;quot;&lt;br /&gt;
 setup background option fake-file=&amp;quot;aei3.gif&amp;quot;&lt;br /&gt;
 setup background option fake-width=1200&lt;br /&gt;
 setup background option fake-height=600&lt;br /&gt;
 setup background option fake-fps=&amp;quot;8&amp;quot;&lt;br /&gt;
 setup background option mosaic-keep-picture=1&lt;br /&gt;
 setup background option mosaic-keep-aspect-ratio=1&lt;br /&gt;
 &lt;br /&gt;
setup background output #transcode{sfilter=mosaic,soverlay,vcodec=mp4v,vb=2000,acodec=mp3,ab=64,channels=1,scale=1}:bridge-in{id-offset=100}:std{access=http{mime=video/x-asf-stream},mux=asf,dst=:8080}&lt;br /&gt;
&lt;br /&gt;
control background play&lt;br /&gt;
control cam1 play&lt;br /&gt;
control cam2 play&lt;br /&gt;
&lt;br /&gt;
Either of these set-ups will start a streaming server listening on port 8080 for incoming http connections.&lt;br /&gt;
&lt;br /&gt;
Out next problem was, how shall we prevent our small internet connection from the conference venue from being saturated?&lt;br /&gt;
&lt;br /&gt;
== Internet setup ==&lt;br /&gt;
&lt;br /&gt;
We used a very simple but effective way. For this we not only needed our streaming server (from now on named &#039;&#039;&#039;origin&#039;&#039;&#039;), but also another server on a much faster network (named &#039;&#039;&#039;broadcast&#039;&#039;&#039;). We started the server on &#039;&#039;&#039;origin&#039;&#039;&#039; with &lt;br /&gt;
&lt;br /&gt;
 vlc -vvv --color -I telnet --vlm-conf conference.conf --ttl 10 --upd-caching 2000&lt;br /&gt;
&lt;br /&gt;
Then we start a ssh tunnel from &#039;&#039;&#039;origin&#039;&#039;&#039; to &#039;&#039;&#039;broadcast&#039;&#039;&#039; (best placed into a screen environment):&lt;br /&gt;
&lt;br /&gt;
 ssh -N -c blowfish -R8000:localhost:8080 account@broadcast&lt;br /&gt;
&lt;br /&gt;
This will forward the local port 8080 (on &#039;&#039;&#039;origin&#039;&#039;&#039;) to port 8000 on &#039;&#039;&#039;broadcast&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Finally, we start another vlc instance on &#039;&#039;&#039;broadcast&#039;&#039;&#039; to restream the original stream:&lt;br /&gt;
&lt;br /&gt;
 vlc -vvv http://localhost:8000/ --udp-caching 1500 --sout &#039;#standard{access=http{mime=video/x-ms-asf},mux=asf,dst:7070}&#039;&lt;br /&gt;
&lt;br /&gt;
== Final tips ==&lt;br /&gt;
&lt;br /&gt;
=== Port multiplication ===&lt;br /&gt;
If you need to &amp;quot;multiply&amp;quot; a port easily, you can use iptables on Linux:&lt;br /&gt;
&lt;br /&gt;
 #possibly not all of these modules are strictly needed:&lt;br /&gt;
 modprobe xt_tcpup&lt;br /&gt;
 modprobe ip_tables&lt;br /&gt;
 modprobe iptable_filter&lt;br /&gt;
 modprobe ip_conntraqck&lt;br /&gt;
 modprobe iptable_nat&lt;br /&gt;
 modprobe ipt_state&lt;br /&gt;
 modprobe ipt_MASQUERADE&lt;br /&gt;
 modprobe ipt_REDIRECT&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
 &lt;br /&gt;
 # I&#039;m flushing everything here, this may not be good for you&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -F -t nat&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-ports 7070&lt;br /&gt;
&lt;br /&gt;
= Credits =&lt;br /&gt;
&lt;br /&gt;
Thanks a lot for the folks on #videolan, especially ILEoo for helping me a lot when need was great! Without your help I don&#039;t think I would have finished this set-up in time!&lt;/div&gt;</summary>
		<author><name>RealMurphy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=MosaicExampleSetup&amp;diff=10120</id>
		<title>MosaicExampleSetup</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=MosaicExampleSetup&amp;diff=10120"/>
		<updated>2007-10-22T12:36:19Z</updated>

		<summary type="html">&lt;p&gt;RealMurphy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Example set-up for a conference: Plans =&lt;br /&gt;
&lt;br /&gt;
== Problem description ==&lt;br /&gt;
&lt;br /&gt;
For a conference we needed a web stream for participants who were not able to come. The set-up needed to be flexible as well transportable, since the conference took place at two venues which were several hundred meters apart. VLC was chosen because there was already a somehow working set-up available which was modified for this conference.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
We were using a dual-core AMD box (Athlon X2 4600+) with 1 GB of memory and only two PCI slots (Fujitsu Siemens PC). So nothing out of the ordinary. We had two PolyCom remote controllable cameras which can output SVIDEO signals which we feed into to BT878 based grabber cards.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
We used the vlc version coming with Ubuntu Gutsy 0.8.6c along with xawtv for direct control of the cameras (the encoding process and buffering of the clients usually introduce a lag of a few seconds which makes it hard to steer the camera efficiently.&lt;br /&gt;
&lt;br /&gt;
== Network distribution ==&lt;br /&gt;
&lt;br /&gt;
One of our problems was that at one of the conference venues the network bandwidth was somehow limited and we feared to overload that network. We thus decided to stream only to a single dedicated box which is connected to a network with a much larger bandwidth. This box was restreaming the content to anyone interested.&lt;br /&gt;
&lt;br /&gt;
= Details =&lt;br /&gt;
&lt;br /&gt;
== Needed devices ==&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
Grabber cards registered their devices where the camera output can be viewed from:&lt;br /&gt;
 /dev/video0&lt;br /&gt;
 /dev/video1&lt;br /&gt;
&lt;br /&gt;
The very first step is to check, if these are working. For this, start &lt;br /&gt;
 xawtv -c /dev/video0&lt;br /&gt;
and we saw a blue window, because xawtv sets the input mode to composite not SVIDEO. To change this, right-click on the blue window, and change the input to SVIDEO. I have not found a possibility to change this via the command line.&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;video0&#039;&#039; is working, try the same with &#039;&#039;video1&#039;&#039; it should work as well.&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
The grabber cards I used, do have audio input but I only got very bad quality. With the on-board audio I got a much better quality so this was used. If you are a fan of a graphical interface try to record input from &#039;&#039;/dev/dsp&#039;&#039; (need the OSS kernel modules) with &#039;&#039;audacity&#039;&#039;. Don&#039;t simply connect the output of the sound card to loudspeakers and the input of your microphone to the microphone input of your computer. The sound card may directly connect those two channels without the software having the possibility to record anything. If you find the input of the grabber cards are good enough, they are usually labeled &#039;&#039;/dev/dsp0&#039;&#039; or something like this.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
&lt;br /&gt;
For a simple set-up with two equally sized images next to each other I use the following config file for vlc:&lt;br /&gt;
&lt;br /&gt;
 # first camera uses /dev/video0 and the on-board sound /dev/audio or /dev/dsp&lt;br /&gt;
 new cam1 broadcast enabled&lt;br /&gt;
 setup cam1 input v4l:/dev/video0:norm=PAL:channel=1:adev=/dev/audio&lt;br /&gt;
 setup cam1 option rtsp-tcp&lt;br /&gt;
 setup cam1 output #transcode{vcodec=mp4v,vb=512,scale=1}:duplicate{dst=mosaic-bridge{id=1,height=400,width=300},&lt;br /&gt;
 select=video,dst={transcode{acodec=mp3,ab=64,channels=1}:bridge-out{id=0}},select=audio}&lt;br /&gt;
 &lt;br /&gt;
 # second camera. Important: adev=/dev/null otherwise I couldn&#039;t get it to run&lt;br /&gt;
 new cam2 broadcast enabled&lt;br /&gt;
 setup cam2 input v4l:/dev/video1:norm=PAL:channel=1:adev=/dev/null&lt;br /&gt;
 setup cam2 output #transcode{vcodec=mp4v,vb=512,scale=1}:duplicate{dst=mosaic-bridge{id=2,height=400,width=300}}&lt;br /&gt;
 &lt;br /&gt;
 # set up for the background&lt;br /&gt;
 new background broadcast enabled&lt;br /&gt;
 setup background input fake:&lt;br /&gt;
 setup background option mosaic-width=800&lt;br /&gt;
 setup background option mosaic-height=300&lt;br /&gt;
 setup background option mosaic-rows=1&lt;br /&gt;
 setup background option mosaic-cols=2&lt;br /&gt;
 setup background option mosaic-position=1&lt;br /&gt;
 setup background option mosaic-order=&amp;quot;1,2&amp;quot;&lt;br /&gt;
 setup background option fake-file=&amp;quot;back.gif&amp;quot;&lt;br /&gt;
 setup background option fake-width=800&lt;br /&gt;
 setup background option fake-height=300&lt;br /&gt;
 setup background option fake-fps=&amp;quot;8&amp;quot;&lt;br /&gt;
 setup background output #transcode{sfilter=mosaic,soverlay,vcodec=mp4v,acodec=mp3,ab=64,channels=1,scale=1}:bridge-in{id-offset=100}:std{access=http{mime=video/x-asf-stream},mux=asf,dst=:8080}&lt;br /&gt;
 &lt;br /&gt;
 # put it all together&lt;br /&gt;
 control background play&lt;br /&gt;
 control cam1 play&lt;br /&gt;
 control cam2 play&lt;br /&gt;
&lt;br /&gt;
For us it was not so important to have both images the same. The first camera just showed the audience while the second one looked at the projections made which needed to be of higher quality. We used therefore a special background image with a logo in the bottom left corner and this configuration:&lt;br /&gt;
&lt;br /&gt;
 new cam1 broadcast enabled&lt;br /&gt;
 setup cam1 input v4l:/dev/video0:norm=PAL:channel=1:adev=/dev/audio&lt;br /&gt;
 setup cam1 option rtsp-tcp&lt;br /&gt;
 setup cam1 output #transcode{vcodec=mp4v,vb=384,scale=1}:duplicate{dst=mosaic-bridge{id=1,height=300,width=400},select=video,dst={transcode{acodec=mp3,ab=64,channels=1}:bridge-out{id=0}},select=audio}&lt;br /&gt;
 &lt;br /&gt;
 new cam2 broadcast enabled&lt;br /&gt;
 setup cam2 input v4l:/dev/video1:norm=PAL:channel=1:adev=/dev/null&lt;br /&gt;
 setup cam2 output #transcode{vcodec=mp4v,vb=1500,scale=1}:duplicate{dst=mosaic-bridge{id=2,height=600,width=800},select=video}&lt;br /&gt;
 &lt;br /&gt;
 new background broadcast enabled&lt;br /&gt;
 setup background input fake:&lt;br /&gt;
 setup background option mosaic-width=1200&lt;br /&gt;
 setup background option mosaic-height=600&lt;br /&gt;
 setup background option mosaic-rows=2&lt;br /&gt;
 setup background option mosaic-cols=3&lt;br /&gt;
 setup background option mosaic-position=1&lt;br /&gt;
 setup background option mosaic-order=&amp;quot;1,2,0,0,0,0&amp;quot;&lt;br /&gt;
 setup background option fake-file=&amp;quot;aei3.gif&amp;quot;&lt;br /&gt;
 setup background option fake-width=1200&lt;br /&gt;
 setup background option fake-height=600&lt;br /&gt;
 setup background option fake-fps=&amp;quot;8&amp;quot;&lt;br /&gt;
 setup background option mosaic-keep-picture=1&lt;br /&gt;
 setup background option mosaic-keep-aspect-ratio=1&lt;br /&gt;
 &lt;br /&gt;
setup background output #transcode{sfilter=mosaic,soverlay,vcodec=mp4v,vb=2000,acodec=mp3,ab=64,channels=1,scale=1}:bridge-in{id-offset=100}:std{access=http{mime=video/x-asf-stream},mux=asf,dst=:8080}&lt;br /&gt;
&lt;br /&gt;
control background play&lt;br /&gt;
control cam1 play&lt;br /&gt;
control cam2 play&lt;br /&gt;
&lt;br /&gt;
Either of these set-ups will start a streaming server listening on port 8080 for incoming http connections.&lt;br /&gt;
&lt;br /&gt;
Out next problem was, how shall we prevent our small internet connection from the conference venue from being saturated?&lt;br /&gt;
&lt;br /&gt;
== Internet setup ==&lt;br /&gt;
&lt;br /&gt;
We used a very simple but effective way. For this we not only needed our streaming server (from now on named &#039;&#039;&#039;origin&#039;&#039;&#039;), but also another server on a much faster network (named &#039;&#039;&#039;broadcast&#039;&#039;&#039;). We started the server on &#039;&#039;&#039;origin&#039;&#039;&#039; with &lt;br /&gt;
&lt;br /&gt;
 vlc -vvv --color -I telnet --vlm-conf conference.conf --ttl 10 --upd-caching 2000&lt;br /&gt;
&lt;br /&gt;
Then we start a ssh tunnel from &#039;&#039;&#039;origin&#039;&#039;&#039; to &#039;&#039;&#039;broadcast&#039;&#039;&#039; (best placed into a screen environment):&lt;br /&gt;
&lt;br /&gt;
 ssh -N -c blowfish -R8000:localhost:8080 account@broadcast&lt;br /&gt;
&lt;br /&gt;
This will forward the local port 8080 (on &#039;&#039;&#039;origin&#039;&#039;&#039;) to port 8000 on &#039;&#039;&#039;broadcast&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Finally, we start another vlc instance on &#039;&#039;&#039;broadcast&#039;&#039;&#039; to restream the original stream:&lt;br /&gt;
&lt;br /&gt;
 vlc -vvv http://localhost:8000/ --udp-caching 1500 --sout &#039;#standard{access=http{mime=video/x-ms-asf},mux=asf,dst:7070}&#039;&lt;br /&gt;
&lt;br /&gt;
== Final tips ==&lt;br /&gt;
&lt;br /&gt;
=== Port multiplication ===&lt;br /&gt;
If you need to &amp;quot;multiply&amp;quot; a port easily, you can use iptables on Linux:&lt;br /&gt;
&lt;br /&gt;
 #possibly not all of these modules are strictly needed:&lt;br /&gt;
 modprobe xt_tcpup&lt;br /&gt;
 modprobe ip_tables&lt;br /&gt;
 modprobe iptable_filter&lt;br /&gt;
 modprobe ip_conntraqck&lt;br /&gt;
 modprobe iptable_nat&lt;br /&gt;
 modprobe ipt_state&lt;br /&gt;
 modprobe ipt_MASQUERADE&lt;br /&gt;
 modprobe ipt_REDIRECT&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
 # I&#039;m flushing everything here, this may not be good for you&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -F -t nat&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-ports 7070&lt;br /&gt;
&lt;br /&gt;
= Credits =&lt;br /&gt;
&lt;br /&gt;
Thanks a lot for the folks on #videolan, especially ILEoo for helping me a lot when need was great! Without your help I don&#039;t think I would have finished this set-up in time!&lt;/div&gt;</summary>
		<author><name>RealMurphy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=MosaicExampleSetup&amp;diff=10119</id>
		<title>MosaicExampleSetup</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=MosaicExampleSetup&amp;diff=10119"/>
		<updated>2007-10-22T10:54:16Z</updated>

		<summary type="html">&lt;p&gt;RealMurphy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Example set-up for a conference: Plans =&lt;br /&gt;
&lt;br /&gt;
== Problem description ==&lt;br /&gt;
&lt;br /&gt;
For a conference we needed a web stream for participants who were not able to come. The set-up needed to be flexible as well transportable, since the conference took place at two venues which were several hundred meters apart. VLC was chosen because there was already a somehow working set-up available which was modified for this conference.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
We were using a dual-core AMD box (Athlon X2 4600+) with 1 GB of memory and only two PCI slots (Fujitsu Siemens PC). So nothing out of the ordinary. We had two PolyCom remote controllable cameras which can output SVIDEO signals which we feed into to BT878 based grabber cards.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
We used the vlc version coming with Ubuntu Gutsy 0.8.6c along with xawtv for direct control of the cameras (the encoding process and buffering of the clients usually introduce a lag of a few seconds which makes it hard to steer the camera efficiently.&lt;br /&gt;
&lt;br /&gt;
== Network distribution ==&lt;br /&gt;
&lt;br /&gt;
One of our problems was that at one of the conference venues the network bandwidth was somehow limited and we feared to overload that network. We thus decided to stream only to a single dedicated box which is connected to a network with a much larger bandwidth. This box was restreaming the content to anyone interested.&lt;br /&gt;
&lt;br /&gt;
= Details =&lt;br /&gt;
&lt;br /&gt;
== Needed devices ==&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
Grabber cards registered their devices where the camera output can be viewed from:&lt;br /&gt;
 /dev/video0&lt;br /&gt;
 /dev/video1&lt;br /&gt;
&lt;br /&gt;
The very first step is to check, if these are working. For this, start &lt;br /&gt;
 xawtv -c /dev/video0&lt;br /&gt;
and we saw a blue window, because xawtv sets the input mode to composite not SVIDEO. To change this, right-click on the blue window, and change the input to SVIDEO. I have not found a possibility to change this via the command line.&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;video0&#039;&#039; is working, try the same with &#039;&#039;video1&#039;&#039; it should work as well.&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
The grabber cards I used, do have audio input but I only got very bad quality. With the on-board audio I got a much better quality so this was used. If you are a fan of a graphical interface try to record input from &#039;&#039;/dev/dsp&#039;&#039; (need the OSS kernel modules) with &#039;&#039;audacity&#039;&#039;. Don&#039;t simply connect the output of the sound card to loudspeakers and the input of your microphone to the microphone input of your computer. The sound card may directly connect those two channels without the software having the possibility to record anything. If you find the input of the grabber cards are good enough, they are usually labeled &#039;&#039;/dev/dsp0&#039;&#039; or something like this.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
&lt;br /&gt;
For a simple set-up with two equally sized images next to each other I use the following config file for vlc:&lt;br /&gt;
&lt;br /&gt;
 # first camera uses /dev/video0 and the on-board sound /dev/audio or /dev/dsp&lt;br /&gt;
 new cam1 broadcast enabled&lt;br /&gt;
 setup cam1 input v4l:/dev/video0:norm=PAL:channel=1:adev=/dev/audio&lt;br /&gt;
 setup cam1 option rtsp-tcp&lt;br /&gt;
 setup cam1 output #transcode{vcodec=mp4v,vb=512,scale=1}:duplicate{dst=mosaic-bridge{id=1,height=400,width=300},&lt;br /&gt;
 select=video,dst={transcode{acodec=mp3,ab=64,channels=1}:bridge-out{id=0}},select=audio}&lt;br /&gt;
 &lt;br /&gt;
 # second camera. Important: adev=/dev/null otherwise I couldn&#039;t get it to run&lt;br /&gt;
 new cam2 broadcast enabled&lt;br /&gt;
 setup cam2 input v4l:/dev/video1:norm=PAL:channel=1:adev=/dev/null&lt;br /&gt;
 setup cam2 output #transcode{vcodec=mp4v,vb=512,scale=1}:duplicate{dst=mosaic-bridge{id=2,height=400,width=300}}&lt;br /&gt;
 &lt;br /&gt;
 # set up for the background&lt;br /&gt;
 new background broadcast enabled&lt;br /&gt;
 setup background input fake:&lt;br /&gt;
 setup background option mosaic-width=800&lt;br /&gt;
 setup background option mosaic-height=300&lt;br /&gt;
 setup background option mosaic-rows=1&lt;br /&gt;
 setup background option mosaic-cols=2&lt;br /&gt;
 setup background option mosaic-position=1&lt;br /&gt;
 setup background option mosaic-order=&amp;quot;1,2&amp;quot;&lt;br /&gt;
 setup background option fake-file=&amp;quot;back.gif&amp;quot;&lt;br /&gt;
 setup background option fake-width=800&lt;br /&gt;
 setup background option fake-height=300&lt;br /&gt;
 setup background option fake-fps=&amp;quot;8&amp;quot;&lt;br /&gt;
 setup background output #transcode{sfilter=mosaic,soverlay,vcodec=mp4v,acodec=mp3,ab=64,channels=1,scale=1}:bridge-in{id-offset=100}:std{access=http{mime=video/x-asf-stream},mux=asf,dst=:8080}&lt;br /&gt;
 &lt;br /&gt;
 # put it all together&lt;br /&gt;
 control background play&lt;br /&gt;
 control cam1 play&lt;br /&gt;
 control cam2 play&lt;br /&gt;
&lt;br /&gt;
For us it was not so important to have both images the same. The first camera just showed the audience while the second one looked at the projections made which needed to be of higher quality. We used therefore a special background image with a logo in the bottom left corner and this configuration:&lt;br /&gt;
&lt;br /&gt;
 new cam1 broadcast enabled&lt;br /&gt;
 setup cam1 input v4l:/dev/video0:norm=PAL:channel=1:adev=/dev/audio&lt;br /&gt;
 setup cam1 option rtsp-tcp&lt;br /&gt;
 setup cam1 output #transcode{vcodec=mp4v,vb=384,scale=1}:duplicate{dst=mosaic-bridge{id=1,height=300,width=400},select=video,dst={transcode{acodec=mp3,ab=64,channels=1}:bridge-out{id=0}},select=audio}&lt;br /&gt;
 &lt;br /&gt;
 new cam2 broadcast enabled&lt;br /&gt;
 setup cam2 input v4l:/dev/video1:norm=PAL:channel=1:adev=/dev/null&lt;br /&gt;
 setup cam2 output #transcode{vcodec=mp4v,vb=1500,scale=1}:duplicate{dst=mosaic-bridge{id=2,height=600,width=800},select=video}&lt;br /&gt;
 &lt;br /&gt;
 new background broadcast enabled&lt;br /&gt;
 setup background input fake:&lt;br /&gt;
 setup background option mosaic-width=1200&lt;br /&gt;
 setup background option mosaic-height=600&lt;br /&gt;
 setup background option mosaic-rows=2&lt;br /&gt;
 setup background option mosaic-cols=3&lt;br /&gt;
 setup background option mosaic-position=1&lt;br /&gt;
 setup background option mosaic-order=&amp;quot;1,2,0,0,0,0&amp;quot;&lt;br /&gt;
 setup background option fake-file=&amp;quot;aei3.gif&amp;quot;&lt;br /&gt;
 setup background option fake-width=1200&lt;br /&gt;
 setup background option fake-height=600&lt;br /&gt;
 setup background option fake-fps=&amp;quot;8&amp;quot;&lt;br /&gt;
 setup background option mosaic-keep-picture=1&lt;br /&gt;
 setup background option mosaic-keep-aspect-ratio=1&lt;br /&gt;
 &lt;br /&gt;
setup background output #transcode{sfilter=mosaic,soverlay,vcodec=mp4v,vb=2000,acodec=mp3,ab=64,channels=1,scale=1}:bridge-in{id-offset=100}:std{access=http{mime=video/x-asf-stream},mux=asf,dst=:8080}&lt;br /&gt;
&lt;br /&gt;
control background play&lt;br /&gt;
control cam1 play&lt;br /&gt;
control cam2 play&lt;/div&gt;</summary>
		<author><name>RealMurphy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=MosaicExampleSetup&amp;diff=10118</id>
		<title>MosaicExampleSetup</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=MosaicExampleSetup&amp;diff=10118"/>
		<updated>2007-10-22T10:36:46Z</updated>

		<summary type="html">&lt;p&gt;RealMurphy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Example set-up for a conference: Plans =&lt;br /&gt;
&lt;br /&gt;
== Problem description ==&lt;br /&gt;
&lt;br /&gt;
For a conference we needed a web stream for participants who were not able to come. The set-up needed to be flexible as well transportable, since the conference took place at two venues which were several hundred meters apart. VLC was chosen because there was already a somehow working set-up available which was modified for this conference.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
We were using a dual-core AMD box (Athlon X2 4600+) with 1 GB of memory and only two PCI slots (Fujitsu Siemens PC). So nothing out of the ordinary. We had two PolyCom remote controllable cameras which can output SVIDEO signals which we feed into to BT878 based grabber cards.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
We used the vlc version coming with Ubuntu Gutsy 0.8.6c along with xawtv for direct control of the cameras (the encoding process and buffering of the clients usually introduce a lag of a few seconds which makes it hard to steer the camera efficiently.&lt;br /&gt;
&lt;br /&gt;
== Network distribution ==&lt;br /&gt;
&lt;br /&gt;
One of our problems was that at one of the conference venues the network bandwidth was somehow limited and we feared to overload that network. We thus decided to stream only to a single dedicated box which is connected to a network with a much larger bandwidth. This box was restreaming the content to anyone interested.&lt;br /&gt;
&lt;br /&gt;
= Details =&lt;br /&gt;
&lt;br /&gt;
== Needed devices ==&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
Grabber cards registered their devices where the camera output can be viewed from:&lt;br /&gt;
 /dev/video0&lt;br /&gt;
 /dev/video1&lt;br /&gt;
&lt;br /&gt;
The very first step is to check, if these are working. For this, start &lt;br /&gt;
 xawtv -c /dev/video0&lt;br /&gt;
and we saw a blue window, because xawtv sets the input mode to composite not SVIDEO. To change this, right-click on the blue window, and change the input to SVIDEO. I have not found a possibility to change this via the command line.&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;video0&#039;&#039; is working, try the same with &#039;&#039;video1&#039;&#039; it should work as well.&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
The grabber cards I used, do have audio input but I only got very bad quality. With the on-board audio I got a much better quality so this was used. If you are a fan of a graphical interface try to record input from &#039;&#039;/dev/dsp&#039;&#039; (need the OSS kernel modules) with &#039;&#039;audacity&#039;&#039;. Don&#039;t simply connect the output of the sound card to loudspeakers and the input of your microphone to the microphone input of your computer. The sound card may directly connect those two channels without the software having the possibility to record anything. If you find the input of the grabber cards are good enough, they are usually labeled &#039;&#039;/dev/dsp0&#039;&#039; or something like this.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
&lt;br /&gt;
For a simple set-up with two equally sized images next to each other I use the following config file for vlc:&lt;br /&gt;
&lt;br /&gt;
 # first camera uses /dev/video0 and the on-board sound /dev/audio or /dev/dsp&lt;br /&gt;
 new cam1 broadcast enabled&lt;br /&gt;
 setup cam1 input v4l:/dev/video0:norm=PAL:channel=1:adev=/dev/audio&lt;br /&gt;
 setup cam1 option rtsp-tcp&lt;br /&gt;
 setup cam1 output #transcode{vcodec=mp4v,vb=512,scale=1}:duplicate{dst=mosaic-bridge{id=1,height=400,width=300},&lt;br /&gt;
 select=video,dst={transcode{acodec=mp3,ab=64,channels=1}:bridge-out{id=0}},select=audio}&lt;br /&gt;
 &lt;br /&gt;
 # second camera. Important: adev=/dev/null otherwise I couldn&#039;t get it to run&lt;br /&gt;
 new cam2 broadcast enabled&lt;br /&gt;
 setup cam2 input v4l:/dev/video1:norm=PAL:channel=1:adev=/dev/null&lt;br /&gt;
 setup cam2 output #transcode{vcodec=mp4v,vb=512,scale=1}:duplicate{dst=mosaic-bridge{id=2,height=400,width=300}}&lt;br /&gt;
 &lt;br /&gt;
 # set up for the background&lt;br /&gt;
 new background broadcast enabled&lt;br /&gt;
 setup background input fake:&lt;br /&gt;
 setup background option mosaic-width=800&lt;br /&gt;
 setup background option mosaic-height=300&lt;br /&gt;
 setup background option mosaic-rows=1&lt;br /&gt;
 setup background option mosaic-cols=2&lt;br /&gt;
 setup background option mosaic-position=1&lt;br /&gt;
 setup background option mosaic-order=&amp;quot;1,2&amp;quot;&lt;br /&gt;
 setup background option fake-file=&amp;quot;back.gif&amp;quot;&lt;br /&gt;
 setup background option fake-width=800&lt;br /&gt;
 setup background option fake-height=300&lt;br /&gt;
 setup background option fake-fps=&amp;quot;8&amp;quot;&lt;br /&gt;
 setup background output #transcode{sfilter=mosaic,soverlay,vcodec=mp4v,acodec=mp3,ab=64,channels=1,scale=1}:bridge-in{id-offset=100}:std{access=http{mime=video/x-asf-stream},mux=asf,dst=:8080}&lt;br /&gt;
 &lt;br /&gt;
 # put it all together&lt;br /&gt;
 control background play&lt;br /&gt;
 control cam1 play&lt;br /&gt;
 control cam2 play&lt;/div&gt;</summary>
		<author><name>RealMurphy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=MosaicExampleSetup&amp;diff=10117</id>
		<title>MosaicExampleSetup</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=MosaicExampleSetup&amp;diff=10117"/>
		<updated>2007-10-22T10:34:54Z</updated>

		<summary type="html">&lt;p&gt;RealMurphy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Example set-up for a conference: Plans =&lt;br /&gt;
&lt;br /&gt;
== Problem description ==&lt;br /&gt;
&lt;br /&gt;
For a conference we needed a web stream for participants who were not able to come. The set-up needed to be flexible as well transportable, since the conference took place at two venues which were several hundred meters apart. VLC was chosen because there was already a somehow working set-up available which was modified for this conference.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
We were using a dual-core AMD box (Athlon X2 4600+) with 1 GB of memory and only two PCI slots (Fujitsu Siemens PC). So nothing out of the ordinary. We had two PolyCom remote controllable cameras which can output SVIDEO signals which we feed into to BT878 based grabber cards.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
We used the vlc version coming with Ubuntu Gutsy 0.8.6c along with xawtv for direct control of the cameras (the encoding process and buffering of the clients usually introduce a lag of a few seconds which makes it hard to steer the camera efficiently.&lt;br /&gt;
&lt;br /&gt;
== Network distribution ==&lt;br /&gt;
&lt;br /&gt;
One of our problems was that at one of the conference venues the network bandwidth was somehow limited and we feared to overload that network. We thus decided to stream only to a single dedicated box which is connected to a network with a much larger bandwidth. This box was restreaming the content to anyone interested.&lt;br /&gt;
&lt;br /&gt;
= Details =&lt;br /&gt;
&lt;br /&gt;
== Needed devices ==&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
Grabber cards registered their devices where the camera output can be viewed from:&lt;br /&gt;
 /dev/video0&lt;br /&gt;
 /dev/video1&lt;br /&gt;
&lt;br /&gt;
The very first step is to check, if these are working. For this, start &lt;br /&gt;
 xawtv -c /dev/video0&lt;br /&gt;
and we saw a blue window, because xawtv sets the input mode to composite not SVIDEO. To change this, right-click on the blue window, and change the input to SVIDEO. I have not found a possibility to change this via the command line.&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;video0&#039;&#039; is working, try the same with &#039;&#039;video1&#039;&#039; it should work as well.&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
The grabber cards I used, do have audio input but I only got very bad quality. With the on-board audio I got a much better quality so this was used. If you are a fan of a graphical interface try to record input from &#039;&#039;/dev/dsp&#039;&#039; (need the OSS kernel modules) with &#039;&#039;audacity&#039;&#039;. Don&#039;t simply connect the output of the sound card to loudspeakers and the input of your microphone to the microphone input of your computer. The sound card may directly connect those two channels without the software having the possibility to record anything. If you find the input of the grabber cards are good enough, they are usually labeled &#039;&#039;/dev/dsp0&#039;&#039; or something like this.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
&lt;br /&gt;
For a simple set-up with two equally sized images next to each other I use the following config file for vlc:&lt;br /&gt;
&lt;br /&gt;
 # first camera uses /dev/video0 and the on-board sound /dev/audio or /dev/dsp&lt;br /&gt;
 new cam1 broadcast enabled&lt;br /&gt;
 setup cam1 input v4l:/dev/video0:norm=PAL:channel=1:adev=/dev/audio&lt;br /&gt;
 setup cam1 option rtsp-tcp&lt;br /&gt;
 setup cam1 output #transcode{vcodec=mp4v,vb=512,scale=1}:duplicate{dst=mosaic-bridge{id=1,height=400,width=300},select=video,dst={transcode{acodec=mp3,ab=64,channels=1}:bridge-out{id=0}},select=audio}&lt;br /&gt;
&lt;br /&gt;
 # second camera. Important: adev=/dev/null otherwise I couldn&#039;t get it to run&lt;br /&gt;
 new cam2 broadcast enabled&lt;br /&gt;
 setup cam2 input v4l:/dev/video1:norm=PAL:channel=1:adev=/dev/null&lt;br /&gt;
 setup cam2 output #transcode{vcodec=mp4v,vb=512,scale=1}:duplicate{dst=mosaic-bridge{id=2,height=400,width=300}}&lt;br /&gt;
&lt;br /&gt;
 # set up for the background&lt;br /&gt;
 new background broadcast enabled&lt;br /&gt;
 setup background input fake:&lt;br /&gt;
 setup background option mosaic-width=800&lt;br /&gt;
 setup background option mosaic-height=300&lt;br /&gt;
 setup background option mosaic-rows=1&lt;br /&gt;
 setup background option mosaic-cols=2&lt;br /&gt;
 setup background option mosaic-position=1&lt;br /&gt;
 setup background option mosaic-order=&amp;quot;1,2&amp;quot;&lt;br /&gt;
 setup background option fake-file=&amp;quot;back.gif&amp;quot;&lt;br /&gt;
 setup background option fake-width=800&lt;br /&gt;
 setup background option fake-height=300&lt;br /&gt;
 setup background option fake-fps=&amp;quot;8&amp;quot;&lt;br /&gt;
 setup background output #transcode{sfilter=mosaic,soverlay,vcodec=mp4v,acodec=mp3,ab=64,channels=1,scale=1}:bridge-in{id-offset=100}:std{access=http{mime=video/x-asf-stream},mux=asf,dst=:8080}&lt;br /&gt;
&lt;br /&gt;
 # put it all together&lt;br /&gt;
 control background play&lt;br /&gt;
 control cam1 play&lt;br /&gt;
 control cam2 play&lt;/div&gt;</summary>
		<author><name>RealMurphy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=MosaicExampleSetup&amp;diff=10116</id>
		<title>MosaicExampleSetup</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=MosaicExampleSetup&amp;diff=10116"/>
		<updated>2007-10-22T09:27:47Z</updated>

		<summary type="html">&lt;p&gt;RealMurphy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Example set-up for a conference: Plans =&lt;br /&gt;
&lt;br /&gt;
== Problem description ==&lt;br /&gt;
&lt;br /&gt;
For a conference we needed a web stream for participants who were not able to come. The set-up needed to be flexible as well transportable, since the conference took place at two venues which were several hundred meters apart. VLC was chosen because there was already a somehow working set-up available which was modified for this conference.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
We were using a dual-core AMD box (Athlon X2 4600+) with 1 GB of memory and only two PCI slots (Fujitsu Siemens PC). So nothing out of the ordinary. We had two PolyCom remote controllable cameras which can output SVIDEO signals which we feed into to BT878 based grabber cards.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
We used the vlc version coming with Ubuntu Gutsy 0.8.6c along with xawtv for direct control of the cameras (the encoding process and buffering of the clients usually introduce a lag of a few seconds which makes it hard to steer the camera efficiently.&lt;br /&gt;
&lt;br /&gt;
== Network distribution ==&lt;br /&gt;
&lt;br /&gt;
One of our problems was that at one of the conference venues the network bandwidth was somehow limited and we feared to overload that network. We thus decided to stream only to a single dedicated box which is connected to a network with a much larger bandwidth. This box was restreaming the content to anyone interested.&lt;br /&gt;
&lt;br /&gt;
= Details =&lt;br /&gt;
&lt;br /&gt;
== Needed devices ==&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
Grabber cards registered their devices where the camera output can be viewed from:&lt;br /&gt;
 /dev/video0&lt;br /&gt;
 /dev/video1&lt;br /&gt;
&lt;br /&gt;
The very first step is to check, if these are working. For this, start &lt;br /&gt;
 xawtv -c /dev/video0&lt;br /&gt;
and we saw a blue window, because xawtv sets the input mode to composite not SVIDEO. To change this, right-click on the blue window, and change the input to SVIDEO. I have not found a possibility to change this via the command line.&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;video0&#039;&#039; is working, try the same with &#039;&#039;video1&#039;&#039; it should work as well.&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
The grabber cards I used, do have audio input but I only got very bad quality. With the on-board audio I got a much better quality so this was used. If you are a fan of a graphical interface try to record input from &#039;&#039;/dev/dsp&#039;&#039; (need the OSS kernel modules) with &#039;&#039;audacity&#039;&#039;. Don&#039;t simply connect the output of the sound card to loudspeakers and the input of your microphone to the microphone input of your computer. The sound card may directly connect those two channels without the software having the possibility to record anything.&lt;br /&gt;
&lt;br /&gt;
more to come&lt;/div&gt;</summary>
		<author><name>RealMurphy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=MosaicExampleSetup&amp;diff=10115</id>
		<title>MosaicExampleSetup</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=MosaicExampleSetup&amp;diff=10115"/>
		<updated>2007-10-22T08:22:08Z</updated>

		<summary type="html">&lt;p&gt;RealMurphy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Example set-up for a conference =&lt;br /&gt;
&lt;br /&gt;
== Problem description ==&lt;br /&gt;
&lt;br /&gt;
For a conference we needed a web stream for participants who were not able to come. The set-up needed to be flexible as well transportable, since the conference took place at two venues which were several hundred meters apart. VLC was chosen because there was already a somehow working set-up available which was modified for this conference.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
We were using a dual-core AMD box (Athlon X2 4600+) with 1 GB of memory and only two PCI slots (Fujitsu Siemens PC). So nothing out of the ordinary. We had two PolyCom remote controllable cameras which can output SVIDEO signals which we feed into to BT878 based grabber cards.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
We used the vlc version coming with Ubuntu Gutsy 0.8.6c along with xawtv for direct control of the cameras (the encoding process and buffering of the clients usually introduce a lag of a few seconds which makes it hard to steer the camera efficiently.&lt;br /&gt;
&lt;br /&gt;
== Network distribution ==&lt;br /&gt;
&lt;br /&gt;
One of our problems was that at one of the conference venues the network bandwidth was somehow limited and we feared to overload that network. We thus decided to stream only to a single dedicated box which is connected to a network with a much larger bandwidth. This box was restreaming the content to anyone interested.&lt;br /&gt;
&lt;br /&gt;
More to come&lt;/div&gt;</summary>
		<author><name>RealMurphy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Make_a_mosaic&amp;diff=10114</id>
		<title>VLC HowTo/Make a mosaic</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Make_a_mosaic&amp;diff=10114"/>
		<updated>2007-10-22T08:05:39Z</updated>

		<summary type="html">&lt;p&gt;RealMurphy: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto| set up a mosaic of a few videos or stream like a TV portal}}&lt;br /&gt;
&lt;br /&gt;
==VLC mosaic howto==&lt;br /&gt;
&lt;br /&gt;
This is a small example about how to use {{VLC}} to create a mosaic. What we basically want is a video mosaic mixing 3 video channels (channels 1, 2 and 3) on a background image (background.png) and streaming the resulting video on the network. Note that we will also be streaming the 3 sound tracks from channels 1, 2 and 3 in the same mpeg-ts stream.&lt;br /&gt;
&lt;br /&gt;
Starting with VLC 0.8.5-test2, the http interface features a &amp;quot;Mosaic wizard&amp;quot;. You might want to use it if you have no knowledge of VLC command line usage.&lt;br /&gt;
&lt;br /&gt;
http://people.via.ecp.fr/~dionoea/videolan/mosaic1.png&lt;br /&gt;
&lt;br /&gt;
Other neat examples :&lt;br /&gt;
&lt;br /&gt;
[http://people.via.ecp.fr/~dionoea/videolan/mosaic2.jpg 12 video mosaic]&lt;br /&gt;
&lt;br /&gt;
[http://people.via.ecp.fr/~dionoea/videolan/mos1.png 20 video mosaic]&lt;br /&gt;
&lt;br /&gt;
[http://people.via.ecp.fr/~dionoea/videolan/mos2.png 20 video mosaic]&lt;br /&gt;
&lt;br /&gt;
===Step 0===&lt;br /&gt;
&lt;br /&gt;
Read the VLC streaming howto (chapters 3 and 5 concerning command line and vlm usage in VLC) : http://videolan.org/doc/&lt;br /&gt;
&lt;br /&gt;
===Step 1===&lt;br /&gt;
&lt;br /&gt;
Get VLC 0.8.4-test1 or newer and install it on your computer.&lt;br /&gt;
&lt;br /&gt;
===Step 2===&lt;br /&gt;
&lt;br /&gt;
You now have to get a background image. Many image formats are supported (JPEG, PNG ...).&lt;br /&gt;
&lt;br /&gt;
You can also test it with VLC to see if it displays locally :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./vlc --fake-file background.png --fake-aspect-ratio &amp;quot;4:3&amp;quot; fake:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Step 3===&lt;br /&gt;
&lt;br /&gt;
You now need to configure VLC to get the 3 source streams and blend them on the background image.&lt;br /&gt;
&lt;br /&gt;
The vlm configuration file looks like :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
new channel1 broadcast enabled                                                       &lt;br /&gt;
setup channel1 input udp://@239.255.2.60:1234                                        &lt;br /&gt;
setup channel1 output #duplicate{dst=mosaic-bridge{id=1,height=144,width=180},select=video,dst=bridge-out{id=1},select=audio}                                                         &lt;br /&gt;
                                                                                &lt;br /&gt;
new channel2 broadcast enabled&lt;br /&gt;
setup channel2 input udp://@239.255.10.200:1234&lt;br /&gt;
setup channel2 output #duplicate{dst=mosaic-bridge{id=2,height=144,width=180},select=video,dst=bridge-out{id=2},select=audio}                                                         &lt;br /&gt;
&lt;br /&gt;
new channel3 broadcast enabled&lt;br /&gt;
setup channel3 input udp://@239.255.6.9:1234&lt;br /&gt;
setup channel3 output #duplicate{dst=mosaic-bridge{id=3,height=144,width=180},select=video,dst=bridge-out{id=3},select=audio}                                                         &lt;br /&gt;
&lt;br /&gt;
new background broadcast enabled&lt;br /&gt;
setup background input fake:&lt;br /&gt;
setup background output #transcode{sfilter=mosaic,vcodec=mp2v,vb=10000,scale=1}:bridge-in{delay=400,id-offset=100}:standard{access=udp,mux=ts,url=239.255.12.42,sap,name=&amp;quot;mosaic&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
control background play&lt;br /&gt;
control channel1 play&lt;br /&gt;
control channel2 play&lt;br /&gt;
control channel3 play&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the source streams are network streams, which is likely to be the case if you&#039;re considering doing a mosaic.&lt;br /&gt;
&lt;br /&gt;
===Step 4===&lt;br /&gt;
&lt;br /&gt;
And now, the right command to launch vlc :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./vlc --color -I telnet --vlm-conf ../mosaic.vlm.conf --ttl 12 \&lt;br /&gt;
 --fake-file background.png --fake-aspect-ratio &amp;quot;4:3&amp;quot; \&lt;br /&gt;
 --mosaic-width 360 --mosaic-height 288 --udp-caching 800 \&lt;br /&gt;
 --mosaic-keep-picture --mosaic-rows 2 --mosaic-cols 2 \&lt;br /&gt;
 --mosaic-position 1 --mosaic-order 1,2,3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [http://people.via.ecp.fr/~dionoea/videolan/mosaic-diagram.png Small Diagram That Might Help]&lt;br /&gt;
* [http://people.videolan.org/~dionoea/mosaic/ VLC Mosaic related resources]&lt;br /&gt;
* [[MosaicExampleSetup | Example set-up of conference web-streaming with two grabber cards]]&lt;br /&gt;
&lt;br /&gt;
==Appendix==&lt;br /&gt;
&lt;br /&gt;
===Mosaic video sub filter===&lt;br /&gt;
The full set of mosaic commands is :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Mosaic video sub filter&lt;br /&gt;
      --mosaic-alpha &amp;lt;integer&amp;gt;   Alpha blending&lt;br /&gt;
          Alpha blending (0 -&amp;gt; 255). Default is 255&lt;br /&gt;
      --mosaic-height &amp;lt;integer&amp;gt;  Height in pixels&lt;br /&gt;
          Height in pixels&lt;br /&gt;
      --mosaic-width &amp;lt;integer&amp;gt;   Width in pixels&lt;br /&gt;
          Width in pixels&lt;br /&gt;
      --mosaic-align {0 (Center), 1 (Left), 2 (Right), 4 (Top), 8 (Bottom), 5 (Top-Left), 6 (Top-Right), 9 (Bottom-Left), 10 (Bottom-Right)}&lt;br /&gt;
                                 Mosaic alignment&lt;br /&gt;
          Mosaic alignment&lt;br /&gt;
      --mosaic-xoffset &amp;lt;integer&amp;gt; Top left corner x coordinate&lt;br /&gt;
          Top left corner x coordinate&lt;br /&gt;
      --mosaic-yoffset &amp;lt;integer&amp;gt; Top left corner y coordinate&lt;br /&gt;
          Top left corner y coordinate&lt;br /&gt;
      --mosaic-vborder &amp;lt;integer&amp;gt; Vertical border width in pixels&lt;br /&gt;
          Vertical border width in pixels&lt;br /&gt;
      --mosaic-hborder &amp;lt;integer&amp;gt; Horizontal border width in pixels&lt;br /&gt;
          Horizontal border width in pixels&lt;br /&gt;
      --mosaic-position {0 (auto), 1 (fixed)}&lt;br /&gt;
                                 Positioning method&lt;br /&gt;
          Positioning method. auto : automatically&lt;br /&gt;
          choose the best number of rows and columns.&lt;br /&gt;
          fixed : use the user-defined number of rows&lt;br /&gt;
          and columns.&lt;br /&gt;
      --mosaic-rows &amp;lt;integer&amp;gt;    Number of rows&lt;br /&gt;
          Number of rows&lt;br /&gt;
      --mosaic-cols &amp;lt;integer&amp;gt;    Number of columns&lt;br /&gt;
          Number of columns&lt;br /&gt;
      --mosaic-keep-aspect-ratio, --no-mosaic-keep-aspect-ratio&lt;br /&gt;
                                 Keep aspect ratio when resizing (default&lt;br /&gt;
                                 disabled)&lt;br /&gt;
          Keep aspect ratio when resizing (default&lt;br /&gt;
          disabled)&lt;br /&gt;
      --mosaic-keep-picture, --no-mosaic-keep-picture&lt;br /&gt;
                                 Keep original size (default disabled)&lt;br /&gt;
          Keep original size (default disabled)&lt;br /&gt;
      --mosaic-order &amp;lt;string&amp;gt;    Order as a comma separated list of&lt;br /&gt;
                                 picture-id(s)&lt;br /&gt;
          Order as a comma separated list of&lt;br /&gt;
          picture-id(s)&lt;br /&gt;
      --mosaic-delay &amp;lt;integer&amp;gt;   Delay&lt;br /&gt;
          Pictures coming from the picture video&lt;br /&gt;
          outputs will be delayed accordingly (in&lt;br /&gt;
          milliseconds). For high values you will need&lt;br /&gt;
          to raise file-caching and others.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mosaic bridge stream output===&lt;br /&gt;
The full set of mosaic bridge stream output commands is :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Mosaic bridge stream output&lt;br /&gt;
      --sout-mosaic-bridge-id &amp;lt;string&amp;gt;&lt;br /&gt;
                                 ID&lt;br /&gt;
          Specify an identifier string for this&lt;br /&gt;
          subpicture&lt;br /&gt;
      --sout-mosaic-bridge-width &amp;lt;integer&amp;gt;&lt;br /&gt;
                                 Video width&lt;br /&gt;
          Allows you to specify the output video width.&lt;br /&gt;
      --sout-mosaic-bridge-height &amp;lt;integer&amp;gt;&lt;br /&gt;
                                 Video height&lt;br /&gt;
          Allows you to specify the output video height.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bridge stream output===&lt;br /&gt;
The full set of bridge stream output commands is :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Bridge stream output&lt;br /&gt;
      --sout-bridge-out-id &amp;lt;integer&amp;gt;&lt;br /&gt;
                                 ID&lt;br /&gt;
          Specify an identifier integer for this&lt;br /&gt;
          elementary stream&lt;br /&gt;
      --sout-bridge-in-delay &amp;lt;integer&amp;gt;&lt;br /&gt;
                                 Delay&lt;br /&gt;
          Pictures coming from the picture video&lt;br /&gt;
          outputs will be delayed accordingly (in&lt;br /&gt;
          milliseconds, &amp;gt;= 100 ms). For high values you&lt;br /&gt;
          will need to raise file-caching and others.&lt;br /&gt;
      --sout-bridge-in-id-offset &amp;lt;integer&amp;gt;&lt;br /&gt;
                                 ID Offset&lt;br /&gt;
          Offset to add to the stream IDs specified in&lt;br /&gt;
          bridge_out to obtain the stream IDs bridge_in&lt;br /&gt;
          will register.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Fake input module===&lt;br /&gt;
The full set of the fake input options is :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Fake video decoder&lt;br /&gt;
      --fake-file &amp;lt;string&amp;gt;       Image file&lt;br /&gt;
          Path of the image file when using the fake&lt;br /&gt;
          input.&lt;br /&gt;
      --fake-file-reload &amp;lt;integer&amp;gt; Reload image file every x seconds.&lt;br /&gt;
      --fake-width &amp;lt;integer&amp;gt;     Video width&lt;br /&gt;
          Allows you to specify the output video width.&lt;br /&gt;
      --fake-height &amp;lt;integer&amp;gt;    Video height&lt;br /&gt;
          Allows you to specify the output video height.&lt;br /&gt;
      --fake-keep-ar, --no-fake-keep-ar&lt;br /&gt;
                                 Keep aspect ratio (default disabled)&lt;br /&gt;
          If selected, width and height will be&lt;br /&gt;
          considered as maximum values. (default&lt;br /&gt;
          disabled)&lt;br /&gt;
      --fake-aspect-ratio &amp;lt;string&amp;gt;&lt;br /&gt;
                                 Background aspect ratio&lt;br /&gt;
          Aspect ratio of the image file (4:3, 16:9).&lt;br /&gt;
          Default is square pixels.&lt;br /&gt;
      --fake-deinterlace, --no-fake-deinterlace&lt;br /&gt;
                                 Deinterlace video (default disabled)&lt;br /&gt;
          Allows you to deinterlace the image after&lt;br /&gt;
          loading. (default disabled)&lt;br /&gt;
      --fake-deinterlace-module {deinterlace,ffmpeg-deinterlace}&lt;br /&gt;
                                 Deinterlace module&lt;br /&gt;
          Specifies the deinterlace module to use.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>RealMurphy</name></author>
	</entry>
</feed>