compile ffmpeg for armv7 armv7s[通俗易懂]

1.下载ffmpeggitclonegit://source.ffmpeg.org/ffmpeg.gitffmpeg2.下载gas-preprocessor地址: https://github.com/yuvi/gas-preprocessor下载完后把gas-preprocessor.pl复制到/usr/bin/目录下,修改权限 chmod7773.解压ffm

大家好,又见面了,我是你们的朋友全栈君。

1.下载ffmpeg

git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

2.下载gas-preprocessor

地址: https://github.com/yuvi/gas-preprocessor

下载完后把gas-preprocessor.pl 复制到 /usr/bin/ 目录下,修改权限  chmod 777

3.解压ffmpeg,并进入ffmpeg文件夹:

a.编译armv7

./configure –cc=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc –as=’/usr/bin/gas-preprocessor.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc’ –sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk –extra-ldflags=-L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/system –target-os=darwin –arch=arm –cpu=cortex-a8 –extra-cflags=’-arch armv7′ –extra-ldflags=’-arch armv7′ –extra-cflags=’-mfpu=neon’ –extra-cflags=’-mfloat-abi=softfp’ –enable-pic –enable-cross-compile –enable-ffmpeg  –enable-decoder=h264 –disable-doc

b.编译完后,make , sudo make install

c.可以在/usr/local/目录下看到lib inlucde文件夹都有新增文件,将/usr/local/lib/下的.a文件复制到随便新建一个文件夹,命名文件夹armv7


4.编译armv7s

a. ./configure –disable-doc –disable-ffmpeg –disable-ffplay –disable-ffserver –enable-cross-compile –arch=arm –target-os=darwin –cc=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc –as=’gas-preprocessor/gas-preprocessor.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc’ –sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk –cpu=cortex-a8 –extra-cflags=’-arch armv7s’ –extra-ldflags=’-arch armv7s -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk’ –enable-pic –enable-decoder=rawvideo –disable-asm

b.编译完后,make , sudo make install

c.可以在/usr/local/目录下看到lib inlucde文件夹都有新增文件,将/usr/local/lib/下的.a文件复制到随便新建一个文件夹,命名文件夹armv7s


5.合并两个版本

a.去掉重复的log2_tab.o

ar -dv armv7s/libavutil.a log2_tab.o

ar -dv armv7/libavutil.a log2_tab.o

ar -dv armv7s/libswresample.a log2_tab.o

ar -dv armv7/libswresample.a log2_tab.o

ar -dv armv7s/libavformat.a log2_tab.o

ar -dv armv7/libavformat.a log2_tab.o

b.合并

xcrun -sdk iphoneos lipo -create -arch armv7 armv7/libavcodec.a -arch armv7s armv7s/libavcodec.a -output libavcodec.a

xcrun -sdk iphoneos lipo -create -arch armv7 armv7/libavdevice.a -arch armv7s armv7s/libavdevice.a -output libavdevice.a

xcrun -sdk iphoneos lipo -create -arch armv7 armv7/libavfilter.a -arch armv7s armv7s/libavfilter.a -output libavfilter.a

xcrun -sdk iphoneos lipo -create -arch armv7 armv7/libavformat.a -arch armv7s armv7s/libavformat.a -output libavformat.a

xcrun -sdk iphoneos lipo -create -arch armv7 armv7/libavutil.a -arch armv7s armv7s/libavutil.a -output libavutil.a

xcrun -sdk iphoneos lipo -create -arch armv7 armv7/libswresample.a -arch armv7s armv7s/libswresample.a -output libswresample.a

xcrun -sdk iphoneos lipo -create -arch armv7 armv7/libswscale.a -arch armv7s armv7s/libswscale.a -output libswscale.a

6.添加到xcode

新建文件夹ffmpeg,将合并后的.a文件和/usr/local/include/*的文件复制到ffmpeg夹下,把ffmpeg复制到工程下,并add

7.在工程的build phase引入libz.dylib和libbz2.dylib两个库

8.在Build Settings, 搜索header search paths, 加上ffmpeg

编译运行。。



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127466.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 在S3C2440烧写程序

    在S3C2440烧写程序你好!这里是风筝的博客,欢迎和我一起交流。以JZ2440开发板为例,烧录程序到S3C2440。可以使用dnw软件进行烧录。在windows下,一般dnw的驱动都装不好,一般需要禁止数字签名才能装好。所以我们可以把dnw装到linux下,在linux下烧录程序。 先用filezilla软件和虚拟机里装好的linux建立连接,把dnw移到linux随便一个目录下,比如我是放到/home/b…

    2022年5月1日
    40
  • MySQL配置+SQLyog安装教程

    MySQL配置+SQLyog安装教程一标题、MySQL的配置官网地址:MySQL官网地址。我选择的版本是5.5.27,具体mis文件运行之后的操作步骤参考博客MySQL安装教程。二、SQLyog安装教程安装程序下载:链接:https://pan.baidu.com/s/1MeFavdcOAd0BUG3D9cA9eg提取码:i5mi安装教程参考博客SQLyog安装教程三、所需数据库资源百度云链接:链接:https…

    2022年5月28日
    59
  • zigbee学习之路(十二):zigbee协议原理介绍

    zigbee学习之路(十二):zigbee协议原理介绍一.前言从今天开始,我们要正式开始进行zigbee相关的通信实验了,我所使用的协议栈是ZStack是TIZStack-CC2530-2.3.0-1.4.0版本,大家也可以从TI的官网上直接下载T

    2022年8月2日
    10
  • poj 1088 记忆化搜索||动态规划

    poj 1088 记忆化搜索||动态规划poj1088    记忆化搜索也也是采用递归深搜的对数据进行搜索,但不同于直接深搜的方式,记忆化搜索是在每次搜索时将得到的结果保存下来,避免了重复计算,这就是所谓的记忆化。记忆化应该是属于动态规划。   举个例子,比如我们搜索最长最长连续增子序列,1 234567,当然这个例子比较特殊,但足以说明情况。   对于这种问题,我们可以先搜索以1开始的

    2022年7月26日
    3
  • 使用哈夫曼树实现文本编码、解码

    使用哈夫曼树实现文本编码、解码使用二叉树存储结构的链表,进行构造二叉树,对指定字符串编码解码

    2022年5月3日
    48
  • system.Exception:端口已被占用1080「建议收藏」

    system.Exception:端口已被占用1080「建议收藏」找出是哪个程序占用了1080端口打开cmd.exe,输入命令:netstat-aon|findstr"1080"1最后一列就是PID了,我的是3104. 要想知道此PID对应什么程序,可以继续输入:tasklist|findstr"4568"1打开任务管理器,在进程里面找下wpscloudsvr.exe,或者在服务里面找PID为3104。…

    2022年9月7日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号