ffmpeg for android (windows环境) (一)

来源:互联网 发布:钢结构软件 编辑:程序博客网 时间:2024/05/29 19:16

今天201703241151

完全没有编译ffmpeg的经验,通过几天的上网搜集资料,进行第一次的尝试,如果编译成功了,就会看到此文,编译不成功自然看不到。

首先,先下载一个MinGW,博主windows是64位的,自然下载的是64位的

MinGW官网:http://www.mingw.org/

64位下载地址:https://sourceforge.net/projects/mingw-w64/files/?source=navbar

安装的时候注意,选择Architecture为x86_64,其他不变,然后就是等待安装,安装时间还是挺长的。

博主的bin的安装路径是:C:\Program Files\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin

将bin路径加入到系统的环境变量中的path路径中

加入之后,打开命令行,输入gcc -v看到最后一排gcc version 6.3.0 (x86_64-posix-seh-rev1, Built by MinGW-W64 project)表示安装成功

下载一个msys,下载地址为:https://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/

找到README.txt下的第一个文件,点击即可下载

解压之后,复制msys文件夹到C:\Program Files\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64文件夹

打开msys文件夹,打开msys.bat文件,双击启动,提示找不到Program,决定卸载MinGW重新装

至于怎么卸载,就不用多说了

重新安装,此时,安装路径我直接选的C盘根目录,希望,它自己会给个子目录,不然,就坑爹了,还是要注意选择x86_64位的,然后,等待安装,安装时间还是很长。。

安装完成了,但是为啥装到桌面上了,卸载,重新装,这次给了个子目录,c盘的mingw64文件夹,然后,等待时间一如既往的长。

安装完成了,环境->gcc -v没毛病

复制msys到C:\mingw64\mingw64文件夹

打开msys文件夹,双击启动msys.bat,打开了,没毛病。

表示MinGW已经安装完成了。

然后,下载一个FFmpeg源码

FFmpeg官网:http://ffmpeg.org/

下载地址:http://ffmpeg.org/download.html,点那个最大的Download,博主这边的版本是ffmpeg-3.2.4

然后,其实博主是两眼一抹黑的,先摸索摸索

没办法,先按照前人的经验来做吧

修改配置文件ffmpeg-3.2.4\configure

SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'
修改为

SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'SLIB_INSTALL_LINKS='$(SLIBNAME)'
据说,这样编译出来的so文件才能符合android使用,至于符不符合ios,博主也不知道

在ffmpeg-3.2.4文件夹中新建个文件build_android_arm.sh

提示一下,博主之前电脑里一直有安装ndk,版本是r11c,但是,据说,如果你想要兼容到4.0,那就有必要使用4.0对应的ndk版本,再议吧

目前博主还是使用r11c来编译,主要是先看能不能成功

在build_android_arm.sh文件中输入如下,注意前后不要有空格

export TMPDIR=C:/Users/Administrator/Desktop/tmpdirexport NDK=C:/Users/Administrator/AppData/Roaming/forever/android/android-ndk-r11cexport SYSROOT=$NDK/platforms/android-14/arch-arm/export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64export PREFIX=C:/Users/Administrator/Desktop/arm/CPU=armADDI_CFLAGS="-marm"function build_one{./configure \--target-os=linux \--prefix=$PREFIX \--arch=arm \--disable-asm --disable-stripping --disable-static --disable-ffprobe --disable-ffplay --disable-doc --disable-ffmpeg --disable-ffserver --disable-debug --disable-symver \--enable-cross-compile --enable-runtime-cpudetect --enable-gpl --enable-shared --enable-small \--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \--sysroot=$SYSROOT \--extra-cflags="-Os -fpic $ADDI_CFLAGS" \--extra-ldflags="$ADDI_LDFLAGS" \$ADDITIONAL_CONFIGURE_FLAGmake cleanmakemake install}build_one
其中,TMPDIR、NDK、SYSROOT、TOOLCHAIN、PREFIX变量为自己的具体情况

TMPDIR为临时目录

NDK为NDK目录

SYSROOT为你想兼容到的最低版本

TOOLCHAIN就照着我写的找你自己的对应的路径

PREFIX为最后生成的文件的路径

打开msys.bat,定位到你的ffmpeg-3.2.4,注意路径用反斜杠/

然后输入build_android_arm.sh回车

等待几分钟后,咔咔咔咔一堆,这速度貌似不快

然后,会看到各种你认为的异常,但是只要它的编译没有断,应该就没有问题

201703241318-201703241326

8分钟就编译完了,接下来,该去咱的PREFIX指定目录去看看文件了

果然两个文件夹,一个include和一个lib

然后该干啥,博主还不知道,研究研究写第二篇。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 狗狗体力很差怎么办啊 脉差总是五十多怎么办 吃过敏药嗜睡乏力怎么办 写字紧张心跳的快手抖怎么办 怀孕食欲差没精神怎么办 爬个三楼就喘了怎么办 头被篮球砸了怎么办 打球手指肿了很久怎么办 客人吃饭跑单了怎么办 脑子总是记不住东西怎么办 穿的鞋有味道怎么办 生完孩子血糖高怎么办 生了孩子子宫大怎么办 生完孩子阴吹怎么办 怀孕初期感冒嗓子发炎怎么办 脑子转不过来弯怎么办 他说我道行不深怎么办 鞋子内测磨破了怎么办 老公拉肚子拉的很厉害怎么办 老公拉肚子拉得很厉害怎么办 和老公吵架很厉害怎么办 新鞋鞋底吱吱响怎么办 新鞋鞋底滑了怎么办 工作中同事不配合怎么办 做体力活一身疼怎么办 大脑左则中动脉血管狭窄?怎么办 儿童体质差免疫力差怎么办 nba篮球大师体力不够怎么办 一千米差10秒怎么办 四十岁以后体力和耐力差怎么办 打篮球一打比赛就紧张怎么办 耐克空军鞋鞋底边胶掉了怎么办 鞋底踩到老鼠胶怎么办 头蒙怎么办最快最有效 备孕老公压力大怎么办 宝宝太兴奋不睡怎么办 我很烦只睡三小时觉怎么办才好 柯基精力太旺盛怎么办 孩子学习熬夜精力不足怎么办 肺癌晚期吃不下饭怎么办 这俩天吃药太多肝肾功能不好怎么办