IPの動作確認ができたので、カメラの画像をffmpegとffserverでencode & streaming してみた。
その為には何とかしてカメラの画像をffmpegに入力する必要があるが、ffmpegはfile formatにfbdev (Linux framebuffer)が指定できるので、カメラ用のframebufferを作ることにした。と言ってもやることは単純で、devicetreeにカメラ用のsimple framebufferの定義を追加するだけだ。bufferは0x1F500000番地からの領域とした。
Linuxの起動ログ … fb1が認識されている。
OS起動後、以下のプログラムでIPを起動する。
このプログラムを一度実行すると、IPが動作状態になりカメラの画像がframebufferに記録される。
・ffserverとffmpegの起動
・ ffserver.conf
ffserverを使うためにはffserver.confに各種パラメータの値を書く必要があり、標準的にはそれを/etcに配置する。今回は以下のように書いた。
codecはflvを使った。swfも指定してみたのだが、client側のブラウザで画像表示出来なかった。また、カメラからは640x480 30fpsで取り込んでいるがstreamingは320x240のサイズに縮小した。
ffmpegが動作している様子 ... 一応 framerate は30fpsにはなっている。
母艦PC上のブラウザからzyboのサーバーにアクセスして画像を表示させてみた。(その様子をvokoscreenで録画した。)
singlebufferなので時折、画像が乱れるが被写体の動きは滑らかだ。
zybo側のcpu負荷やmemory消費の状態
0 件のコメント:
コメントを投稿