如何在Android上集成ffmpeg
4个回答
2018-07-05 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
下面把具体编译步骤描述如下,假定NDK安装在~/android-ndk-r7:
1. 首先从FFmpeg官网下载最新的release版本源码ffmpeg-0.11.tar.gz解压缩到Android源码树的ffmpeg/下。
2 准备一个编译脚本build_android.sh并放在ffmpeg/下面,这个脚本也是Rockplayer提供的,需做一些修改,其内容附在后面。我目前用的也会附在后面。
3 在ffmpeg目录下运行./build_android.sh开始编译FFmpeg,编译好的libffmpeg.so会放在文件夹android里面,一共有3个版本分别对应3种ARM体系结构,包括armv7-a、armv7-a-vfp、armv6_vfp,根据所运行的硬件平台选取其中一个版本。为了编译使用FFmpeg的程序时可以方便地找到libffmpeg.so,可将它复制到$OUT/system/lib/和$OUT/obj/lib/,当然这一步也可以加在build_android.sh中做。
4. 接下来就是编译可执行文件ffmpeg了,这个工具可以在命令行下完成FFmpeg提供的几乎所有功能包括编码、解码、转码等,也是用来调试和验证很有用的工具。其实上述编译完后在$ANDROID_BUILD_TOP/external/ffmpeg/下也会生成ffmpeg,但是在设备上无法运行。为了编出能在设备上运行的ffmpeg,可以写一个简单的Android.mk,
1. 首先从FFmpeg官网下载最新的release版本源码ffmpeg-0.11.tar.gz解压缩到Android源码树的ffmpeg/下。
2 准备一个编译脚本build_android.sh并放在ffmpeg/下面,这个脚本也是Rockplayer提供的,需做一些修改,其内容附在后面。我目前用的也会附在后面。
3 在ffmpeg目录下运行./build_android.sh开始编译FFmpeg,编译好的libffmpeg.so会放在文件夹android里面,一共有3个版本分别对应3种ARM体系结构,包括armv7-a、armv7-a-vfp、armv6_vfp,根据所运行的硬件平台选取其中一个版本。为了编译使用FFmpeg的程序时可以方便地找到libffmpeg.so,可将它复制到$OUT/system/lib/和$OUT/obj/lib/,当然这一步也可以加在build_android.sh中做。
4. 接下来就是编译可执行文件ffmpeg了,这个工具可以在命令行下完成FFmpeg提供的几乎所有功能包括编码、解码、转码等,也是用来调试和验证很有用的工具。其实上述编译完后在$ANDROID_BUILD_TOP/external/ffmpeg/下也会生成ffmpeg,但是在设备上无法运行。为了编出能在设备上运行的ffmpeg,可以写一个简单的Android.mk,
2017-08-13
展开全部
环境要求Vitamio3.0是使用AndroidNDKr8b版本编译生成的,所以建议也使用此版本的NDK编译您改写过的FFmpeg,根据开发者的反馈,使用其它版本的NDK可能导致很多问题甚至崩溃。编译生成FFmpeg首先,从我们的GitHub网址:/yixia/FFmpeg-Android下载一份FFmpeg-Android库的拷贝,根据自己的需求对FFmpeg-Android.sh进行适当修改。最常见的场景是编译FFmpeg中你的程序需要的某几个特定模块,其它大部分不需要动。这种情况下,只需要在shell脚本下修改FFMPEG_FLAGS,所有可用参数都在FFmpeg的配置脚本里有详细说明,可通过configure--help查阅。个别情况下,如果需要为FFmpeg打补丁,那可能会麻烦些。我假定你自己已经知道了要怎么做。简言之,你只要懂FFmpeg-Android.sh或者编写自己的编译/生成脚本即可。最后,在bash中运行FFmpeg-Android.sh脚本,既然是bash脚本,也许可能在zsh中运行。打包libarm.so在VitamioBundle中找到res/raw/libarm.so这个文件:=>fileres/raw/libarm.sores/raw/libarm.so:7-ziparchivedata,version0.3如你所见,它是个7-zip压缩文件,因此可以直接将其解压到随便哪里后,用你自己在前一步生成的libffmpeg.so替换其中原来的每个libffmpeg.so。60armv661vfp70armv771neon最后,将替换后的数据照原样重新打包成libarm.so即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-08-13
展开全部
FFmpeg在Android上的移植优化步骤44020477
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-08-13
展开全部
mother’soldminkcape),andrun
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询