ffmpeg + x264 编码H264(x86+arm)
一、x86-linux
1、 ?編譯x264
我用的是目前最新版:x264-snapshot-20101130-2245.tar.bz2
./configure --disable-asm
make
(把x264的靜態庫和頭文件拷貝到相應位置,即gcc查找庫和頭文件的目錄)
cp libx264.a /usr/lib
cp x264.h /usr/include
?
2、 ?編譯ffmpeg
我用的是目前最新版:ffmpeg-0.6.1.tar.gz
./configure --enable- static --disable- shared --enable-memalign-hack --enable-libx264 --enable
-gpl --enable-pthreads
(把x264作為ffmpeg的擴展編碼庫,因為ffmpeg本身是不能編h264的。)
(僅支持x264編碼的configure配置)
./configure --disable-everything --enable-bsf=h264_mp4toannexb ?--enable-muxer=h264 --disable-shared --enable-static --enable-libx264 --enable-gpl --enable-pthreads --enable-encoder=libx264
make
3、 ?命令行編碼
(將all.yuv編碼成all.h264,這上面有很多yuv視頻文件http://www.cipr.rpi.edu/resource/sequences/sif.html)
./ffmpeg -threads 4 -s 352x240 -i all.yuv -vcodec libx264 ?-flags +loop -cmp +chroma -deblockalpha 0 -deblockbeta 0 -crf 24 -bt 256k -refs 1 -coder 0 ?-me_range 16 -subq 5 -partitions +parti4x4+parti8x8+partp8x8 -g 250 -keyint_min 25 -level 30 -qmin 10 -qmax 51 -trellis 2 -sc_threshold 40 -i_qfactor 0.71 ?-ab 128k -ar 48000 -ac 2 all.h264
二、arm-linux
1、 交叉編譯x264
我用的是目前最新版:x264-snapshot-20101130-2245.tar.bz2
./configure --enable-pthread --enable-static --disable-shared --host=arm-linux --disable-asm
make CC=arm-linux-gcc AR=arm-linux-ar LD=arm-linux-gcc RANLIB=arm-linux-ranlib STRIP=arm-linux-strip
?
由于我電腦上的交叉編譯器是從以下目錄去查找頭文件和庫的,所以把x264.h和libx264.a拷貝到相應目錄:(我是通過在/usr/local/4.3.3下查找pthread.h和libpthread.a來獲取這個目錄的)
cp x264.h /usr/local/4.3.3/arm-none-linux-gnueabi/libc/usr/include/
cp libx264.a /usr/local/4.3.3/arm-none-linux-gnueabi/libc/armv4t/usr/lib/
?
2、 編譯ffmpeg
我用的是目前最新版:ffmpeg-0.6.1.tar.gz
./configure --enable-cross-compile --arch=arm --target-os=linux --enable-static --disable-shared --cc=arm-linux-gcc --enable-libx264 --enable-gpl --disable-network --disable-mpegaudio-hp ?--enable-pthreads --enable-small --disable-parsers --disable-debug
make CC=arm-linux-gcc AR=arm-linux-ar LD=arm-linux-gcc RANLIB=arm-linux-ranlib STRIP=arm-linux-strip
總結
以上是生活随笔為你收集整理的ffmpeg + x264 编码H264(x86+arm)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Video4Linux
- 下一篇: 用SDL创建一个窗口