ffmpeg+libx264+facc交叉编译 实现264流录制avi文件
2017-06-08 12:27 tlnshuju 阅读(2136) 评论(0) 编辑 收藏 举报默认交叉编译器已经搭建好。。。
。
。
。
。
。。。。
。。。。
1 .下载libx264 ffmpeg facc
。。。。
2 .交叉编译libx264
2.1 解压x264-snapshot-20120718-2245-stable.tar.bz 到文件夹 /root/workspace/multimedia/ffpmeg
2.2 进入文件夹 /root/workspace/multimedia/ffpmeg/x264-snapshot-stable
2.3 创建文件夹 /root/workspace/multimedia/ffpmeg/out
2.4 运行configure 构造Makefile
./configure --enable-static --host=arm-linux --disable-asm --prefix=/root/workspace/multimedia/ffpmeg/out
2.5 改动config.mak
CC=/opt/arm-2009q1-203/bin/arm-none-linux-gnueabi-gcc
LD=/opt/arm-2009q1-203/bin/arm-none-linux-gnueabi-gcc -o
AR=/opt/arm-2009q1-203/bin/arm-none-linux-gnueabi-ar rc
RANLIB=/opt/arm-2009q1-203/bin/arm-none-linux-gnueabi-ranlib
STRIP=/opt/arm-2009q1-203/bin/arm-none-linux-gnueabi-strip
保存
2.6 运行 make
2.7 运行 make install
2.8 搞定。
。。。。
。。。。。。。。。。。。。
。编译好的静态库 躺在out文件夹里
3 交叉编译 faac
3.1 解压 ffmpeg 到文件夹/root/workspace/multimedia/ffmpeg
3.2 进入文件夹 /root/workspace/multimedia/ffmpeg/ffmpeg-1.0
3.3 运行configure 构造Makefile
./configure --enable-static --host=arm-linux --with-mp4v2 --prefix=/root/workspace/multimedia/ffpmeg/out CC=/opt/dm6467t/arm-2009q1-203/bin/arm-none-linux-gnueabi-gcc CXX=/opt/dm6467t/arm-2009q1-203/bin/arm-none-linux-gnueabi-g++
3.4 运行 make
3.5 运行 make install
3.6 运行 make clean
3.7 搞定。。
。
。
。。。。。。。。
。。
。。
。
。
。编译好的静态库 躺在out文件夹里 尽管配置了静态库但动态库已编译了。
4 交叉编译 ffmpeg
4.1 解压 ffmpeg 到文件夹/root/workspace/multimedia/ffmpeg
4.2 进入文件夹 /root/workspace/multimedia/ffmpeg/ffmpeg-1.0
4.3 运行configure 构造Makefile
./configure --arch=arm --target-os=linux --cc=/opt/arm-2009q1-203/bin/arm-none-linux-gnueabi-gcc cxx=/opt/arm-2009q1-203/bin/arm-none-linux-gnueabi-g++ strip=/opt/arm-2009q1-203/bin/arm-none-linux-gnueabi-strip --enable-cross-compile --disable-avdevice --disable-avfilter --disable-network --enable-static --disable-shared --enable-small --disable-debug --disable-everything --enable-protocol=file --enable-encoder=libx264 --enable-encoder=libfaac --enable-libx264 --enable-gpl --enable-libfaac --enable-nonfree --enable-muxer=avi --enable-demuxer=avi --prefix=/root/workspace/smart-box-apps-v1.0/sbox_app/multimedia/ffpmeg/out --extra-cflags=-I/root/workspace/smart-box-apps-v1.0/sbox_app/multimedia/ffpmeg/out/include --extra-ldflags=-L/root/workspace/smart-box-apps-v1.0/sbox_app/multimedia/ffpmeg/out/lib
4.4 运行 make
4.5运行 make install
4.6 搞定。。。
。。。
。。
。
。。。。
。。。。。。编译好的静态库 躺在out文件夹里
说明: --disable-everything 一定要关闭全部,然后再打开你须要的模块。不然编译的静态库有几十兆
5 使用 ffmpeg 库
INCLUDES+=-I$(SBOX_APP_DIR)/multimedia/ffpmeg/out/include
LIBS+=$(SBOX_APP_DIR)/multimedia/ffpmeg/out/lib/libavformat.a
LIBS+=$(SBOX_APP_DIR)/multimedia/ffpmeg/out/lib/libavcodec.a
LIBS+=$(SBOX_APP_DIR)/multimedia/ffpmeg/out/lib/libx264.a
LIBS+=$(SBOX_APP_DIR)/multimedia/ffpmeg/out/lib/libfaac.a
#LIBS+=$(SBOX_APP_DIR)/multimedia/ffpmeg/out/lib/libavdevice.a
#LIBS+=$(SBOX_APP_DIR)/multimedia/ffpmeg/out/lib/libavfilter.a
LIBS+=$(SBOX_APP_DIR)/multimedia/ffpmeg/out/lib/libavutil.a
LIBS+=$(SBOX_APP_DIR)/multimedia/ffpmeg/out/lib/libswresample.a
LIBS+=$(SBOX_APP_DIR)/multimedia/ffpmeg/out/lib/libswscale.a
编译出可运行程序2.2M大小
裁剪成功