Shino's Bar

お家で使うLinuxtux


Mencoderを使う

14 Dec 2006 (初出)

MPlayerに付属のmencoderは、 ビデオファイルの変換や、テレビを直接録画することもできます。 mencoderの使い方は net_halさんのページ(零Home)mencoderでTV録画 が参考になります。

MPlayerの導入方法はこちらを見てください。

テレビ録画

例1

たとえば次のようなコマンドで、12チャンネルを10秒間、映像をmpeg4で、音声はmp3で録画できます。(mplayer のコマンドは実際には1行で)

$ aumix -l R -l 50% -i 10%
$ v4l-ctl setchannel 12
$ mencoder -tv driver=v4l2:norm=ntsc -ovc lavc -oac lavc -lavcopts vcodec=mpeg4:acodec=mp3 -o output.avi -endpos 10 tv://

最初に aumix コマンドで、ライン入力を録音入力にあてがい、ボリュームを50%に、また録音ボリュームを10%にセットしています。
次に v4l-ctl コマンドでチャンネルをセットします。
その後、mplayer コマンドで録画します。 driverの指定は Vine Linux 4.0など、V4L2ドライバの場合を示しています。Vine Linux 2.6など、V4Lドライバの場合は driver=v4l としてください。
normの指定は、キャプチャカードによっては ntscjp あるいは ntsc-jp や ntsc-j となる場合があります。 mencoder を実行したときの出力をよく見れば、どれが適当であるか分かります。

例2

もう少し細かい指定をしてみます。 次は、ビデオデバイスの指定、画面サイズ、フレームレート、映像と音声のビットレートなどを指定した例です。 ffmpegが作るmpeg4を再生できないプレーヤーがあるために、-ffourcc divx で、映像コーデックの標識を dvix に書き換えています。

$ mencoder -tv driver=v4l2:device=/dev/video0:norm=ntsc:width=320:height=240:fps=15 -ovc lavc -oac lavc -ffourcc divx -lavcopts vcodec=mpeg4:vbitrate=2000:acodec=mp3:abitrate=128 -o output.avi -endpos 10 tv://

例3

次は、映像の圧縮に xvidを、音声の圧縮には lameを使った例です。

$ mencoder -tv driver=v4l2:width=320:height=240:norm=ntsc -ovc xvid -xvidencopts bitrate=2000 -oac mp3lame -lameopts cbr:br=64 -o output.avi -endpos 10 tv://

ビデオファイルの変換

例4

mpeg2などのファイルを3-passでmpeg4(divx)に変換する例です。 1回目は vpass=1、2回目と3回目はどちらも vpass=3 と指定します。 4回でも5回でも同じように繰り返すことができるそうですが、効果のほどは分かりません。

$ QSCALE=7; BITRATE=3000; AUDIO_BITRATE=64
$ INFILE=movie.mpg; OUTFILE=movie_pack.avi; TMPFILE=movie_3pass.log
$ mencoder -ffourcc divx4 -ovc lavc -lavcopts turbo:vcodec=mpeg4:vqscale=$QSCALE:vpass=1 -oac copy -passlogfile $TMPFILE -o /dev/null $INFILE && \
mencoder -ffourcc divx4 -ovc lavc -lavcopts turbo:vcodec=mpeg4:vqscale=$QSCALE:vbitrate=$BITRATE:vpass=3 -oac copy -passlogfile $TMPFILE -o /dev/null $INFILE && \
mencoder -ffourcc divx4 -ovc lavc -lavcopts vcodec=mpeg4:vqscale=$QSCALE:vbitrate=$BITRATE:mbd=1:v4mv=yes:vpass=3 -oac lavc -lavcopts acodec=mp3:abitrate=$AUDIO_BITRATE -passlogfile $TMPFILE -o $OUTFILE $INFILE

例5

xvidコーデックとlameを使って2-passで変換する例です。

$ mencoder -ovc xvid -xvidencopts turbo=yes:pass=1 -oac copy -passlogfile $TMPFILE -o /dev/null $INFILE && \
$ mencoder -ovc xvid -xvidencopts bitrate=$BITRATE:pass=2 -oac mp3lame -lameopts cbr:br=$AUDIO_BITRATE:aq=0 -passlogfile $TMPFILE -o $OUTFILE $INFILE

関連記事

ご意見、ご質問、は Linux 掲示板

Shino's Bar goto [シノバー店内案内] [MPEG最前線!] [お家で使うLinux]