snagplaces on @wiki
※記事を投稿すると以下に項目が自動で追加されますが、タイトル昇順に並び変わるため構築順序は正確ではありません。

CentOS on EeeBOX

番外



最終更新日



[ 編集 ]

CentOS on EeeBOX > ffmpegでストリーミング配信

最終更新日時: 2010年01月08日 (金) 18時05分36秒 [ 編集 ]

このページはまだまだ途中です。

はじめに

なんとなくブックマークを整理していたときにQcam Orbitのパンチルト操作をMJPEG-Streamer以外でもできる記事を見つけたので、これを機にもうちょっとちゃんとしたストリーミング配信にしようと思います。
以前試してて頓挫したffmpegによる配信と、QcamOrbitを操作できるuvcdynctrlというものを使って構築します。

注意事項

参考サイト



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 -f /etc/ffserver.conf &
ffmpeg
# ffmpeg -f video4linux2 -s vga -r 15 -b 512k -i /dev/video0 http://localhost:8080/feed1.ffm

外部からストリーミングへ接続するには、ブラウザ上で「http://ドメイン名:8080」で接続することができます。

映像は出たけど音声が出ないなぁ・・・