Android上的FFmpeg命令行

时间:2013-09-28 15:49:35

标签: android video command-line ffmpeg format

我试图在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'

我不知道它可能是什么问题...... 谢谢你的帮助!

2 个答案:

答案 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 上测试