zoukankan      html  css  js  c++  java
  • ffmpeg+libx264+facc交叉编译 实现264流录制avi文件

    默认交叉编译器已经搭建好。

    。。

    。。。。

    。。。。

    需求:
    把标准的h264流保存成avi格式的实现文件,所以须要h264的解码器,avi文件容器,传输协议类型是文件。这些会体如今ffmpeg的configure配置上--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。

    1 .下载libx264 ffmpeg facc

    下载地址自己找吧。。

    。。。。

    我下载的三个包:x264-snapshot-20120718-2245-stable.tar.bz ffmpeg-0.11.1.tar.gz faac-1.28.tar.bz2

    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文件夹里

    交叉编译 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文件夹里 尽管配置了静态库但动态库已编译了。

    交叉编译 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 一定要关闭全部,然后再打开你须要的模块。不然编译的静态库有几十兆

    使用 ffmpeg 

    改动原有的Makefile 加入:

    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大小

    裁剪成功







  • 相关阅读:
    点云平台之图像算法篇
    点云平台之CloudCompare开发
    点云平台之创建工程文件
    pcl介绍
    原型讲解二:原型是干什么用的
    原型讲解一
    博主平时主要发布什么?
    蒙特利尔大学工学院流程
    ubuntu 开热点
    argos3-simulator
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/6962178.html
Copyright © 2011-2022 走看看