赞
踩
思路1
使用libffmpeg.so动态链接库,android的java层使用jni调用libffmepg.so中的方法实现获得视频信息、转换、获得进度
评价
正规路子,谷歌推荐开发方式,兼容性好
思路2
使用编译好的ffmpeg可执行文件(armel,可运行于所有的arm平台),利用java层的getRunTime().exec()执行app->data目录下的bin文件ffmpeg,通过重定向输出流来获得执行结果,通过对执行结果的字符串解析判断执行进度
评价
野路子,兼容性不好,在华为手机上无法运行报permission denied
思路3
使用andriod jni运行linux下的c程序,在c程序中先后调用fork()和exec()执行ffmpeg文件,就类似于linux终端的写法
评价
也是相对的野路子,兼容性不好,在华为手机上无法运行,exec报permission denied
总结
测试于小米4c(Android 7)和华为荣耀v20(Android10),三种思路在小米手机上都可以,但是华为手机上只有第一种思路可以,初步判断可能是由于不同手机selinux策略造成的,因为两个手机getenforce都是Enforcing,而且ffmpeg权限都是777了,就是不能运行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。