Howto

Webカメラ

USB接続のWebカメラを使用して、ビデオのストリーミング配信を行ないます。 カメラには標準カーネルでドライバが用意されているELECOMのUCAM-C1C30を使用しています。

作業の前にDebianのセットアップX Windowのセットアップを行って下さい。

1. カーネルのコンパイル

Videoとカメラを有効にしてカーネルをコンパイルします。make menuconfigでカーネルの設定を選択し、
 
Multimedia devices --->
<*> Video For Linux
...
USB support --->
<*> USB OV511 Camera support
...

上記項目を順に選択してからカーネルを再コンパイルし、Flashメモリを書換えてください

2. 映像の表示の確認

USBカメラの認識に成功していれば、X上にUSBカメラの映像を表示できます。xawtvと呼ばれるアプリケーションをインストール後、X Window上で起動してカメラの動作を確認して下さい。

3. ストリーミング配信アプリのインストール

ffmpegをインストールします。aptで取得できる0.4.9pre1だとうまく動作しなかったので、0.4.8のソースをダウンロードしてPCでクロスコンパイルしました。

ソースコードを展開しディレクトリを移動後、configureファイルの以下の行を修正します。

LDFLAGS="$LDFLAGS -rdynamic"
 ↓
LDFLAGS="$LDFLAGS -static"

開発用PC上でクロスコンパイルを行います

[PC~]# ./configure --cross-prefix=arm-linux- --cpu=arm
[PC~]# make

コンパイル後作成された ffserver と ffmpeg をArmadillo-9にコピーします。

4. 設定ファイルの作成

/etc/ffserver.conf を以下の例ように作成します。

Port 8090
BindAddress 0.0.0.0
MaxClients 1000
MaxBandwidth 1000
CustomLog -
NoDaemon
# feed
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 200K
ACL allow 127.0.0.1
</Feed>
# jpeg
<Stream test.jpg>
Feed feed1.ffm
Format jpeg
VideoFrameRate 2
VideoIntraOnly
VideoSize 320x240
NoAudio
</Stream>
# asf
<Stream test.asf>
 
Feed feed1.ffm
Format asf
VideoFrameRate 5
VideoSize 320x240
VideoBitRate 256
VideoGopSize 30
NoAudio
StartSendOnKey
</Stream>
# stat
<Stream stat.html>
Format status
ACL allow localhost
ACL allow 192.168.10.0 192.168.10.255
</Stream>
# redirect
<Redirect index.html>
URL http://ffmpeg.sourceforge.net/
</Redirect>

5. アプリの起動

以下のようにコマンドを入力してアプリを起動します。

# ./ffserver -f /etc/ffserver.conf &
ffserver started.
# ./ffmpeg http://localhost:8090/feed1.ffm -vd /dev/video0
127.0.0.1 - - [Sat Jan  8 08:37:30 2000] "GET /feed1.ffm HTTP/1.0" 200 4165     
Input #0, video4linux, from '':                                                 
  Duration: N/A, bitrate: N/A                                                   
  Stream #0.0: Video: rawvideo, yuv420p, 320x240, 5.00 fps                      
Output #0, ffm, to 'http://localhost:8090/feed1.ffm':                           
  Stream #0.0: Video: mjpeg, 320x240, 2.00 fps, q=3-31, 64 kb/s                 
  Stream #0.1: Video: msmpeg4, 320x240, 5.00 fps, q=3-31, 256 kb/s              
Stream mapping:                                                                 
  Stream #0.0 -> #0.0                                                           
  Stream #0.0 -> #0.1                                                           
Press <a href="#refq">[q]</a> to stop encoding

WindowsマシンからIEで、http://(Armadillo-9のIPアドレス):8090/stat.html にアクセスし、test.asfへのリンクをクリックするとUSBカメラの映像を見る事ができます。