CentOS5.3で3gp変換できるffmpegを導入するまで
メモ
DAGリポジトリを利用できるようにする。
$ wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm $ sudo rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
ffmpeg関連をインストール。
依存関係あるものをもってきたいのでffmpegもインストールするが、後でソースからコンパイルするので削除する。
$ sudo yum install lame amrnb amrwb faac faad2 nasm x264 xvidcore ffmpeg zlib-devel libX11-devel libXt-devel amrnb-devel amrwb-devel faac-devel lame-devel xvidcore-devel gcc $ sudo yum remove ffmpeg
MP4Boxのインストール。
$ wget http://downloads.sourceforge.net/gpac/gpac-0.4.5.tar.gz $ tar xzf gpac-0.4.5.tar.gz $ cd gpac $ chmod u+x ./configure $ ./configure $ make lib $ make apps $ sudo make install $ cd ..
共有ライブラリに認識させる。
$ sudo vim /etc/ld.so.conf.d/local.conf
/usr/local/lib
$ sudo /sbin/ldconfig
ffmpegのインストール。
$ svn export svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg $ cd ffmpeg $ vim libmp3lame.patch
パッチの内容
Index: libavcodec/libmp3lame.c
===================================================================
--- libavcodec/libmp3lame.c (リビジョン 16716)
+++ libavcodec/libmp3lame.c (作業コピー)
@@ -34,6 +34,7 @@
int stereo;
uint8_t buffer[BUFFER_SIZE];
int buffer_index;
+ int buffer_flushed;
} Mp3AudioContext;
static av_cold int MP3lame_encode_init(AVCodecContext *avctx)
@@ -73,6 +74,8 @@
avctx->coded_frame= avcodec_alloc_frame();
avctx->coded_frame->key_frame= 1;
+ s->buffer_flushed = 0;
+
return 0;
err_close:
@@ -166,13 +169,15 @@
BUFFER_SIZE - s->buffer_index
);
}
- }else{
+ }else if(data == NULL && s->buffer_flushed == 0){
lame_result= lame_encode_flush(
s->gfp,
s->buffer + s->buffer_index,
BUFFER_SIZE - s->buffer_index
);
- }
+ s->buffer_flushed = 1;
+ }else
+ lame_result = 0;
if(lame_result < 0){
if(lame_result==-1) {
$ patch -p0 -d . > libmp3lame.patch $ ./configure --enable-gpl --enable-libmp3lame --enable-libamr-nb --enable-libamr-wb --enable-libxvid --disable-ffplay --disable-ffserver --enable-libfaac --enable-shared --enable-nonfree --prefix=/usr/local $ make $ sudo make install $ cd ..
環境変数にLD_LIBRARY_PATHを追加。
bashrcに追加しておく。
$ echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/lib" >> ~/.bashrc $ source ~/.bashrc
via:[ロ] CentOS5.2 + ffmpeg でflv から 3gp に変換する
via:[ロ] Linuxで携帯動画をストリーミング再生対応で作成する
via:[ロ] CentOS 5.2でDoCoMoの動画(3gpp)からflvファイルに変換する
via:同梱ffmpegのlameエンコードの不具合 – Craving Explorer Wiki
カテゴリー: 日記