gpt4 book ai didi

android - 尝试通过 android 中的命令行运行 ffmpeg 时出现异常

转载 作者:行者123 更新时间:2023-11-29 02:01:33 24 4
gpt4 key购买 nike

我想在 android 应用程序中通过命令行参数使用 ffmpeg。为此目的:

  1. 我已经交叉编译了 ffmpeg 库并得到了 libffmpeg.so
  2. 我已将 libffmpeg.so 存储在应用程序的文件目录中。

这是我使用的代码:

public class MainActivity extends Activity {

Process p;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

String[] cmd =new String[4];
cmd[0]="/data/data/com.example.ffmpegnew/files/libffmpeg";
cmd[1]="-i";
cmd[2]="mnt/sdcard/music/baba.mp4";
cmd[3]="mnt/sdcard/music/outfile.mp4";

p = Runtime.getRuntime().exec(cmd,null, new File("/data/data/com.example.ffmpegnew/files"));

}
catch(Exception e)
{
System.out.println("exception"+e);
}

}

}

这是我遇到的异常:

09-17 13:47:01.679: I/System.out(3752): exceptionjava.io.IOException: Error running exec(). Command: [/data/data/com.example.ffmpegnew/files/libffmpeg.so, -i, mnt/sdcard/music/baba.mp4, mnt/sdcard/music/outfile.mp4] Working Directory: /data/data/com.example.ffmpegnew/files Environment: null

请告诉我如何解决这个问题。提前致谢。

最佳答案

我猜你正试图用这个 Linux 命令运行一个 .so 文件:

/data/data/com.example.ffmpegnew/files/libffmpeg.so -i mnt/sdcard/music/baba.mp4 mnt/sdcard/music/outfile.mp4

您实际上是指运行 ffmpeg 可执行文件(参见 man ffmpeg)吗?

ffmpeg -i mnt/sdcard/music/baba.mp4 mnt/sdcard/music/outfile.mp4

我认为第一步可能是制作您的命令,然后您的代码 fragment 在常规 Linux 上运行,然后将其移至 Android。

附言。无论如何,“mnt/...”中缺少前导“/”;应该是“/mnt/...”

PPS。其他讨论可能会有所帮助 1

关于android - 尝试通过 android 中的命令行运行 ffmpeg 时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12455588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com