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カメラの映像を見る事ができます。