不用交叉编译,make ffmpeg一般没有多少问题。但如果是用交叉编译,配置ffmpeg就显得比较重要,如果配置不正确,编译就无法通过。
一般情况下 ./configure --help
配置选项比较多,这也是ffmpeg比较灵活的地方。编译总是出现如下问题:
配置选项一般如下:
[root@tanyc-linux ffmpeg-checkout-2009-08-10]# ./configure --enable-cross-compile --cc=arm-linux-gcc --enable-gpl --arch=armv4l --enable-shared --target-os=linux --disable-mmx --disable-network --enable-armv6t2 --enable-armvfp --disable-yasm
2.LIB库的使用:
一般编译完成后,使用编译好的lib库编译连接另一个程序时,需要设置lib 的搜索路径。一般可以把库拷贝到系统的lib路径下(usr/lib 或lib),或者设置自己的lib路径,可通过LD_LIBRARY_PATH设置:如export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/xxx/lib 。也可以将库的路径/home/xxx/lib 添加到/etc/ld.so.conf文件中,再通过命令ldconfig 更新到/etc/ld.so.cache中.
3.命令
./configure --disable-yasm --enable-cross-compile --cc=arm-hisiv200-linux-gnueabi-gcc --enable-gpl --enable-shared --arch=arm --enable-shared --target-os=linux --prefix=/usr/local/ffmpeg
4.使用
arm-hisiv200-linux-gnueabi-gcc -Wall -g -I/usr/local/ffmpeg/include -o segmenter m3u8-segmenter.c -L/usr/local/ffmpeg/lib -Wl,-rpath=/usr/local/ffmpeg/lib/ -lavformat -lavcodec -lavutil -lm
5.使用segmenter切片
./segmenter -i test.ts -d 10 -p onedemo -m test.m3u8 -u ./