convert FLV(Flash Video) format by ffmpeg

投稿日:

某所に投稿するために手持ちの動画をFLV(Flash Video)フォーマットに変更する方法も模索。
divxの動画をそのまま投稿すると、とんでもなく低品質のFLV動画に変換されてしまう。
Win用ソフトはいくつかあるものの、シェアウェアとして使うほどでもなし。

Linux上でffmpegを直接起動するのが一番簡単だった。

以下のscriptを、変換したい動画ファイルを引数に指定して起動する。

#!/bin/sh

for i in $*
do
NAME=$i
AVI_NAME=`echo $NAME | sed s/$/.flv/`
if [ -f $NAME.lock ]; then
echo double exec
else
touch $NAME.lock
ffmpeg -y -i $NAME -pass 1 -passlogfile log -an -vcodec flv -s 480x320 -b 384 $AVI_NAME
ffmpeg -y -i $NAME -pass 2 -passlogfile log -hq -vcodec flv -s 480x320 -b 384 -ab 64 -ar 44100 -ac 1 $AVI_NAME
mv $NAME mpg/$NAME
mv $AVI_NAME avi/$AVI_NAME
rm $NAME.lock
fi
done

結果、「ファイル名.flv」というファイルが作成できる。
ポイントは、「-ar 44100」。
2pass encodingで、動画のビットレートは384bps/sec。音声はモノラルで64bps/sec。
約8分の1.5Gのdvフォーマット動画が、25Mくらいなった。

ただ、画面サイズ(480x320)は微妙。もうちょっと変更したほうが、いいかも