ffmpeg+libx264+facc交叉编译 实现264流录制avi文件
默认交叉编译器已经搭建好。
。。
。
。
。
。
。。。。
。。。。
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大小
裁剪成功
ffmpeg+libx264+facc交叉编译 实现264流录制avi文件的更多相关文章
- 利用FFmpeg 将 rtsp 获取H264裸流并保存到文件中
既然已经可以通过 RTSP 获取h264 裸流了.那么通过 FFmpeg 将其保存到文件中怎么做呢? 一.首先RTSP获取 h264 裸流 我们上面两篇文章主要讲的是通过 rtsp://Your ip ...
- 使用FFMPEG在windows平台下推rtmp流
使用FFMPEG在windows平台下推rtmp流 工作中习惯在Linux下面使用FFmpeg模拟推rtmp流,无奈家中的电脑都是windows系统,需要利用家中的带宽来测试流媒体服务器的性能.所以研 ...
- VoIP应用在Ubuntu 14.04下编译FFmpeg libX264及PJSIP
PJSIP是一个开源的SIP协议栈.它支持多种SIP的扩展功能,可说算是最目前流行的SIP协议栈之一了. 它实现了SIP.SDP.RTP.STUN.TURN和ICE.PJSIP作为基于SIP的一个多 ...
- 用字符流实现每个文件夹中创建包含所有文件信息的readme.txt
package com.readme; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; i ...
- Java 流(Stream)、文件(File)和IO
Java.io包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io包中的流支持很多种格式,比如:基本类型.对象.本地化字符集等等. 一个流可以理解为一个数据的序 ...
- C++学习47 文件的概念 文件流类与文件流对象 文件的打开与关闭
迄今为止,我们讨论的输入输出是以系统指定的标准设备(输入设备为键盘,输出设备为显示器)为对象的.在实际应用中,常以磁盘文件作为对象.即从磁盘文件读取数据,将数据输出到磁盘文件.磁盘是计算机的外部存储器 ...
- Java IO流之普通文件流和随机读写流区别
普通文件流和随机读写流区别 普通文件流:http://blog.csdn.net/baidu_37107022/article/details/71056011 FileInputStream和Fil ...
- JPEG流封装AVI视频
前言:前几天工作任务,要把JPEG流封装为AVI视频,就找了些AVI文件结构资料和示例代码研究了下,现将学习总结及最终完成的可用代码分享出来,由于本人也是现学现用,如有不恰当或错误之处,欢迎提出! 1 ...
- c#中字节数组byte[]、图片image、流stream,字符串string、内存流MemoryStream、文件file,之间的转换
字节数组byte[]与图片image之间的转化 字节数组转换成图片 public static Image byte2img(byte[] buffer) { MemoryStream ms = ne ...
随机推荐
- python基础(二) —— 流程控制语句
编程语言中的流程控制语句分为以下几类: 顺序语句 分支语句 循环语句 其中顺序语句不需要单独的关键字来控制,就是按照先后顺序一行一行的执行,不需要特殊的说明. 下面主要是 分支语句 和 循环语句的说明 ...
- memcached 经典问题或现象
缓存雪崩现象及真实案例 缓存雪崩一般是由某个缓存节点失效,导致其他节点的缓存命中率下降, 缓存中缺失的数据 去数据库查询.短时间内,造成数据库服务器崩溃. 重启 DB,短期又被压跨,但缓存数据也多一些 ...
- 数据结构( Pyhon 语言描述 ) — — 第4章:数据和链表结构
数据结构是表示一个集合中包含的数据的一个对象 数组数据结构 数组是一个数据结构 支持按照位置对某一项的随机访问,且这种访问的时间是常数 在创建数组时,给定了用于存储数据的位置的一个数目,并且数组的长度 ...
- python接口自动化-有token的接口项目使用unittest框架设计
获取token 在做接口自动化的时候,经常会遇到多个用例需要用同一个参数token,并且这些测试用例跨.py脚本了. 一般token只需要获取一次就行了,然后其它使用unittest框架的测试用例全部 ...
- 【CSS】常见问题集锦
position=absolute 时,定位的父元素变成了body而不是父div?原因:如果父div的position为非static,则相对父div.参考:http://www.jianshu.co ...
- 使用Windows系统远程连接Windows server服务器
点击开始菜单->运行 (或者 windows+R) ,输入"mstsc"命令, 打开远程桌面连接对话框,输入你要连接的Windows server服务器的公网IP. 点击 ...
- CodeForces - 743B Chloe and the sequence
暴力肯定是无法做的 当时做的时候 当成一道递推来做的 用到分治的思想 想象一串长度为2n+1的列 那么前n个为前一串数 后n个是前一串数的reverse 第n+1个数 为第几串的编号 例如 第几串 中 ...
- CodeForces - 462B Appleman and Card Game
是一道简单题 将字母从个数多到小排序 然后 再按题目算法得到最多 但是注意 数据类型声明 money要为long long #include <iostream> #include < ...
- 【HDOJ6318】Swaps and Inversions(树状数组)
题意: 给定一串数组,其中含有一个逆序对则需要花费x,交换相邻两个数需要花费y,输出最小花费. n<=1e5,-1e9<=a[i]<=1e9 思路: #include<cstd ...
- ThinkPHP __construct和_initialize的使用
ThinkPHP框架中的__construct和_initialize的使用 父类(PlatformController.class.php): class PlatformController ex ...