一、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

Logo

更多推荐