iOS开发 FFmpeg 编译及使用

本文详细介绍了如何使用ffmpeg-iphone-build在iOS平台上进行音视频编解码技术的实现过程,包括下载资源、配置环境、编译与安装等步骤,并提供了实例工程的指导。同时,解决了一些常见问题,如权限问题和汇编禁用导致的效率问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.sina.com.cn/s/blog_58af95150101i96p.html


1. 到https://github.com/gabriel/ffmpeg-iphone-build下载ffmpeg-iphone-build
2.先将gas-preprocessor.pl拷贝到/usr/sbin/目录中。
3.到这里下载最新的ffmpeg:http://ffmpeg.org/download.html    或者命令行安装:git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

下载一个事例工程:git clone git://github.com/lajos/iFrameExtractor.git
然后到命令行下到ffmpeg的目录下,执行:

自己修改一下对应自己的SDK就可以了,我这儿是4.2

这个是模拟器的

 

./configure --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --disable-avfilter --disable-debug --disable-encoders
--enable-cross-compile --disable-decoders --disable-armv5te --enable-decoder=h264 --enable-pic
--cc=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc --as='gas-preprocessor/gas-preprocessor.pl
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc'
--extra-ldflags=-L/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/usr/lib/system
--sysroot=/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk --target-os=darwin --arch=i386
--cpu=i386 --extra-cflags='-arch i386' --extra-ldflags='-arch i386' --disable-asm

 

---------------------------------------------------

这个是真机的

./configure --

cc=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc 

--as='gas-preprocessor.pl 

/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc' --

sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPh

oneOS4.2.sdk --extra-ldflags=-

L/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.

2.sdk/usr/lib/system --target-os=darwin --arch=arm --cpu=cortex-

a8 --extra-cflags='-arch armv7' --extra-ldflags='-arch armv7' --

enable-pic --enable-cross-compile --enable-ffmpeg --disable-

ffplay --disable-ffserver --disable-asm --disable-encoders --

disable-decoders --enable-decoder=h264 --enable-decoder=mjpeg --

enable-decoder=mpeg4 --disable-doc


注意了,上面有--disable-asm \,这是没办法的,禁用了汇编,这样应该是会影响效率的,如果不禁用就编译不通过。谁有更好的办法不禁用,麻烦分享一下。
一般是ok的,如果提示permission deny,那就chmod 777 configure(这个情况是我同事在windows上改了这个文件)

然后就make,完了再make install一下,如果出现权限不够使用 sudo make install,然后输入密码;
如果给代码做了修改,就先make clean,然后make一下

使用Finder,前往文件夹,输入/usr/local

然后把lib和include放到你的工程中,你可以在你的工程根目录下创建一个叫ffmpeg的文件夹,把lib和linclude里面的东西放进去
工程中制定head file path :"$(SRCROOT)/ffmpeg/include"   这样编译就可以通过了
工程中制定library file path :"$(SRCROOT)/ffmpeg/lib"   这样编译就可以通过了


然后,打开iFrameExtractor这个工程,在ffmpeg这个文件夹建一个lib文件夹,把之前拷贝(就这个cp -rf lib* /src)出来的.a文件全部丢进去。为什么要这么做呢?应为iFrameExtractor里面的ffmpeg版本比较老,所以我没有编译它,没有编译,就不会产生一个lib文件夹。

 

如果编译出现问题,大部分的情况应该是类库没有导入完全,在target里面改入一下类库就可以了。
然后在link binary with library中导入这些.a文件和libbz.2.1.0.dylib。
然后插上真机,运行工程,ok,成功啦!!!看下面的图片。


资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 华为移动服务(Huawei Mobile Services,简称 HMS)是一个全面开放的移动服务生态系统,为企业和开发者提供了丰富的工具和 API,助力他们构建、运营和推广应用。其中,HMS Scankit 是华为推出的一款扫描服务 SDK,支持快速集成到安卓应用中,能够提供高效且稳定的二维码和条形码扫描功能,适用于商品扫码、支付验证、信息获取等多种场景。 集成 HMS Scankit SDK 主要包括以下步骤:首先,在项目的 build.gradle 文件中添加 HMS Core 库和 Scankit 依赖;其次,在 AndroidManifest.xml 文件中添加相机访问和互联网访问权限;然后,在应用程序的 onCreate 方法中调用 HmsClient 进行初始化;接着,可以选择自定义扫描界面或使用 Scankit 提供的默认扫描界面;最后,实现 ScanCallback 接口以处理扫描成功和失败的回调。 HMS Scankit 内部集成了开源的 Zxing(Zebra Crossing)库,这是一个功能强大的条码和二维码处理库,提供了解码、生成、解析等多种功能,既可以单独使用,也可以与其他扫描框架结合使用。在 HMS Scankit 中,Zxing 经过优化,以更好地适应华为设备,从而提升扫描性能。 通常,ScanKitDemoGuide 包含了集成 HMS Scankit 的示例代码,涵盖扫描界面的布局、扫描操作的启动和停止以及扫描结果的处理等内容。开发者可以参考这些代码,快速掌握在自己的应用中实现扫码功能的方法。例如,启动扫描的方法如下: 处理扫描结果的回调如下: HMS Scankit 支持所有安卓手机,但在华为设备上能够提供最佳性能和体验,因为它针对华为硬件进行了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值