1

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

我不知道这可能是什么问题...感谢您的帮助!

4

2 回答 2

1

它可能不应该工作,因为 ffmpeg 将引用 /usr/lib 将在其中查找已安装的库。但这是 android 这种方法行不通。

可能您应该将 ffmpeg 编译到像 libffmpeg.so 这样的单个库中并编写 c - 包装器,它将从您的应用程序位置(如 /data/data/com.myapp/lib/libffmpeg.so)加载它并将参数传递给该库。

所以:您将通过 jni 加载包装器并传递 ffmpeg 参数,然后包装器将加载实际的 ffmpeg 并将参数传递给它。

我在一个项目中试过这个,它有效

于 2013-09-29T18:24:16.753 回答
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"

最后我收到一条消息说“完成”

在安卓 10 上测试

于 2021-05-10T03:46:04.700 回答