ffmpegのビルド。その2 [開発系とか]
前回の記事の更新版だ。最新ffmpegに対応するよ。
目標
・全てのintel Mac+Leopard/Snow Leopardの環境で動くものをコンパイルする
Target SDK=MacOSX10.5.sdk、32bitバイナリ(i386)
CoreSolo/CoreDo/Core2Duo/etc互換;Target CPUはPentium-m(SSE2まで)
・最新のx264、xvid、lame、faac、faad2を取り込む
・最新のffmpegバイナリをスタティックビルド
Xcode 3.1もバージョンが進むにつれて、gcc -isysroot+MacOSX10.4u.sdkの互換性がどんどん低下していっている感じで、最近はまともにコンパイルするのも難しくなってきた。もうMacOS X 10.6も出たことだし、10.4向けの環境は置いておいて、10.5をターゲットにしたバージョンを作ることにするよ。
主な変更点は、SDKの変更に伴い、-isysrootのハックを止めて-isystemに置き換えた点、gccを4.2に変更した点、同じくffmpeg周りのパッチを省いたことだ。
Snow Leopardでのコンパイルテストはしていない。CC=gcc-4.2の箇所をCC="gcc-4.2 -m32"などと書き換えればいけるんじゃないかな。
//
事前作業環境の整備
・作業環境はintel Mac + MacOS X 10.5.8
・Xcode 3.1.4 をインストール
・MacPort 1.8.0をインストール
$ sudo port -d sync
$ sudo port upgrade installed
・~/.profileを確認;PATHに/opt/local/bin/が追加されていることを確認
$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/opt/local/sbin
・git環境の整備(MacPort)
$ sudo port install git-core
$ sudo -K
$ which git
/opt/local/bin/git
・yasm環境の整備(MacPort)
$ sudo port install yasm
$ sudo -K
$ which yasm
/opt/local/bin/yasm
//
# ソースアーカイブの入手
$ mkdir -p ~/Desktop/work
$ cd ~/Desktop/work
$ svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ; mv trunk ffmpeg
$ git clone git://git.videolan.org/x264.git x264
$ curl -O http://downloads.xvid.org/downloads/xvid_latest.tar.gz
$ tar zxf xvid_latest.tar.gz
$ mv xvid_*/xvidcore xvid ; rm -rf xvid_*
# http://sourceforge.net/project/showfiles.php?group_id=704 から faac-1.28.tar.gz を入手
$ tar zxf faac-1.28.tar.gz
$ rm faac-*.tar.gz ; mv faac-* faac
# http://sourceforge.net/project/showfiles.php?group_id=704 から faad2-2.7.tar.gz を入手
$ tar zxf faad2-2.7.tar.gz
$ rm faad2-*.tar.gz ; mv faad2-* faad2
# http://sourceforge.net/project/showfiles.php?group_id=290 から lame-398-2.tar.gz を入手
$ tar zxf lame-398-2.tar.gz
$ rm lame-*.tar.gz ; mv lame-* lame
$ ls -F
faac/ faad2/ ffmpeg/ lame/ x264/ xvid/
//
$ cd ~/Desktop/work
$ cd faac
$ THESDK="/Developer/SDKs/MacOSX10.5.sdk"; THEARC="i386"; THECPU="pentium-m"; THEOPT="-Os -ffast-math -falign-loops=16 -fstrict-aliasing "
$ THEBUILD="powerpc-apple-darwin9.8.0" ; THEHOST="i386-apple-darwin9.8.0" # Enforce Xcompile
$ export CC=gcc-4.2
$ export CXX=gcc-4.2
$ export LDFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 -Wl,-syslibroot,$THESDK "
$ export CFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 $THEOPT -mtune=$THECPU"
$ export CXXFLAGS="$CFLAGS"
$ sh bootstrap
$ sh configure --build=$THEBUILD --host=$THEHOST > build.log 2>&1 ; echo $?
$ make clean
$ make -j3 >> build.log 2>&1 ; echo $?
$ cp libfaac/.libs/libfaac.a ./
//
$ cd ~/Desktop/work
$ cd faad2
$ THESDK="/Developer/SDKs/MacOSX10.5.sdk"; THEARC="i386"; THECPU="pentium-m"; THEOPT="-Os -ffast-math -falign-loops=16 -fstrict-aliasing "
$ THEBUILD="powerpc-apple-darwin9.8.0" ; THEHOST="i386-apple-darwin9.8.0" # Enforce Xcompile
$ export CC=gcc-4.2
$ export CXX=gcc-4.2
$ export LDFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 -Wl,-syslibroot,$THESDK "
$ export CFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 $THEOPT -mtune=$THECPU"
$ export CXXFLAGS="$CFLAGS"
$ sh bootstrap
$ sh configure --build=$THEBUILD --host=$THEHOST > build.log 2>&1 ; echo $?
$ make clean
$ make -j3 >> build.log 2>&1 ; echo $?
$ cp libfaad/.libs/libfaad.a ./
//
$ cd ~/Desktop/work
$ cd lame
$ THESDK="/Developer/SDKs/MacOSX10.5.sdk"; THEARC="i386"; THECPU="pentium-m"; THEOPT="-Os -ffast-math -falign-loops=16 -fstrict-aliasing "
$ THEBUILD="powerpc-apple-darwin9.8.0" ; THEHOST="i386-apple-darwin9.8.0" # Enforce Xcompile
$ export CC=gcc-4.2
$ export CXX=gcc-4.2
$ export LDFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 -Wl,-syslibroot,$THESDK "
$ export CFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 $THEOPT -mtune=$THECPU"
$ export CXXFLAGS="$CFLAGS"
$ sh configure --build=$THEBUILD --host=$THEHOST > build.log 2>&1 ; echo $?
$ make clean
$ make -j3 >> build.log 2>&1 ; echo $?
$ cp libmp3lame/.libs/libmp3lame.a ./
//
$ cd ~/Desktop/work
$ cd xvid/build/generic
$ THESDK="/Developer/SDKs/MacOSX10.5.sdk"; THEARC="i386"; THECPU="pentium-m"; THEOPT="-Os -ffast-math -falign-loops=16 -fstrict-aliasing "
$ THEBUILD="powerpc-apple-darwin9.8.0" ; THEHOST="i386-apple-darwin9.8.0" # Enforce Xcompile
$ export CC=gcc-4.2
$ export CXX=gcc-4.2
$ export LDFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 -Wl,-syslibroot,$THESDK "
$ export CFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 $THEOPT -mtune=$THECPU"
$ export CXXFLAGS="$CFLAGS"
$ sh bootstrap.sh
$ sh configure --enable-macosx_module --build=$THEBUILD --host=$THEHOST > build.log 2>&1 ; echo $?
$ make clean
$ make -j3 libxvidcore.a >> build.log 2>&1 ; echo $?
$ cp "=build"/libxvidcore.a ../../ ; cd ../../
//
# x264は、CPUを動的に判定するのでCPU指定不要。下手な最適化オプションは逆効果
# 別アーキテクチャの場合(intelでPPCビルド、またはその逆をするときは)config.guessを書き換える必要あり
$ cd ~/Desktop/work
$ cd x264
$ THESDK="/Developer/SDKs/MacOSX10.5.sdk"; THEARC="i386"; THECPU=""; THEOPT=""
$ export CC=gcc-4.2
$ export CXX=gcc-4.2
$ export LDFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 -Wl,-syslibroot,$THESDK "
$ export CFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 " # not needed: $THEOPT $THECPU
$ export CXXFLAGS="$CFLAGS"
$ sh configure > build.log 2>&1 ; echo $?
$ make clean
$ make -j3 libx264.a >> build.log 2>&1 ; echo $?
//
# この手順では、make installは行わない方法である点に注意
# 各パスの下に、lib*.a が出来ている状態になっているのを確認。
$ cd ~/Desktop/work ; ls -F
faac/ faad2/ ffmpeg/ lame/ x264/ xvid/
$ ls -l */*.a
-rw-r--r-- 1 hoge staff 77092 10 14 10:17 faac/libfaac.a
-rw-r--r-- 1 hoge staff 296924 10 14 10:19 faad2/libfaad.a
-rw-r--r-- 1 hoge staff 322852 10 14 10:20 lame/libmp3lame.a
-rw-r--r-- 1 hoge staff 829664 10 14 10:22 x264/libx264.a
-rw-r--r-- 1 hoge staff 798300 10 14 10:21 xvid/libxvidcore.a
//
$ cd ~/Desktop/work
$ cd ffmpeg
# ffmpegでmake installしていないライブラリを取り込むので、lameのコードを変更
$ vi ./configure ; ### Change from "lame/lame.h" to "lame.h"
$ vi ./libavcodec/libmp3lame.c ; ### Change from "lame/lame.h" to "lame.h"
$ THESDK="/Developer/SDKs/MacOSX10.5.sdk"; THEARC="i386"; THECPU="pentium-m"; THEOPT="-ffast-math -falign-loops=16 -fstrict-aliasing "
$ export CC=gcc-4.2
$ export LDFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 -Wl,-syslibroot,$THESDK -L../x264 -L../xvid -L../lame -L../faac -L../faad2 "
$ export CFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 $THEOPT -I../x264 -I../xvid/src -I../lame/include -I../faac/include -I../faad2/include "
$ export CPPFLAGS="$CFLAGS"
$ sh configure --enable-cross-compile --arch=$THEARC --cpu=$THECPU --cc=$CC --enable-small --enable-pthreads --enable-gpl --enable-postproc --enable-nonfree --disable-ffserver --disable-ffplay --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libxvid --enable-libx264 --disable-decoder=aac > build.log 2>&1 ; echo $?
$ make clean
$ make -j3 >> build.log 2>&1 ; echo $?
$ ls -l ffmpeg
-rwxr-xr-x 1 hoge staff 6300684 10 14 10:27 ffmpeg
$ sudo cp -p ffmpeg /opt/local/bin/
$ sudo chown root:admin /opt/local/bin/ffmpeg
$ sudo -K
$ which ffmpeg
/opt/local/bin/ffmpeg
$ ffmpeg
FFmpeg version SVN-r20230, Copyright (c) 2000-2009 Fabrice Bellard, et al.
built on Oct 14 2009 10:27:43 with gcc 4.2.1 (Apple Inc. build 5577)
configuration: --enable-cross-compile --arch=i386 --cpu=pentium-m --cc=gcc-4.2 --enable-small --enable-pthreads --enable-gpl --enable-postproc --enable-nonfree --disable-ffserver --disable-ffplay --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libxvid --enable-libx264 --disable-decoder=aac
libavutil 50. 3. 0 / 50. 3. 0
libavcodec 52.37. 0 / 52.37. 0
libavformat 52.39. 1 / 52.39. 1
libavdevice 52. 2. 0 / 52. 2. 0
libswscale 0. 7. 1 / 0. 7. 1
libpostproc 51. 2. 0 / 51. 2. 0
At least one output file must be specified
なお、ffmpegのオプション「--disable-decoder=aac」は、「AAC - SBR not implemented」のエラーに対処するためのものだ。場合によっては不具合があるかもしれない。
//
ffmpegでlibx264を使う際に、プリセット(-vpre)を使うことが出来るようになった。ffmpegの下にある、ffpresetというフォルダを、${HOME}/.ffmpegとしてコピーすればいい。
$ cd ~/Desktop/work/
$ cd ffmpeg
$ cp -pr ffpresets ~/.ffmpeg
$ ls ~/.ffmpeg/
libx264-baseline.ffpreset libx264-lossless_medium.ffpreset
libx264-default.ffpreset libx264-lossless_slow.ffpreset
libx264-fastfirstpass.ffpreset libx264-lossless_slower.ffpreset
libx264-hq.ffpreset libx264-lossless_ultrafast.ffpreset
libx264-ipod320.ffpreset libx264-main.ffpreset
libx264-ipod640.ffpreset libx264-max.ffpreset
libx264-lossless_fast.ffpreset libx264-normal.ffpreset
libx264-lossless_max.ffpreset libx264-slowfirstpass.ffpreset
$ ffmpeg -y -i ~/Desktop/in.mp4 -vcodec libx264 -crf 22 -vpre hq -threads 0 -acodec libfaac -ab 128k ~/Desktop/out.mp4
:
//
サンプルバイナリ:ffmpeg.zip
目標
・全てのintel Mac+Leopard/Snow Leopardの環境で動くものをコンパイルする
Target SDK=MacOSX10.5.sdk、32bitバイナリ(i386)
CoreSolo/CoreDo/Core2Duo/etc互換;Target CPUはPentium-m(SSE2まで)
・最新のx264、xvid、lame、faac、faad2を取り込む
・最新のffmpegバイナリをスタティックビルド
Xcode 3.1もバージョンが進むにつれて、gcc -isysroot+MacOSX10.4u.sdkの互換性がどんどん低下していっている感じで、最近はまともにコンパイルするのも難しくなってきた。もうMacOS X 10.6も出たことだし、10.4向けの環境は置いておいて、10.5をターゲットにしたバージョンを作ることにするよ。
主な変更点は、SDKの変更に伴い、-isysrootのハックを止めて-isystemに置き換えた点、gccを4.2に変更した点、同じくffmpeg周りのパッチを省いたことだ。
Snow Leopardでのコンパイルテストはしていない。CC=gcc-4.2の箇所をCC="gcc-4.2 -m32"などと書き換えればいけるんじゃないかな。
//
事前作業環境の整備
・作業環境はintel Mac + MacOS X 10.5.8
・Xcode 3.1.4 をインストール
・MacPort 1.8.0をインストール
$ sudo port -d sync
$ sudo port upgrade installed
・~/.profileを確認;PATHに/opt/local/bin/が追加されていることを確認
$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/opt/local/sbin
・git環境の整備(MacPort)
$ sudo port install git-core
$ sudo -K
$ which git
/opt/local/bin/git
・yasm環境の整備(MacPort)
$ sudo port install yasm
$ sudo -K
$ which yasm
/opt/local/bin/yasm
//
# ソースアーカイブの入手
$ mkdir -p ~/Desktop/work
$ cd ~/Desktop/work
$ svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ; mv trunk ffmpeg
$ git clone git://git.videolan.org/x264.git x264
$ curl -O http://downloads.xvid.org/downloads/xvid_latest.tar.gz
$ tar zxf xvid_latest.tar.gz
$ mv xvid_*/xvidcore xvid ; rm -rf xvid_*
# http://sourceforge.net/project/showfiles.php?group_id=704 から faac-1.28.tar.gz を入手
$ tar zxf faac-1.28.tar.gz
$ rm faac-*.tar.gz ; mv faac-* faac
# http://sourceforge.net/project/showfiles.php?group_id=704 から faad2-2.7.tar.gz を入手
$ tar zxf faad2-2.7.tar.gz
$ rm faad2-*.tar.gz ; mv faad2-* faad2
# http://sourceforge.net/project/showfiles.php?group_id=290 から lame-398-2.tar.gz を入手
$ tar zxf lame-398-2.tar.gz
$ rm lame-*.tar.gz ; mv lame-* lame
$ ls -F
faac/ faad2/ ffmpeg/ lame/ x264/ xvid/
//
$ cd ~/Desktop/work
$ cd faac
$ THESDK="/Developer/SDKs/MacOSX10.5.sdk"; THEARC="i386"; THECPU="pentium-m"; THEOPT="-Os -ffast-math -falign-loops=16 -fstrict-aliasing "
$ THEBUILD="powerpc-apple-darwin9.8.0" ; THEHOST="i386-apple-darwin9.8.0" # Enforce Xcompile
$ export CC=gcc-4.2
$ export CXX=gcc-4.2
$ export LDFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 -Wl,-syslibroot,$THESDK "
$ export CFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 $THEOPT -mtune=$THECPU"
$ export CXXFLAGS="$CFLAGS"
$ sh bootstrap
$ sh configure --build=$THEBUILD --host=$THEHOST > build.log 2>&1 ; echo $?
$ make clean
$ make -j3 >> build.log 2>&1 ; echo $?
$ cp libfaac/.libs/libfaac.a ./
//
$ cd ~/Desktop/work
$ cd faad2
$ THESDK="/Developer/SDKs/MacOSX10.5.sdk"; THEARC="i386"; THECPU="pentium-m"; THEOPT="-Os -ffast-math -falign-loops=16 -fstrict-aliasing "
$ THEBUILD="powerpc-apple-darwin9.8.0" ; THEHOST="i386-apple-darwin9.8.0" # Enforce Xcompile
$ export CC=gcc-4.2
$ export CXX=gcc-4.2
$ export LDFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 -Wl,-syslibroot,$THESDK "
$ export CFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 $THEOPT -mtune=$THECPU"
$ export CXXFLAGS="$CFLAGS"
$ sh bootstrap
$ sh configure --build=$THEBUILD --host=$THEHOST > build.log 2>&1 ; echo $?
$ make clean
$ make -j3 >> build.log 2>&1 ; echo $?
$ cp libfaad/.libs/libfaad.a ./
//
$ cd ~/Desktop/work
$ cd lame
$ THESDK="/Developer/SDKs/MacOSX10.5.sdk"; THEARC="i386"; THECPU="pentium-m"; THEOPT="-Os -ffast-math -falign-loops=16 -fstrict-aliasing "
$ THEBUILD="powerpc-apple-darwin9.8.0" ; THEHOST="i386-apple-darwin9.8.0" # Enforce Xcompile
$ export CC=gcc-4.2
$ export CXX=gcc-4.2
$ export LDFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 -Wl,-syslibroot,$THESDK "
$ export CFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 $THEOPT -mtune=$THECPU"
$ export CXXFLAGS="$CFLAGS"
$ sh configure --build=$THEBUILD --host=$THEHOST > build.log 2>&1 ; echo $?
$ make clean
$ make -j3 >> build.log 2>&1 ; echo $?
$ cp libmp3lame/.libs/libmp3lame.a ./
//
$ cd ~/Desktop/work
$ cd xvid/build/generic
$ THESDK="/Developer/SDKs/MacOSX10.5.sdk"; THEARC="i386"; THECPU="pentium-m"; THEOPT="-Os -ffast-math -falign-loops=16 -fstrict-aliasing "
$ THEBUILD="powerpc-apple-darwin9.8.0" ; THEHOST="i386-apple-darwin9.8.0" # Enforce Xcompile
$ export CC=gcc-4.2
$ export CXX=gcc-4.2
$ export LDFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 -Wl,-syslibroot,$THESDK "
$ export CFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 $THEOPT -mtune=$THECPU"
$ export CXXFLAGS="$CFLAGS"
$ sh bootstrap.sh
$ sh configure --enable-macosx_module --build=$THEBUILD --host=$THEHOST > build.log 2>&1 ; echo $?
$ make clean
$ make -j3 libxvidcore.a >> build.log 2>&1 ; echo $?
$ cp "=build"/libxvidcore.a ../../ ; cd ../../
//
# x264は、CPUを動的に判定するのでCPU指定不要。下手な最適化オプションは逆効果
# 別アーキテクチャの場合(intelでPPCビルド、またはその逆をするときは)config.guessを書き換える必要あり
$ cd ~/Desktop/work
$ cd x264
$ THESDK="/Developer/SDKs/MacOSX10.5.sdk"; THEARC="i386"; THECPU=""; THEOPT=""
$ export CC=gcc-4.2
$ export CXX=gcc-4.2
$ export LDFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 -Wl,-syslibroot,$THESDK "
$ export CFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 " # not needed: $THEOPT $THECPU
$ export CXXFLAGS="$CFLAGS"
$ sh configure > build.log 2>&1 ; echo $?
$ make clean
$ make -j3 libx264.a >> build.log 2>&1 ; echo $?
//
# この手順では、make installは行わない方法である点に注意
# 各パスの下に、lib*.a が出来ている状態になっているのを確認。
$ cd ~/Desktop/work ; ls -F
faac/ faad2/ ffmpeg/ lame/ x264/ xvid/
$ ls -l */*.a
-rw-r--r-- 1 hoge staff 77092 10 14 10:17 faac/libfaac.a
-rw-r--r-- 1 hoge staff 296924 10 14 10:19 faad2/libfaad.a
-rw-r--r-- 1 hoge staff 322852 10 14 10:20 lame/libmp3lame.a
-rw-r--r-- 1 hoge staff 829664 10 14 10:22 x264/libx264.a
-rw-r--r-- 1 hoge staff 798300 10 14 10:21 xvid/libxvidcore.a
//
$ cd ~/Desktop/work
$ cd ffmpeg
# ffmpegでmake installしていないライブラリを取り込むので、lameのコードを変更
$ vi ./configure ; ### Change from "lame/lame.h" to "lame.h"
$ vi ./libavcodec/libmp3lame.c ; ### Change from "lame/lame.h" to "lame.h"
$ THESDK="/Developer/SDKs/MacOSX10.5.sdk"; THEARC="i386"; THECPU="pentium-m"; THEOPT="-ffast-math -falign-loops=16 -fstrict-aliasing "
$ export CC=gcc-4.2
$ export LDFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 -Wl,-syslibroot,$THESDK -L../x264 -L../xvid -L../lame -L../faac -L../faad2 "
$ export CFLAGS="-arch $THEARC -isystem $THESDK -mmacosx-version-min=10.5 $THEOPT -I../x264 -I../xvid/src -I../lame/include -I../faac/include -I../faad2/include "
$ export CPPFLAGS="$CFLAGS"
$ sh configure --enable-cross-compile --arch=$THEARC --cpu=$THECPU --cc=$CC --enable-small --enable-pthreads --enable-gpl --enable-postproc --enable-nonfree --disable-ffserver --disable-ffplay --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libxvid --enable-libx264 --disable-decoder=aac > build.log 2>&1 ; echo $?
$ make clean
$ make -j3 >> build.log 2>&1 ; echo $?
$ ls -l ffmpeg
-rwxr-xr-x 1 hoge staff 6300684 10 14 10:27 ffmpeg
$ sudo cp -p ffmpeg /opt/local/bin/
$ sudo chown root:admin /opt/local/bin/ffmpeg
$ sudo -K
$ which ffmpeg
/opt/local/bin/ffmpeg
$ ffmpeg
FFmpeg version SVN-r20230, Copyright (c) 2000-2009 Fabrice Bellard, et al.
built on Oct 14 2009 10:27:43 with gcc 4.2.1 (Apple Inc. build 5577)
configuration: --enable-cross-compile --arch=i386 --cpu=pentium-m --cc=gcc-4.2 --enable-small --enable-pthreads --enable-gpl --enable-postproc --enable-nonfree --disable-ffserver --disable-ffplay --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libxvid --enable-libx264 --disable-decoder=aac
libavutil 50. 3. 0 / 50. 3. 0
libavcodec 52.37. 0 / 52.37. 0
libavformat 52.39. 1 / 52.39. 1
libavdevice 52. 2. 0 / 52. 2. 0
libswscale 0. 7. 1 / 0. 7. 1
libpostproc 51. 2. 0 / 51. 2. 0
At least one output file must be specified
なお、ffmpegのオプション「--disable-decoder=aac」は、「AAC - SBR not implemented」のエラーに対処するためのものだ。場合によっては不具合があるかもしれない。
//
ffmpegでlibx264を使う際に、プリセット(-vpre)を使うことが出来るようになった。ffmpegの下にある、ffpresetというフォルダを、${HOME}/.ffmpegとしてコピーすればいい。
$ cd ~/Desktop/work/
$ cd ffmpeg
$ cp -pr ffpresets ~/.ffmpeg
$ ls ~/.ffmpeg/
libx264-baseline.ffpreset libx264-lossless_medium.ffpreset
libx264-default.ffpreset libx264-lossless_slow.ffpreset
libx264-fastfirstpass.ffpreset libx264-lossless_slower.ffpreset
libx264-hq.ffpreset libx264-lossless_ultrafast.ffpreset
libx264-ipod320.ffpreset libx264-main.ffpreset
libx264-ipod640.ffpreset libx264-max.ffpreset
libx264-lossless_fast.ffpreset libx264-normal.ffpreset
libx264-lossless_max.ffpreset libx264-slowfirstpass.ffpreset
$ ffmpeg -y -i ~/Desktop/in.mp4 -vcodec libx264 -crf 22 -vpre hq -threads 0 -acodec libfaac -ab 128k ~/Desktop/out.mp4
:
//
サンプルバイナリ:ffmpeg.zip
トラックバック 1
ffmpegのビルド。その3(MyCometG3 2010-08-09 21:57)
前回の記事の更新版。ひさびさにffmpeg binary buildをしてみるテスト。 目標 ・全てのintel Mac+Leopard/Snow Leopardの環境で動くものをコンパイルする Target SDK=MacOSX10.5.sdk、32bitバイナリ(i386) C…[続く]
この記事のトラックバックURL:
※言及リンクのないトラックバックは受信されません。





コメント 0