话不多说, 直接上脚本

  1. #!/bin/sh
  2.  
  3. # directories
  4. PLATFORM="OSX"
  5. # FFmpeg脚本目录
  6. SOURCE="ffmpeg-2.8.7"
  7. FAT="$PLATFORM/$SOURCE/FFmpeg-OSX"
  8.  
  9. SCRATCH="$PLATFORM/$SOURCE/scratch"
  10. THIN=`pwd`/"$PLATFORM/$SOURCE/thin"
  11.  
  12. # CONFIGURE_FLAGS="--enable-cross-compile \
  13. # --enable-nonfree \
  14. # --enable-libfaac \
  15. # --enable-libmp3lame \
  16. # --enable-libtheora \
  17. # --enable-libvorbis \
  18. # --enable-libxvid \
  19. # --enable-libass \
  20. # --enable-libspeex \
  21. # --enable-libx264 \
  22. # --enable-libvpx \
  23. # --enable-opencl \
  24. # --disable-ffmpeg \
  25. # --enable-gpl \
  26. # --disable-outdev=sdl \
  27. # --disable-ffplay \
  28. # --disable-debug \
  29. # --disable-ffserver \
  30. # --enable-static \
  31. # --enable-shared "
  32.  
  33. CONFIGURE_FLAGS="--enable-cross-compile \
  34. --enable-nonfree \
  35. --enable-opencl \
  36. --disable-ffmpeg \
  37. --enable-gpl \
  38. --disable-outdev=sdl \
  39. --disable-ffplay \
  40. --disable-debug \
  41. --disable-ffserver \
  42. --enable-static \
  43. --enable-shared "
  44.  
  45. CWD=`pwd`
  46. # ARCHS="x86_64 i386"
  47. ARCHS="i386"
  48.  
  49. # FAAC="/usr/local/Cellar/faac/1.28"
  50. # LAMP="/usr/local/Cellar/lame/3.99.5"
  51. # THEORA="/usr/local/Cellar/theora/1.1.1"
  52. # VORBIS="/usr/local/Cellar/libvorbis/1.3.5"
  53. # XVID="/usr/local/Cellar/libxvid/1.3.4"
  54. # ASS="/usr/local/Cellar/libass/0.13.2"
  55. # SPEEX="/usr/local/Cellar/speex/1.2rc1"
  56. # VPX="/usr/local/Cellar/libvpx/1.6.0"
  57. # X264="/usr/local/Cellar/x264/r2668"
  58.  
  59. for ARCH in $ARCHS
  60. do
  61. echo "building $ARCH..."
  62. mkdir -p "$SCRATCH/$ARCH"
  63. cd "$SCRATCH/$ARCH"
  64.  
  65. CFLAGS="-arch $ARCH"
  66.  
  67. SDK="macosx"
  68.  
  69. XCRUN_SDK=`echo $SDK | tr '[:upper:]' '[:lower:]'`
  70. CC="xcrun -sdk $XCRUN_SDK clang"
  71. CXXFLAGS="$CFLAGS"
  72. LDFLAGS="$CFLAGS"
  73.  
  74. if [ "$FAAC" ]
  75. then
  76. CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-libfaac"
  77. CXXFLAGS="$CXXFLAGS -I$FAAC/include"
  78. LDFLAGS="$LDFLAGS -L$FAAC/lib"
  79. fi
  80. if [ "$LAMP" ]
  81. then
  82. CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-libmp3lame"
  83. CXXFLAGS="$CXXFLAGS -I$LAMP/include"
  84. LDFLAGS="$LDFLAGS -L$LAMP/lib"
  85. fi
  86. if [ "$THEORA" ]
  87. then
  88. CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-libtheora"
  89. CXXFLAGS="$CXXFLAGS -I$THEORA/include"
  90. LDFLAGS="$LDFLAGS -L$THEORA/lib"
  91. fi
  92. if [ "$VORBIS" ]
  93. then
  94. CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-libvorbis"
  95. CXXFLAGS="$CXXFLAGS -I$VORBIS/include"
  96. LDFLAGS="$LDFLAGS -L$VORBIS/lib"
  97. fi
  98. if [ "$XVID" ]
  99. then
  100. CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-libxvid"
  101. CXXFLAGS="$CXXFLAGS -I$XVID/include"
  102. LDFLAGS="$LDFLAGS -L$XVID/lib"
  103. fi
  104. if [ "$ASS" ]
  105. then
  106. CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-libass"
  107. CXXFLAGS="$CXXFLAGS -I$ASS/include"
  108. LDFLAGS="$LDFLAGS -L$ASS/lib"
  109. fi
  110. if [ "$SPEEX" ]
  111. then
  112. CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-libspeex"
  113. CXXFLAGS="$CXXFLAGS -I$SPEEX/include"
  114. LDFLAGS="$LDFLAGS -L$SPEEX/lib"
  115. fi
  116. if [ "$VPX" ]
  117. then
  118. CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-libvpx"
  119. CXXFLAGS="$CXXFLAGS -I$VPX/include"
  120. LDFLAGS="$LDFLAGS -L$VPX/lib"
  121. fi
  122. if [ "$X264" ]
  123. then
  124. CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-libx264"
  125. CXXFLAGS="$CXXFLAGS -I$X264/include"
  126. LDFLAGS="$LDFLAGS -L$X264/lib"
  127. fi
  128.  
  129. TMPDIR=${TMPDIR/%\/} $CWD/$SOURCE/configure \
  130. --target-os=darwin \
  131. --arch=$ARCH \
  132. $CONFIGURE_FLAGS \
  133. --extra-cflags="$CXXFLAGS" \
  134. --extra-ldflags="$LDFLAGS" \
  135. --prefix="$THIN/$ARCH" \
  136. || exit
  137. # --cc="$CC" \
  138.  
  139. make -j3 install $EXPORT || exit
  140. cd $CWD
  141. done
  142. echo Done

