本資料は、2003年8月2日(土)に開催された「kmlug 技術交流会」での発表資料
に加筆修正したものです。
FFMPEGは、Linux上で開発されたオーディオとビデオの録画、変換、配信を行うためのソフトウェアです。(Windowsを含むほとんどのOS上でコンパイル可能) FFMPEGには、libavcodecと呼ばれるオーディオ/ビデオコーデックが含まれていて、Mplayer、xine、LIVES、avifileなど、Linuxを中心にさまざまなソフトウェアで利用されています。
FFMPEGは、以下のコンポーネントから構成されています。
ビデオファイルフォーマット変換用のコマンドラインツール。ビデオキャプチャ カードからのリアルタイムでの動画取り込みとエンコーディングもサポート。
HTTPによるライブ配信用のストリーミングサーバ。(RTSPでのライブ配信も開発中)
ffmpegで使われているすべての オーディオ/ビデオコーデックが含まれたライ ブラリ。より高い性能や再利用性を保証するため、大半は、スクラッチから開 発されている。
オーディオ/ビデオファイルフォーマットの解析/生成機能を含むライブラリ。
別資料参照
音声のエンコーディングにMP3を使いたい場合は lameを、 vorbisを使いたい ときは libvorbisをインストールします。なお、lameをビルドするにはnasmが 必要です。
ffmpeg.sourceforge.net から、最新のtar玉を入手しmake & make install
※http://shino.pos.to/linux/ffmpeg.html に、ffmpeg-0.4.yyyymmdd.nosrc.rpm あり。
ffserver.conf というffserverの環境設定ファイルのサンプルが docディレク
トリの下にありますので、これを参考に、環境設定ファイルを作成します。
ビデオキャプチャカードやビデオカメラ用ドライバのインストールについては 割愛します。
ffserverとffmpegを起動します。
$ ffserver -f ffserver.conf $ ffmpeg -vd /dev/video0 http://localhost:8090/feed1.ffm
mplayer や Windows Media Playerなどを使って、ストリーミングサーバのURLを指定し、ビデオを再生します。
http://murashima.net:8090/test.asf
murashima.netでは、以下の仕様でストリーミングデータを配信していますが、
個人で利用する範囲では、クオリティ上の問題はありません(同時配信*3クラ
イアント程度。それ以上は未確認)。
ビデオとオーディオを同一ストリームで配信すると(これが普通ですが)、
Sound: Recording overrun が多発し、オーディオが途切れてしまう現象が発
生。サーバスペックの問題なのか?? 別ストリームで配信するとうまくいく
ので、現時点では分けて配信しています。
森山@崇城大さんの見解によれば、ビデオとオーディオの同期処理にCPUパワーを
取られてしまうからではないか、とのこと。当サイトでは完全な同期はとれて
いないのかもしれませんが、個人的には全然気にならないので問題なしです。
model name : AMD-K6(tm) 3D processor cpu MHz : 350.812 MHz cache size : 64 KB MemTotal : 126596 kB kernel : Linux version 2.4.20-0vl29.1 Video card : BT878(Lifeview FlyVideo 98 LR) Video camera : SONY HANDYCAM Sound card : ESS ES1869 Plug and Play AudioDrive
Format asf VideoFrameRate 15 fps VideoSize 352x240 VideoBitRate 256 kbps VideoGopSize 30 StartSendOnKey
Format mp2 AudioCodec mp3 AudioBitRate 32 kbps AudioChannels 1 AudioSampleRate 22050 kHz
This document was generated on 2 August 2003 using texi2html 1.56k.