snagplaces on @wiki
ffmpegでストリーミング配信
最終更新:
snagplaces
-
view
最終更新日時:2010年01月08日 (金) 18時05分36秒[編集]
このページはまだまだ途中です。
はじめに
なんとなくブックマークを整理していたときにQcam Orbitのパンチルト操作をMJPEG-Streamer以外でもできる記事を見つけたので、これを機にもうちょっとちゃんとしたストリーミング配信にしようと思います。
以前試してて頓挫したffmpegによる配信と、QcamOrbitを操作できるuvcdynctrlというものを使って構築します。
以前試してて頓挫したffmpegによる配信と、QcamOrbitを操作できるuvcdynctrlというものを使って構築します。
注意事項
- UVCドライバが導入済み(CentOS on EeeBOX/バッファローコクヨサプライ BSW13K05HBK を認識させる)
- Apacheが構築済み
参考サイト
- Linux 備忘録 papanda - ffserver(ffmpeg)+UVC対応USBカメラでストリーミング配信
- Linux 備忘録 papanda - ffserver(ffmpeg)+UVC対応USBカメラでストリーミング配信 続き
- Bird-Soft Weblog: LinuxでWebCamera(Qcam Orbit AF)をコントロール(パン、チルト、フォーカス等)【uvcdynctrlコマンド編】
- Bird-Soft Weblog: LinuxでWebCamera(Qcam Orbit AF)をリモートコントロール
ffmpegのインストール
ffmpegのダウンロード
参考サイトにあるようなリビジョン指定(-r 9778)をするとmake時にエラーが出たので、最新版を入れてます。
# svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
コンパイルとインストール
# ./configure # make # paco -D make install
ffmpegの設定
基本設定ファイルをコピー
# cp doc/ffserver.conf /etc
設定ファイルの編集
# vi /etc/ffserver.conf 【4行目あたり変更】使用ポート Port 8080 【18行目あたり変更】最大接続数 MaxClients 10 【22行目あたり変更】最大帯域幅 MaxBandwidth 1024 【26行目あたり変更】ログの保存先 CustomLog /var/log/ffserver.log 【52行目あたり変更】フィード(データストリーム)の最大データ量 FileMaxSize 1M
これ以降はmpegやswf等のストリーム設定となりますが、一旦全てコメントアウトしておきます。
ストリームの設定は複数指定することができ、各項目は以下のような例を複数並べて設定することになります。
ストリームの設定は複数指定することができ、各項目は以下のような例を複数並べて設定することになります。
<Stream test.swf> ※ストリーム名を指定 Feed feed1.ffm ※フィード名 Format swf ※再生フォーマット(mpeg,mpegvideo,mp2,ogg,rm,ra,mpjpeg,jpeg,asf,swf,flv,avi) VideoBitRate 512 ※再生ビットレート(kbps) VideoFrameRate 15 ※フレームレート VideoSize 640x480 ※ビデオサイズ(vgaやxgaといった指定も可能) VideoGopSize 30 ※GOPフレームの間隔 VideoBufferSize 80 ※ビデオバッファサイズ NoAudio ※音声の出力制御
</Stream>
[▲上へ]
ffmpeg・ffserverの起動
ffserver.confで指定した値とffmpegのオプションは合わせてやった方が安定します。
ffserver
ffserver
# ffserver -f /etc/ffserver.conf &
ffmpeg
# ffmpeg -f video4linux2 -s vga -r 15 -b 512k -i /dev/video0 http://localhost:8080/feed1.ffm
外部からストリーミングへ接続するには、ブラウザ上で「http://ドメイン名:8080」で接続することができます。
映像は出たけど音声が出ないなぁ・・・
[▲上へ]