编译移动端ffmpeg源代码

1、下载源代码

http://www.ffmpeg.org/download.html#releases

由于需要和Windows平台同步,选择了相同版本的源代码,通过对比版本号:

对应头文件目录的version.h文件中版本信息,

#define LIBAVCODEC_VERSION_MAJOR  57

#define LIBAVCODEC_VERSION_MINOR 107

#define LIBAVCODEC_VERSION_MICRO 100

一次你avcodec版本号为:libavcodec 57.107.100,对应找到并下载即可

也可以下载最新的代码:http://www.ffmpeg.org/download.html,点击Download Source Code 即可。

2、解压源代码

打开终端,cd到源代码压缩文件的对应目录,执行解压缩命令:

tar -Jxf ffmpeg-3.4.7.tar.xz

(不同压缩格式文件需要执行不同的解压缩命令,具体参见:https://blog.csdn.net/xinxinNoGiveUp/article/details/86496386

 

3、编译

  1. iOS

      

    2. Android

 

编译报错:

errno.h: No such file or directory

解决方法:

下载指定版本ndk:android-ndk-r14b,这个版本中有errno.h这个文件

 

编译报错:

报 linux/perf_event.h: No such file or directory 错误

解决方法:

linux/perf_event.h是linux平台的效能优化工具

因此在mac平台编译应禁止,在configure选项中添加--disable-linux-perf即可;

 

编译报错:

android-ndk-r14b/platforms/android-14/arch-arm/usr/lib/crtbegin_dynamic.o:crtbegin_dynamic.c:function _start: error: undefined reference to 'main'

解决方法:

--extra-ldflags添加-shared

 

编译报错:

libavformat/network.c:234:5: error: implicit declaration of function 'closesocket' [-Werror=implicit-function-declaration]

解决方法:

将configure里面的check_cflags -Werror=implicit-function-declaration删掉

 

编译报错:

PTHREAD_CANCEL_DISABLE' undeclared (first use in this function)

解决方法:

这个宏可能有些版本在pthread.h文件中有定义,有些没有,现在的修改方法是,找到对应的平台库头文件,添加上定义代码

#define PTHREAD_CANCEL_ENABLE  0

#define PTHREAD_CANCEL_DISABLE 1

 

编译报错:

fatal error: sys/sysctl.h: No such file or directory

#include <sys/sysctl.h>

解决方法:sys/sysctl.h在安卓不支持,因此屏蔽掉,找到报错的源文件,在#include <sys/sysctl.h>前面添加编译条件#if OGRE_PLATFORM != OGRE_PLATFORM_ANDROID。

 

编译报错:

 

解决方法:

 

没有报错了,哈哈,还打算接着写错误及处理方法。

 

 

以上只是简单的编译出移动端的库,若后续使用出问题还会继续更新,由于ffmpeg功能较多,可以选择性编译一些功能模块。

 

 

参考链接:

https://www.jianshu.com/p/be622d6ad865

https://blog.csdn.net/lakebobo/article/details/79607312

https://blog.csdn.net/u013571243/article/details/49202659?utm_source=blogxgwz0

https://blog.csdn.net/superbfly/article/details/52871895

https://forums.ogre3d.org/viewtopic.php?t=85551

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值