Poster of Linux kernelThe best gift for a Linux geek


Section: User Commands (1) Updated: July 2010
Local index Up


milhouse - Streams audio and video with GStreamer over RTP  


milhouse [--sender|--receiver] --address address [options]

By default, milhouse uses videotestsrc as a video test source and jackaudiosrc for audio input.  


Streams audio and video using GStreamer over . Can be run either as a sender or a receiver. Can also be used to change V4L2 video device settings, or to display a local preview of what is captured locally.

Milhouse is a simple tool that can do a lot of things. For example, it can list the cameras and video capture devices found on your computer. It can also change video settings for a V4L2 (Video4Linux2) device, such as its video standard and its selected video input number. Milhouse also supports DV cameras and DC cameras, two kinds of cameras using IEEE 1394 (Firewire) to send their digital video signal to the computer.

For the audio, Milhouse provides optional volume unit meters, so that the opertators can monitor the audio levels.

There is also a shared video library that is shipped with Milhouse. This way, a developer can display a video that is received over into a 3D scene in one's OpenGL application, for example.


-h [ --help ]
produce help
-r [ --receiver ]
this process is a receiver
-s [ --sender ]
this process is a sender
-i [ --address ] arg (=
provide ip address of remote host
-v [ --videocodec ] arg (=mpeg4)
videocodec (mpeg4,h263,h264,theora)
-a [ --audiocodec ] arg (=raw)
audiocodec (raw,vorbis,mp3)
-k [ --videosink ] arg (=xvimagesink)
video output (xvimagesink,ximagesink,glimage sink,sharedvideosink)
-l [ --audiosink ] arg (=jackaudiosink)
audio output (jackaudiosink,alsasink,pulsesi nk)
-t [ --audioport ] arg
audioport number (1024-65535
-p [ --videoport ] arg
videoport number (1024-65535)
-f [ --fullscreen ]
display video in fullscreen
-B [ --shared-video-id ] arg (=shared_memory) name for shared video buffer
-o [ --deinterlace ]
deinterlace video on reception
-d [ --videodevice ] arg (=/dev/video0)
name of video device (/dev/video0,/dev/video1)
--videodisplay arg
display to use for video output (:0.0,:0.1)
-q [ --audiodevice ] arg
name of audio device (hw:0,hw:2,plughw:0,plughw:2)
-L [ --videolocation ] arg
video filename
-K [ --audiolocation ] arg
audio filename
-w [ --version ]
display version info
-c [ --numchannels ] arg (=2)
number of audio channels
-x [ --videobitrate ] arg (=3000000)
video bitrate (1000000,3000000)
-X [ --videoquality ] arg (=32)
use specified video quality instead of bitrate for theora (0-63)
--audioquality arg (=-1)
quality for compressed audio (0.0-1.0)
--audiobitrate arg (=0)
bitrate for compressed audio in kbps (7,16,24,32,40,48,56,64,80,96,1 12,128,160,192,224,256,320)
-e [ --audiosource ] arg (=jackaudiosrc)
audio input (jackaudiosrc,alsasrc,pulsesrc)
-u [ --videosource ] arg (=videotestsrc)
video input (v4l2src,dc1394src,v4lsrc,dv139 4src)
-z [ --timeout ] arg (=0)
time in ms to wait before quitting, 0=run indefinitely
-b [ --audio-buffer ] arg (=15)
size of audio buffer in milliseconds, must be >= 10
-g [ --jitterbuffer ] arg (=50)
size of receiver's rtp jitterbuffers in milliseconds, must be > 1
-G [ --camera-number ] arg (=-1)
camera id for dc1394src
-U [ --camera-guid ] arg (=0)
camera guid for dc1394src
-I [ --multicast-interface ] arg
interface to use for multicast (eth0,eth1)
-j [ --enable-controls ]
enable gui controls for adjusting the jitterbuffer
-J [ --disable-jack-autoconnect ]
make sure milhouse's jack audio ports don't connect on startup
-O [ --jack-client-name ] arg
name of jack-client
prevent media capabilities (caps) from being communicated over tcp
-D [ --debug ] arg (=info)
level of logging verbosity (string/int) (critical=1,error=2,warning=3,i nfo=4,debug=5,gst-debug=6)
-W [ --window-title ] arg (=Milhouse)
title for video window
-F [ --framerate ] arg (=30)
framerate for video (15,30)
-H [ --list-cameras ]
list connected cameras
list connected V4L2 devices
-N [ --width ] arg (=640)
width for video capture
-Y [ --height ] arg (=480)
height for video capture
-P [ --display-width ] arg
width for video on display(scales output video width)
-Q [ --display-height ] arg
height for video (scales output video height)
-M [ --grayscale ]
force dc1394 capture to grayscale
-A [ --aspect-ratio ] arg (=4:3)
picture aspect ratio (4:3,16:9)
display local video only
local audio only
--flip-video arg (=none)
flip video (none, clockwise, rotate-180, counterclockwise, horizontal-flip, vertical-flip, upper-left-diagonal, upper-right-diagonal)
--v4l2-standard arg
set v4l2 standard (NTSC,PAL)
--v4l2-input arg
set v4l2 input (0,1,2)
--x-window-id arg (=0)
set x-window-id to display video in an existing window
--vumeter-id arg (=0)
id of the socket where the vumeters will be displayed
print the maximum number of channels milhouse can send for the selected audiocodec
outputs a dotfile representation of this process' pipeline
--text-overlay arg
overlays given text on video sink (receiver side only)
prints the version number of the GStreamer (core) library currently installed

Exitting Milhouse

INFO:Built on Jul 19 2010 at 16:39:00 INFO:version 0.6.3

Exitting Milhouse  


Here is how to start a receiver and a sender to stream audio and video.

On local_ip_address:

milhouse --receiver --address remote_ip_address --videosink xvimagesink --videocodec mpeg4 --videoport 10030 --audiosink jackaudiosink --audiocodec raw --audioport 10000

On remote_ip_address:

milhouse --sender --address local_ip_address --videocodec mpeg4 --videoport 10030 --videosource v4l2src --audiosource jackaudiosrc --audiocodec raw -c 2 --audioport 10000

The milhouse command can also be used to change some properties of a V4L2 video device, such as the size and the video standard. The milhouse command should exit immediately once done.

To change the video standard to either NTSC or PAL:

milhouse --v4l2-standard NTSC

To list cameras:

milhouse --list-cameras

To choose an input for a V4L2 device:
  milhouse --v4l2-input 1  


2008 - Written by Tristan Matthews <> and Koya Charles <>.  


On some operating systems, one must use instead of localhost for local connections.

Using the audiotestsrc might use 100% of your CPU power.  



Scenic Copyright (C) 2008 Society for Arts and Technology (SAT) All rights reserved.

This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.

Scenic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Scenic. If not, see <>.  


scenic(1), midistream(1), firereset(1), dc-ctl(1), jack-info(1), /usr/share/scenic/docbook




This document was created by man2html, using the manual pages.
Time: 21:23:53 GMT, April 16, 2011