该脚本只要放在FFmpeg源码上一层目录即可运行.

测试过是可以跑起来的, 但是要添加其他的编译参数则要相应的库, 而其他库的i386版也需要自己编译, 网上没有找到, 也希望有大神可以帮忙编译

FFmpeg编译i386 OSX 脚本的更多相关文章

  1. iOS: FFMpeg编译和使用问题总结

    iOS: FFmpeg编译和使用问题总结 折磨了我近一周多时间的FFmpeg库编译问题终于解决了,必须得把这一段时间来遇到过的坑全写出来.如果急着解决问题,编译最新版本的FFmpeg库请直接看第二部分 ...

  2. iOS: FFmpeg编译和使用 学习

    ffmpeg是一个多平台多媒体处理工具,处理视频和音频的功能非常强大.目前在网上搜到的iOS上使用FFMPEG的资料都比较陈旧,而FFMPEG更新迭代比较快: 且网上的讲解不够详细,对于初次接触FFM ...

  3. FFMpeg编译之路

    为了编译这个东西,快折腾了一个星期了.期间经历了很多痛苦的过程,今天我把整个过程,以及在这个过程的感悟写下来,以备日后查看,也希望能帮到一些像我一样的兄弟姐妹. 在这一个星期里前前后后加起来总共使用了 ...

  4. ndk开发-ffmpeg编译

    进入模拟器shell: D:\Users\zhouhaitao\AppData\Local\Android\sdk\platform-tools\adb shell ndk编译链接静态库: LOCAL ...

  5. 【FFmpeg】Windows下FFmpeg编译

    由于FFmpeg是基于Linux开发的开源项目,源代码和Windows下最常见的Visual Studio提供的C/C++编译器不兼容,因此它不能使用MSVC++编译,需要在Windows下配置一个类 ...

  6. 2010_3_1最新 完整 FFMPEG 编译详解

    在网上看了很多编译详解,都很零散.经过自己的编译,解决一些BUG,在此分享自己的一些经验... 话不多说了!直接上贴. 第一步:准备编译平台. 需要 一个 MinGW 和 一个 MSYS 安装包 以及 ...

  7. ffmpeg 编译安装

    1.FFmpeg编译 1.1.安装yasm 这里我是直接通过ubuntu包安装的,当然也可以通过编译源码来安装. sudo apt-get install yasm 1.2.下载FFmpeg git ...

  8. Mac FFmpeg编译和解决nasm/yasm not found or too old错误

    FFmpeg编译下载代码:git clone https://git.ffmpeg.org/ffmpeg.git然后输入命令进行编译:找到下载的目录下,然后用命令进入这个文件夹下cd ffmpeg,然 ...

  9. FFmpeg编译:mac下编译iOS平台的FFmpeg库(支持armv7, arm64, i386, x86_64)

    环境:FFmpeg 3.4.6Xcode 10.3macOS 10.14.6iOS SDK 12.4 一.准备工作 1. 下载FFmpeg我这里使用的是3.4.6版本的FFmpeg,可以从FFmpeg ...

随机推荐

  1. 超牛 猴子补丁,修改python内置的print

    猴子补丁一般是用于修改三方包或官方包,也可以用来修改自己或者他人的代码. 但也可以用来修改python 语言内置的关键字. 本篇博客修改python最常用的内置print,使你使用print时候,自动 ...

  2. oracle sql 语句 示例

    --oracle 用户对象的导入导出 exp devimage/oracle@172.xx.x.xx/TESTDB owner='devimage' file=d:/devimage.dmp log= ...

  3. linux命令-vim一般模式下复制剪切粘贴

    删除光标后的一个字符 x 删除光标前的一个字符 shift+x 删除指定个数的字符 数字+x 删除一行字符 dd 剪切指定行数  数字dd  3dd 剪切3行 其实并没有删掉而是保存着剪切板里 粘贴在 ...

  4. linux 下查看文件修改时间,访问时间,状态改变时间

    http://blog.sina.com.cn/s/blog_6285b04e0100f4xr.html 查看文件时间戳命令:stat awk.txt File: `awk.txt' Size: 20 ...

  5. SharePoint 无法“使用资源管理器打开”

    提示错误信息: 在文件资源管理器中打开此位置时遇到问题.将此网站添加到受信任的站点列表,然后重试. 服务器情况: 安装 Internet Explorer 10 后,在 Windows 资源管理器中打 ...

  6. 【总结整理】关于Json的解析,校验和验证

    var jasondata='{"staff": [{"name":"红旗","age":90}, {"nam ...

  7. 六种获取配置properties文件的方法

    总结一下六种获取配置properties文件的方法,代码如下: package com.xujingyang.test ; import java.io.BufferedInputStream ; i ...

  8. 使用Meshlab软件将点云(Point Cloud)转换为模型(Mesh)

    使用Meshlab软件将点云(Point Cloud)转换为模型(Mesh) 启动Meshlab软件: 导入.ply点云文件: 接着点击: 弹出一个右侧边栏: 接着,计算每个点的法线: 输入100,点 ...

  9. centos7命令行和图形界面的相互切换(附centos7安装配置教程)

    一.最近安装了centos7,发现在命令行和图形界面的相互切换命令上,与centos以往版本有很大不同,先整理如下,加深记忆. 1,centos7默认安装后,跟其他版本一样,启动默认进入图形界面: 2 ...

  10. Entity Framework Code-First(9.2):DataAnnotations - TimeStamp Attribute

    DataAnnotations - TimeStamp Attribute: TimeStamp attribute can be applied to only one byte array pro ...