テレビ録画のためのソフトウェアFFmpegの導入法について記します。
ffmpegのデコードとエンコードのコード(libffmpegに相当する部分)は mplayerに含まれています。 また、xineには ffmpegのデコーダ部分が含まれています。 したがってエンコードや再生に mplayerや xineを使うならば、ffmpeg をとくに導入する必要はありません。
5 Jan 2007 (初出:31 Oct 2003) ffmpeg-0.4.9-0.20051126.nosrc.rpm をアップしました。ファイル名の訂正です。
音声のエンコーディングにMP3を使いたい場合は lameを、 vorbisを使いたいときは libvorbisを。それぞれ必須ではありません。 これらを入れなくてもFFMpeg自身でMpeg layer 2(MP2) などいくつかの音声圧縮コーデックを持っているので音声を含めての録音録画に支障ありません。 lameをビルドするにはnasmが必要です。 その他にSDLもffplayに必要です。
(必須ではないパッケージ)
$ rpmbuild --rebuild ffmpeg-0.4.*.nosrc.rpmとすると(rpmのバージョンによっては 'rpm --rebuild ...') ~/rpm/RPMS/i386/libffmpeg-0.4.*.i386.rpm, libffmpeg-devel-0.4.*.i386.rpm, ffmpeg-0.4.*.i386.rpm ffmpeg-server-0.4.*.i386.rpm の4つを作成します。rootになって次の順にインストールしてください。
# rpm -Uvh libffmpeg*.i386.rpm # rpm -Uvh ffmpeg-0.4.*.i386.rpmストリーミング・サーバー FFserver を試したい方は次も(最近のCVSスナップショットでは動かないようです。)
# rpm -Uvh ffmpeg-server-*.i386.rpm
当サイトからダウンロードできるRPMはいずれもテストパッケージです。動作報告を募集しています。
RPM / nosrc.rpmからの導入法は当サイトの説明ページ
FFmpegで録画したファイルをLinuxで再生するには ffmpegパッケージに含まれる ffplayでも可能ですが、 Xine あるいは MPlayer を導入しておきましょう。 WindowsではDivXコーデックをインストールすることでMPEG-4もMediaPlayerで再生できるようになります。 Mac OS-XならばVLC media playerをインストールすれば再生できます。
たとえば次のコマンドで12チャンネルをMPEG-1で30秒間録画します。
$ v4lctl setchannel 12 $ ffmpeg -t 30 -s 320x240 -r 29.97 -b 2500 -ab 224 -ac 2 -f mpeg movie.mpg
次のコマンドはVideoCD規格に適合したファイルを作ります。
$ v4lctl setchannel 12 $ ffmpeg -t 3600 -s 320x240 -r 29.97 -b 1150 -ab 224 -ac 2 -f vcd movie.mpg
FFmpegはMPEG-1以外のエンコードもできます。 MPEG-4を試してみると、画質もそこそこでした。
$ v4lctl setchannel 12 $ ffmpeg -t 30 -s 320x240 -r 29.97 -b 2000 -ab 224 -ac 2 -f avi -vcodec mpeg4 movie.avi
最近のCVSスナップショットでは、FFserverはうまく動いてくれません。ffmpeg-0.4.8-0.4でお試しください。 ffmpeg-serverパッケージに含まれています。インストールしたら ffserver, ffmpegの順にroot権限で起動します。ffmpeg setch の後は放送のあるチャンネルを指定します。
# /etc/rc.d/init.d/ffserver start # /etc/rc.d/init.d/ffmpeg setch 12
xineをインストールしていたら インターネット・ラジオを楽しむ xine 編で記述されているように /etc/mailcap にある video/*; xanim %s を video/*; xine %s に書き換えておきます。
ffserverとffmpeg両方を起動したらMozillaなどのブラウザで http://localhost:8090/index.html にアクセスしてください。FFserver statusをクリックするとFFserverの動作状況がモニターできます。
test.asf をクリックしたあと xineで開くとしばらくバッファしたあとストリーミング受信がはじまります。 またコマンドラインから次のコマンドを入力するとしばらくしてMPEG-1のストリーミング受信が始まります。
$ ffplay http://localhost:8090/test1.mpg &
同じネット内にあるWindowsからは WindowsMediaPlayerで 「URLを開く」で http://videohost:8090/test.asf または http://192.168.0.10:8090/test.asf などと指定します。 videohost, 192.168.0.10 はFFserverが動いているホスト名あるいはIPアドレスです。
FFmpegで録画した aviファイル(やmpgファイル)は AVIDEMUX などで切出しなど簡単な編集ができます。