我试图在Android上使用这个ffmpeg命令行:
ffmpeg -i /sdcard/DCIM/video.mp4 -s 480x320 /sdcard/output.mp4
我有ffmpeg的可执行文件(在这条路径上:/ data / local / tmp / ffmpeg / with chmod 751),正如我读到的那样,我试图使用以下方法调用它:
Runtime.getRuntime().exec("/data/local/tmp/ffmpeg -i /sdcard/DCIM/video.mp4 -s 480x320 /sdcard/output.mp4");
但是在这次调用之后我没有得到任何结果,所以我尝试了相同的命令,但是使用android终端,我确定ffmpeg有效,因为我得到了许多输出,如视频数据。但它没有做我想要的动作,我收到了这条消息:
Unable to find a suitable output format for '/sdcard/output.mp4'
我不知道它可能是什么问题...... 谢谢你的帮助!
答案 0 :(得分:1)
它可能不起作用,因为ffmpeg将引用/ usr / lib,它将查找已安装的库。但这是android这种方法不起作用。
可能你应该将ffmpeg编译成像libffmpeg.so这样的单个库并编写c - wrapper,它会从你的app位置加载它,比如/data/data/com.myapp/lib/libffmpeg.so并将params传递给它库。
所以:你将通过jni加载包装器并传递ffmpeg params然后包装器将加载实际的ffmpeg并将params传递给它。
我在一个项目中试过这个,它可以运行
答案 1 :(得分:0)
您是否要调整视频大小?
我已经在我的 Android 上安装了 ffmpeg。
然后安装后,我通过 CLI 打开应用程序:
ffmpeg -y -i "/storage/emulated/0/Download/WTFMan.mp4" -b:v 1.4M -vf scale=480:320 "/storage/emulated/0/FFMPEG/SickMan.mp4"
最后我收到一条消息说“完成”
在 Android 10 上测试