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