Introduction: Raspberry Pi Video Streaming

This instructable will show how to stream a Raspicam to a web using a Raspberry Pi and the UV4L driver.

Step 1: Material

- Raspberry Pi or Odroid-W Running Raspbian

- Raspicam

- Router

- Ethernet Cable

Step 2: Enable Raspicam

Before starting to configure the Raspberry, you'll need to enable the Raspicam CSI port and expand the root filesystem.

First, connect the Raspicam and the Raspberry to a router using an Ethernet cable.

Then, power the Raspberry

Open the terminal and run:

$sudo raspi-config

Select "Enable Camera" and then "Enable"

Select "Expand Filesystem"

Step 3: Installing Raspicam Driver

To install the uv4l driver, open the terminal and run the following commands:

$ wget && sudo apt-key add ./lrkey.asc

Add the following line to the file /etc/apt/sources.list :

$sudo nano /etc/apt/sources.list

deb wheezy main

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get install uv4l uv4l-raspicam

$ sudo apt-get install uv4l-raspicam-extras

$ sudo apt-get install uv4l-server

$ sudo apt-get install uv4l-uvc

$ sudo apt-get install uv4l-xscreen

$ sudo apt-get install uv4l-mjpegstream

$ sudo reboot


Step 4: Start the Streaming Server

Open the terminal and run the following commands:

$sudo pkill uv4l (Optional)

$sudo uv4l -nopreview --auto-video_nr --driver raspicam --encoding mjpeg --width 640 --height 480 --framerate 20 --server-option '--port=9090' --server-option '--max-queued-connections=30' --server-option '--max-streams=25' --server-option '--max-threads=29'


The --port=9090 is the local IP port. You can use any port you like.

The --max-streams=25 is the maximum simultaneous streams.

Step 5: Find Raspberry Pi Local IP Address

Open the terminal and run:


Check and write down the inet addr at eth0

Step 6: Configure Your Router

- Open a Web browser

- Type your router ip address ( ).

- Router login. If you're using Linksys router, the user and pass could be "admin"

- Port forward your Raspberry Pi IP address.

If your using Linksys router:

- Click "Application&Gamming" Tab

- Click "Simple Port Forwarding" Tab

- Configure the following parameters:

External Port: 9090 (Public IP port to reach your Raspberry stream)

*Make sure your choosen port is Open with . If it's not, call your internet provider to open the port.

Internal Port: 9090 (Raspberry Pi streaming port)

Protocol: Both

To IP Address: (Your local Raspberry Pi IP Address)

Enabled: checked


How to find your router IP address:

Port Forwarding:

Step 7: Final Test

To see the streaming follow the next steps:

- Open a browser

- Type your public IP follow by the external/public port (http://Your public IP:9090/stream)

Raspberry Pi Contest

Participated in the
Raspberry Pi Contest