在android中通过命令行使用FFMPEG

在android中通过命令行使用FFMPEG,android,command-line,ffmpeg,Android,Command Line,Ffmpeg,我想在android应用程序中通过命令行使用FFMPEG。为此: 我交叉编译了ffmpeg库,得到了libffmpeg.so 我已经将libffmpeg.so和ffmpeg exectable存储在项目的files目录中 这是我正在使用的代码: 公共类FFMPEGActivity扩展了活动{ Process p; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanc

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

  • 我交叉编译了ffmpeg库,得到了libffmpeg.so
  • 我已经将libffmpeg.so和ffmpeg exectable存储在项目的files目录中
  • 这是我正在使用的代码:

    公共类FFMPEGActivity扩展了活动{

    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可执行文件,将其放在文件系统的某个地方,然后通过本机层访问它。不过,通常情况下,他们在android中使用libffmpeg API,比如在中放置
    ffmpeg
    以及它在内部卡上访问的所有文件(通过
    context.getDir(“,0)”获取)。
    完成此操作后,您将能够通过
    exec()
    运行ffmpeg


    但是,有些型号也会拒绝运行此功能。

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


    我建议建立一个静态链接的ffmpeg可执行文件,以避免麻烦。

    请有人帮助…………我非常沮丧。我将非常感谢你。你为什么希望这样做?先生,实际上我想通过它访问ffmpeg库。我不能通过android中的命令行使用ffmpeg。先生,我有ffmpeg execu表文件。我不能将其放在某个应用程序文件夹中,然后像在cmd提示符中使用ffmpeg一样使用它。你能帮我编译ffmpeg吗?我正在努力通过组合音频和图像来创建视频。请帮助!