ffmpegの最新版をDebian GNU Linuxでも使えるようにする。
使い方
sudo bash ffmpeg_install.sh
あとは暫し待つだけ。
もし他のマシンにも持って行くなら、 .debファイルを持って行くと便利。
ffmpeg_install.sh
#!/usr/bin/env bash #uninstall sudo apt-get remove ffmpeg x264 libx264-dev -y ## install build-tools and library sudo apt-get update sudo apt-get install build-essential checkinstall git libfaac-dev libjack-jackd2-dev \ libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev \ libva-dev libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev texi2html yasm zlib1g-dev sudo apt-get install libtool automake autoconf checkinstall libtheora-dev libvorbis-dev libopencore-amrwb-dev libopencore-amrnb-dev # ################################# #yasm wget -O - http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz |tar zxvf - cd yasm-1.2.0 ./configure && make sudo checkinstall --pkgname=yasm --pkgversion="1:$(date +%Y%m%d%H%M)" --backup=no \ --deldoc=yes --fstrans=no --default cd ##################### #lame install cd wget -O - http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.4.tar.gz |tar zxvf - cd lame-3.99.4/ ./configure && make sudo checkinstall --pkgname=lame --pkgversion="1:$(date +%Y%m%d%H%M)-git" --backup=no \ --deldoc=yes --fstrans=no --default cd ############################### ## faac cd wget -O - http://downloads.sourceforge.net/faac/faac-1.28.tar.gz | tar xzvf - echo "diff -urN faac-1.28//common/mp4v2/mpeg4ip.h faac-1.28-dst//common/mp4v2/mpeg4ip.h --- faac-1.28//common/mp4v2/mpeg4ip.h 2009-01-27 07:42:35.000000000 +0900 +++ faac-1.28-dst//common/mp4v2/mpeg4ip.h 2012-03-18 21:35:47.000000000 +0900 @@ -120,13 +120,6 @@ #endif #include <sys/param.h> -#ifdef __cplusplus -extern \"C\" { -#endif -char *strcasestr(const char *haystack, const char *needle); -#ifdef __cplusplus -} -#endif #define OPEN_RDWR O_RDWR #define OPEN_CREAT O_CREAT " > faac.diff cd faac-1.28/ patch -p1 < ../faac.diff ./bootstrap && ./configure make sudo checkinstall --pkgname=faac --pkgversion="1:$(date +%Y%m%d%H%M)-git" --backup=no \ --deldoc=yes --fstrans=no --default cd #とりあえず。リンク #sudo ln -s /usr/local/lib/libfaac.so.0.0.0 /usr/lib/libfaac.so.0 #sudo ln -s /usr/local/lib/libmp3lame.so.0.0.0 /usr/lib/libmp3lame.so.0 sudo ldconfig ################################ #install x264 cd git clone git://git.videolan.org/x264 cd x264 ./configure --enable-static make sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \ awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \ --fstrans=no --default ########################## #install ffmpeg cd rm -rf ./ffmpeg git clone --depth 1 git://source.ffmpeg.org/ffmpeg cd ffmpeg ./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb \ --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 \ --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab make sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(date +%Y%m%d%H%M)-git" --backup=no \ --deldoc=yes --fstrans=no --default hash x264 ffmpeg ffplay ffprobe
その他の問題点
http://documentation.hwdmediashare.co.uk/wiki/Setting_up_your_server_for_hwdVideoShareCommon Problems
In some servers the compilation may fail with the following error
In file included from mp4common.h:29, from 3gp.cpp:28:mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const char*, const char*)’That is because the C function strcasestr declared in the libfaac sources is already declared in a system-wide library. To solve it: Edit the file /usr/local/src/faac-1.28/common/mp4v2/mpeg4ip.h and delete the following line (around line 126)
char *strcasestr(const char *haystack, const char *needle);
strcasestrの宣言をcommon/mp4v2/mpeg4ip.h から削除します。
何のエラーかというとは、すでに他で使われてるし、機能も同じだから、strcasestrの宣言は消してしまわないとダメだよって。