YouTubeビデオのDivXおよびXviD形式への変換法

昨今話題のYouTubeのビデオクリップだが、かく言う私もこのサイトの中毒患者の1人だ。しかしながら、YouTubeのビデオ再生方式については少々注文を付けたい点がある。私の希望としては、お好みのビデオをスタンドアローン型のDVD/DivXプレーヤで再生したいのだ。またサイトにあるFlash形式のビデオをMPlayerで再生する場合も、早送りや巻き戻しができないという問題がある。よってここに私は、YouTubeのビデオクリップをDivXもしくはXviDフォーマットに変換する作業に着手することを決意した。以下は、具体的な操作手順である。

変換作業をするにあたっては、事前に処理対象のビデオを手元のコンピュータにダウンロードしておく必要がある。こうした作業に最適なツールはYoutube-dlであるが、その詳細についてはJoe Barr氏の解説記事を参照して頂きたい。なおFirefoxユーザであれば、VideoDownloaderという機能拡張も利用できる。MPlayerについては、Flash VideoをサポートしたMencoderが付属したバージョンが必要だが、.flv形式のビデオを再生できるMPlayerであれば問題ないだろう。

準備ができたら、下記のコードをflv2avi.shというファイル名で保存する。chmod 755 flv2avi.shというコマンドでこのファイルを実行可能に設定してから、各自のPATHにおける適当なディレクトリにコピーする(例えば/usr/local/bin)。

#!/bin/sh

if [ -z "$1" ]; then
  echo "Usage: $0 {-divx|-xvid} list_of_flv_files"
  exit 1
fi

# video encoding bit rate
V_BITRATE=1000

while [ "$1" ]; do
  case "$1" in
    -divx)
      MENC_OPTS="-ovc lavc -lavcopts \
        vcodec=mpeg4:vbitrate=$V_BITRATE:mbd=2:v4mv:autoaspect"
      ;;
    -xvid)
      MENC_OPTS="-ovc xvid -xvidencopts bitrate=$V_BITRATE:autoaspect"
      ;;
    *)
      if file "$1" | grep -q "Macromedia Flash Video"; then
        mencoder "$1" $MENC_OPTS -vf pp=lb -oac mp3lame \
          -lameopts fast:preset=standard -o \
          "`basename $1 .flv`.avi"
      else
        echo "$1 is not Flash Video. Skipping"
      fi
      ;;
  esac
  shift
done

このスクリプトは、-divxあるいは-xvidのオプション指定に応じて、.flvファイルをDivXないしはXviD形式に変換するためのもので、変換後のファイル名はオリジナルのファイル名に拡張子.aviを付けたものとなる。実行用のコマンドはflv2avi.sh -divx first_vid.flv second_vid.flv etc.flvという構文で指定すればよい。なお、mencoderコマンドで使用可能なオプションについては、manページに詳しい解説がされている。

また、お気に入りのYouTubeビデオを集めてビデオDVDを作成することも可能であり、そのための操作手順については以前の記事に解説してある。

NewsForge.com 原文