Shino's Bar

お家で使うLinuxtux


Linuxでテレビ録画

テレビ録画のためのソフトウェアFFmpegの導入法について記します。

ffmpegのデコードとエンコードのコード(libffmpegに相当する部分)は mplayerに含まれています。 また、xineには ffmpegのデコーダ部分が含まれています。 したがってエンコードや再生に mplayerや xineを使うならば、ffmpeg をとくに導入する必要はありません。

5 Jan 2007 (初出:31 Oct 2003) ffmpeg-0.4.9-0.20051126.nosrc.rpm をアップしました。ファイル名の訂正です。

FFmpegの導入

音声のエンコーディングにMP3を使いたい場合は lameを、 vorbisを使いたいときは libvorbisを。それぞれ必須ではありません。 これらを入れなくてもFFMpeg自身でMpeg layer 2(MP2) などいくつかの音声圧縮コーデックを持っているので音声を含めての録音録画に支障ありません。 lameをビルドするにはnasmが必要です。 その他にSDLもffplayに必要です。

(必須ではないパッケージ)

CVSスナップショットあるいはRelease版のどちらかを導入してください
  1. CVSスナップショット:download ffmpeg-0.4.9-0.20051126.nosrc.rpm ... VideoLANのページ からffmpeg-20051126.tar.bz2を入手。
  2. Release版:download ffmpeg-0.4.8-0.4.nosrc.rpm ... ソースffmpeg-0.4.8.tar.gzの所在が現在行方不明?
~/rpm/SOURCES に置いて、 上の ffmpeg-0.4.*.nosrc.rpm のあるディレクトリで
$ 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

FFserverを試してみる

最近の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 %svideo/*; 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 などで切出しなど簡単な編集ができます。


[ Linuxでテレビ録画に戻る ] [お家で使うLinux]