我正在尝试在 Android 上使用这个 ffmpeg 命令行:
ffmpeg -i /sdcard/DCIM/video.mp4 -s 480x320 /sdcard/output.mp4
我有 ffmpeg 的可执行文件(在这个路径上:/data/local/tmp/ffmpeg/和 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'
我不知道这可能是什么问题...... 感谢帮助!!
最佳答案
它可能不应该工作,因为 ffmpeg 将引用/usr/lib 以查找已安装的库。但这是 android 这种方法行不通。
可能你应该将 ffmpeg 编译成一个像 libffmpeg.so 这样的库并编写 c - wrapper,它将从你的应用程序位置加载它,如/data/data/com.myapp/lib/libffmpeg.so 并将参数传递给它图书馆。
因此:您将通过 jni 加载包装器并传递 ffmpeg 参数,然后包装器将加载实际的 ffmpeg 并将参数传递给它。
我在一个项目中尝试过,它有效
关于android - Android 上的 FFmpeg 命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19068716/