From HiveTool
Revision as of 03:10, 20 March 2016 by Paul (talk | contribs) (Introduction)
Jump to: navigation, search


Most cameras will output "raw video" but special media players may be needed to view it. For streaming, video is encoded into a format like mpeg or h.264 and wrapped in a container like avi, swf, or mp4. The container may include other streams (eg audio, captioning, subtitles) Encoding includes compression so the video doesn't consume huge amounts of bandwidth or disk space. Encoding the video can consume considerable processing power (40 to 100% CPU utilization). Underpowered machines are limited to low frame rates (5 fps) and resolutions (320x240) resulting in slow, jerky video. The Pi's core has encoder hardware but enabling it requires payment of a licensing fee.

Some cameras have hardware encoders built into the camera and in addition to raw video, can also stream encoded video. The Logitech HD920 has mpeg and h.264 encoders. If the camera will stream encoded video, essentially all the computer has to do is copy the video stream from the camera to the network interface which results in 2 to 5% CPU utilization.

Pi Cam

The hivetool image ver 0.73 is set to stream raw video using raspi-vid and cvlc. Raspi-vid uses the GPU so CPU utilization is very low.

  1. Enable Camera in raspi-config
  2. Run

or remove comment from line in /etc/rc.local that calls and it will start streaming on boot.

To view the stream, run VLC media player and open media stream from the hive ip port 8554 using real time streaming protocol like:


Note that VLC Media Player running on another computer can be used to encode and re-stream the video.

USB Web Cam

Display camera modes

Video4Linux can be used to find out what formats the camera supports and to control the camera.

To install Video4Linux on the Pi:

apt-get install v4l-utils v4l-conf

To display the video formats the camera supports:

v4l2-ctl --list-formats

If the camera is fixed, auto focus can be turned off and the camera focused manually.

To turn auto focus off and manually set the focus:

/usr/bin/v4l2-ctl --verbose --set-ctrl=focus_auto=0
/usr/bin/v4l2-ctl -d 0 -c focus_absolute=25

Install ffmpeg

These instructions are old and probably out of date.

FFmpeg is one program to encode or copy video and/or audio streams.

1. Install h.264 library libx264 if h.264 encoding will be used.

git clone git://
cd x264
./configure --enable-static --enable-shared *See Note 1 below.
make install

2. Install ffmpeg

git clone git://
cd ffmpeg
./configure --enable-gpl --enable-libx264  --enable-libfreetype *See Note 2
make install

1. Disable the assembler when compiling on the Pi[1]:

./configure --disable-asm --enable-shared

2. Disable mmx when compiling on the Pi

./configure --enable-shared --enable-gpl  --enable-libx264   --enable-libfreetype --disable-mmx

Configure ffserver