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

。。

。。。。

。。。。

需求:
把标准的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文件夹里

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 库

改动原有的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大小

裁剪成功



ffmpeg+libx264+facc交叉编译 实现264流录制avi文件的更多相关文章

  1. 利用FFmpeg 将 rtsp 获取H264裸流并保存到文件中

    既然已经可以通过 RTSP 获取h264 裸流了.那么通过 FFmpeg 将其保存到文件中怎么做呢? 一.首先RTSP获取 h264 裸流 我们上面两篇文章主要讲的是通过 rtsp://Your ip ...

  2. 使用FFMPEG在windows平台下推rtmp流

    使用FFMPEG在windows平台下推rtmp流 工作中习惯在Linux下面使用FFmpeg模拟推rtmp流,无奈家中的电脑都是windows系统,需要利用家中的带宽来测试流媒体服务器的性能.所以研 ...

  3. VoIP应用在Ubuntu 14.04下编译FFmpeg libX264及PJSIP

    PJSIP是一个开源的SIP协议栈.它支持多种SIP的扩展功能,可说算是最目前流行的SIP协议栈之一了.  它实现了SIP.SDP.RTP.STUN.TURN和ICE.PJSIP作为基于SIP的一个多 ...

  4. 用字符流实现每个文件夹中创建包含所有文件信息的readme.txt

    package com.readme; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; i ...

  5. Java 流(Stream)、文件(File)和IO

    Java.io包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io包中的流支持很多种格式,比如:基本类型.对象.本地化字符集等等. 一个流可以理解为一个数据的序 ...

  6. C++学习47 文件的概念 文件流类与文件流对象 文件的打开与关闭

    迄今为止,我们讨论的输入输出是以系统指定的标准设备(输入设备为键盘,输出设备为显示器)为对象的.在实际应用中,常以磁盘文件作为对象.即从磁盘文件读取数据,将数据输出到磁盘文件.磁盘是计算机的外部存储器 ...

  7. Java IO流之普通文件流和随机读写流区别

    普通文件流和随机读写流区别 普通文件流:http://blog.csdn.net/baidu_37107022/article/details/71056011 FileInputStream和Fil ...

  8. JPEG流封装AVI视频

    前言:前几天工作任务,要把JPEG流封装为AVI视频,就找了些AVI文件结构资料和示例代码研究了下,现将学习总结及最终完成的可用代码分享出来,由于本人也是现学现用,如有不恰当或错误之处,欢迎提出! 1 ...

  9. c#中字节数组byte[]、图片image、流stream,字符串string、内存流MemoryStream、文件file,之间的转换

    字节数组byte[]与图片image之间的转化 字节数组转换成图片 public static Image byte2img(byte[] buffer) { MemoryStream ms = ne ...

随机推荐

  1. phpstorm使用Database关联数据库

    1.如图选择mysql 配置数据库连接及shh 点击Test Connection,如果成功,即可点击ok连接mysql数据库 2.如图选择所有的表 3.更新数据

  2. 第五章:C++程序的结构

    主要内容: 1.作用域与可见性 2.对象的生存期 3.数据与函数 4.静态成员 5.共享数据的保护 6.友元 7.编译预处理命令 8.多文件结构和工程 作用域:函数原型作用域.块作用域.类作用域.文件 ...

  3. 【HIHOCODER 1039】 字符消除

    链接 问题描述 小Hi最近在玩一个字符消除游戏.给定一个只包含大写字母"ABC"的字符串s,消除过程是如下进行的: 1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被 ...

  4. 【HIHOCODER 1033 】 交错和(数位DP)

    描述 输入 输入数据仅一行包含三个整数,l, r, k(0 ≤ l ≤ r ≤ 1018, |k| ≤ 100). 输出 输出一行一个整数表示结果,考虑到答案可能很大,输出结果模 109 + 7. 提 ...

  5. CTSC1998 选课(背包类树形Dp)

    题意: 给出 n 节课的先修课号以及学分(先修课号指的是在学习某节课时先需要学习的课程),求学 m 节课的最大学分. 细节: 1.对于课程 a 其先修课号为 b ,对于课程 b 其先修课号为 c ,则 ...

  6. netcat命令的使用

    Linux netcat 命令实例: 1,端口扫描 端口扫描经常被系统管理员和黑客用来发现在一些机器上开放的端口,帮助他们识别系统中的漏洞. $nc -z -v -n 172.31.100.7 21- ...

  7. 【Codeforces 25C】Roads in Berland

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 用floyd思想. 求出来这条新加的边影响到的点对即可. 然后尝试更新点对之间的最短路就好. 更新之后把差值从答案里面减掉. [代码] #in ...

  8. 大数据学习——hdfs客户端操作

    package cn.itcast.hdfs; import org.apache.commons.io.IOUtils; import org.apache.hadoop.conf.Configur ...

  9. NYOJ90-整数划分,经典递归思想~~

    整数划分 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 将正整数n表示成一系列正整数之和:n=n1+n2+-+nk,  其中n1≥n2≥-≥nk≥1,k≥1.  正整数 ...

  10. Linux使用Mutt发送邮件/附件

    使用Mutt发邮件极其方便,只需要一条命令即可发送或者批量发送邮件 功能说明:E-mail管理程序. 语 法:mutt [-hnpRvxz][-a<文件>][-b<地址>][- ...