警告メッセージ

Howtoは、Armadilloシリーズを有効に活用するための参考資料です。使用ソフトウェアのバージョンなど諸条件の差異によって、記載内容と実際の動作が異なる場合があります。また、すべての機能検証や長期の動作試験を行ったものではありませんので、必ずご使用目的に適合した検証・試験を行ってください。

Howto : Webカメラ

対象製品: Armadillo-9

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 [q] to stop encoding

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