なんとな~くしあわせ?の日記

ClojureとかAWSの設定とかをメモする技術ブログ

ffmpeg再コンパイル



新しく自宅サーバーができたということで、エンコードのためにffmpegを再びコンパイルしてみた。
参考にしたサイト
FFmpegのコンパイル (2011/04/12) w32threads お気に入りの動画を携帯で見よう
必要なものあれこれをインストール - Debian GNU/Linux 3.1 on PowerMac G4

これも参考になる?

最終的なオプション。
・librtmpはどうしてもffmpegが認識してくれなかったので外した。(※librtmpを認識させるには1,pkgconfigの位置をexport PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/share/pkgconfigみたいにして、PCに教えるという解決策があったようだ。でも自分のところは駄目だった。)

./configure --enable-memalign-hack --enable-gpl --enable-version3 --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libvo-aacenc --enable-libxvid --enable-libvpx --enable-libx264 --disable-ffserver --disable-ffplay --disable-ffprobe --enable-small --enable-nonfree --enable-libfaac --extra-ldflags=-static --extra-cflags="-mtune=amdfam10 -mfpmath=sse -msse -fno-strict-aliasing"

そして明らかコピペ気味なシェルスクリプト

#!/bin/sh

path=$1
echo "path: $path"

basename=${path##*/}
echo "basename: $basename"

filename=${basename%.*}
echo "filename: $filename"

/usr/local/share/ffmpeg/ffmpeg -y -i $path -f mp4 -vcodec libx264 -fpre /usr/local/share/ffmpeg/ffpresets/libx264-hq-ts.ffpreset -r 30000/1001 -aspect 16:9 -s 1280x720 -bufsize 20000k -maxrate 25000k -acodec libfaac -ac 2 -ar 48000 -ab 128k -threads 4 /strage2/video/${filename}.mp4

今回は1.93GBのファイルが23分で250MBになった。これが6コアとかになったら10分ほどでエンコード出来るんじゃなかろうか。

環境はCentos5.6 x86_64,CPU AthlonIIx4
まあたぶんlibx264、libfaac、CPU最適化さえあれば事足りるんじゃないかな〜