【发布时间】:2014-09-01 20:35:10
【问题描述】:
我的/data/data/APP/files 文件夹中有一个为ARM Android 编译的ffmpeg 可执行文件,具有执行权限。
我正在尝试根据从FFmpeg site 中提取的示例执行命令。
这是我正在输入的命令行:
./ffmpeg -loop 1 -i /mnt/sdcard/com.example.test/image.png -c:v libx264 -t 30 -pix_fmt yuv420p /mnt/sdcard/com.example.test/video.mp4
我的目标是从我的应用程序中执行它,但即使在命令行中,我也会收到此错误:
./ffmpeg: 1: Syntax error: "(" unexpected
有谁知道是什么以及如何解决它?
- 更新
我找到了newer version,我想我通过了那个错误。
但是现在,对于任何对 ffmpeg 可执行文件的调用,我都会收到如下错误:
# ./ffmpeg -loop 1 -i /mnt/sdcard/com.example.teste/imagem.png -c:v libx264 -t 30 -pix_fmt yuv420p /mnt/sdcard/com.example.teste/video.mp4
[1] + Stopped (signal) ./ffmpeg -loop 1 -i /mnt/sdcard/com.example.teste/imagem.png -c:v libx264 -t 30 -pix_fmt yuv420p /mnt/sdcard/com.example.teste/video.mp4
[1] Segmentation fault ./ffmpeg -loop 1 -i /mnt/sdcard/com.example.teste/imagem.png -c:v libx264 -t 30 -pix_fmt yuv420p /mnt/sdcard/com.example.teste/video.mp4
什么意思?
【问题讨论】:
-
嘿 Diego,你能告诉我你在哪个 Android O/S 上使用这个吗?此版本仅支持 JB+ 设备。
-
我刚刚尝试运行上面的命令并能够成功生成输出文件,在此处检查输出gist.github.com/hiteshsondhi88/48783de48248ab72fc23,我还向项目中添加了预构建的二进制文件,您可以使用它们,分段错误可能由于不正确的二进制文件而发生,即您可能在非霓虹灯设备上使用霓虹灯二进制文件。
-
好吧。我不知道真正的问题是什么。我在将命令行运行到 19 级 API 模拟器时遇到了该错误。我通过在我的应用程序中使用
logcatProc = Runtime.getRuntime().exec();对其进行实际编码并在我的真实设备上运行该应用程序(带有 ICS API 15 的 Galaxy S2)解决了我的问题。 -
你不能在模拟器上运行它,大多数模拟器是基于 x86 而不是 ARM。请尝试在真实设备上运行它,这可能会起作用
-
好吧。我不太了解模拟器架构,但我创建了一个 SDK 提供给我的 ARM 模拟器。