如何在Vitamio中使用自己编译的FFmpeg
发布网友
发布时间:2022-11-07 23:43
我来回答
共1个回答
热心网友
时间:2023-11-06 10:38
环境要求
Vitamio 3.0是使用Android NDK r8b版本编译生成的,所以建议也使用此版本的NDK编译您改写过的FFmpeg,根据开发者的反馈,使用其它版本的NDK可能导致很多问题甚至崩溃。
编译生成FFmpeg
首先,从我们的GitHub网址:http://github.com/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这个文件:
=> file res/raw/libarm.so
res/raw/libarm.so: 7-zip archive data, version 0.3
如你所见,它是个7-zip压缩文件,因此可以直接将其解压到随便哪里后,用你自己在前一步生成的libffmpeg.so替换其中原来的每个libffmpeg.so。
60 <=> armv6
61 <=> vfp
70 <=> armv7
71 <=> neon
最后,将替换后的数据照原样重新打包成libarm.so即可。