Archive: 2012/10/14

ffmpeg

PT3@ubuntu 10.04によるgt110bサーバ強化策。

9月30日10月3日4日の作業で予約録画まで機能できるようになったので、録画したTSファイルをmp4にエンコードできるようコピペでできる録画サーバー on Linux with PT2 (エンコード編)等を参考に環境整備。

まずはyasmだが、ubuntu 10.04のaptリポジトリ経由で入手可能なyasmが0.8.0-1と古い事から、一旦削除してソースからinstallしなおし。

yano@GT110b:~$ sudo apt-get remove yasm
yano@GT110b:~$ cd ~/software/
yano@GT110b:~/software$ wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
yano@GT110b:~/software$ tar xvf yasm-1.2.0.tar.gz
yano@GT110b:~/software$ cd yasm-1.2.0
yano@GT110b:~/software/yasm-1.2.0$ ./configure
yano@GT110b:~/software/yasm-1.2.0$ make && sudo make install
続いてx264
yano@GT110b:~$ cd ~/software/tv/
yano@GT110b:~/software/tv$ git clone git://git.videolan.org/x264.git
yano@GT110b:~/software/tv$ cd ~/software/tv/x264
yano@GT110b:~/software/tv/x264$ ./configure --enable-shared
yano@GT110b:~/software/tv/x264$ make && make install
更にfaac
yano@GT110b:~$ cd ~/software/tv/
yano@GT110b:~/software/tv$ wget http://downloads.sourceforge.net/faac/faac-1.28.tar.gz
yano@GT110b:~/software/tv$ tar xvfz faac-1.28.tar.gz
yano@GT110b:~/software/tv$ cd ~/software/tv/faac-1.28
yano@GT110b:~/software/tv/faac-1.28$ ./configure --with-mp4v2
common/mp4v2/mpeg4ip.hのstrcasestrの宣言が標準のstring.hのそれと不整合してエラーになるので、全体を#ifndef _STRING_Hで括る次の
*** common/mp4v2/mpeg4ip.h.orig 2009-01-27 07:42:35.000000000 +0900
--- common/mp4v2/mpeg4ip.h 2012-10-13 16:29:30.593109085 +0900
***************
*** 120,125 ****
--- 120,126 ----
#endif
#include

+ #ifndef _STRING_H
#ifdef __cplusplus
extern "C" {
#endif
***************
*** 127,132 ****
--- 128,134 ----
#ifdef __cplusplus
}
#endif
+ #endif // _STRING_H

#define OPEN_RDWR O_RDWR
#define OPEN_CREAT O_CREAT
パッチを適用した後、make。
yano@GT110b:~/software/tv/faac-1.28$ make && make install
最後にffmpeg。ffmpegにバンドルされるlibfaacは、コードの一部がLGPLに沿っていないらしく、コンパイルオプションで-enable-libfaac -enable-nonfreeとしなくてはならないそうだ。
yano@GT110b:~$ cd ~/software/tv/
yano@GT110b:~/software/tv$ git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
yano@GT110b:~/software/tv$ cd ~/software/tv/ffmpeg/
yano@GT110b:~/software/tv/ffmpeg$ ./configure --enable-libx264 --enable-libfaac --enable-gpl --enable-nonfree
yano@GT110b:~/software/tv/ffmpeg$ make && make install
yano@GT110b:~/software/tv/ffmpeg$ echo "/usr/local/lib" > ./ffmpeg.conf;
yano@GT110b:~/software/tv/ffmpeg$ sudo mv ./ffmpeg.conf /etc/ld.so.conf.d/
yano@GT110b:~/software/tv/ffmpeg$ sudo updatedb