ホーム > 日記 > CentOS5.3で3gp変換できるffmpegを導入するまで

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

カテゴリー: 日記 タグ:
  1. コメントはまだありません。
  1. トラックバックはまだありません。