【问题标题】:Using FFMPEG via command line in android在android中通过命令行使用FFMPEG
【发布时间】:2012-09-18 07:24:36
【问题描述】:

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

  1. 我已经交叉编译了 ffmpeg 库并得到了 libffmpeg.so
  2. 我已将 libffmpeg.so 和 ffmpeg 可执行文件存储在我的项目的 files 目录中。

这是我正在使用的代码:

公共类 FFMPEGActivity 扩展 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

请告诉我如何解决这个问题。在此先感谢。

【问题讨论】:

  • 有人请帮忙............我非常沮丧。我会非常感谢你。
  • 你为什么希望它起作用?
  • 先生实际上我想通过它访问 ffmpeg lib
  • 我不能在 android 中通过命令行使用 ffmpeg。

标签: android command-line ffmpeg


【解决方案1】:

我认为这行不通,除非您设法编译 ffmpeg 可执行文件,将其放在文件系统中的某个位置,然后通过您的本机层访问它。不过,通常他们在 android 中使用 libffmpeg API,例如 Dolphin Player

【讨论】:

  • 先生,我有 ffmpeg 可执行文件。我不能将它放在某个应用程序文件夹本身中,然后像我们在 cmd 提示符下使用 ffmpeg 一样使用它。
  • 你能帮我编译ffmpeg吗?我正在努力通过结合音频和图像来创建视频。请帮忙!
【解决方案2】:

您的代码似乎试图运行库,而不是 ffmpeg 可执行文件。请注意,即使在修复了 cmd 之后,您也需要额外的技巧来加载 libffmpeg.so,因为 Android 加载器不会从 ./

加载共享库

我建议构建一个静态链接的 ffmpeg 可执行文件以节省麻烦。

【讨论】:

    【解决方案3】:

    ffmpeg及其访问的所有文件放在内卡上(通过context.getDir("", 0)获得。 完成此操作后,您将能够通过exec() 运行ffmpeg。

    不过,有些模型也会拒绝运行它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-02
      • 1970-01-01
      • 2016-12-15
      • 2014-05-11
      • 1970-01-01
      • 2019-05-02
      • 2020-10-11
      • 1970-01-01
      相关资源
      最近更新 更多