首页 文章

FFmpeg在从视频中提取MP3时出错

提问于
浏览
1

我想执行FFmpeg命令,从应用程序资产文件夹中的视频中提取MP3格式的音频 . 有关更多信息,请参阅http://writingminds.github.io/ffmpeg-android-java/

String sourceFilePath = "file:///android_asset/SampleVideo.mp4";
destFilePath = mp3File.getAbsolutePath();

FFmpeg ffmpeg = FFmpeg.getInstance(MainActivity.this);
    try {

        String cmd[] = new String[]{"/data/data/com.example.bansi_vasundhara.videotomp3_demo/files/ffmpeg", "-i", sourceFilePath, "-vn", "-acodec copy", destFilePath};

        ffmpeg.execute(cmd, new ExecuteBinaryResponseHandler() {

            @Override
            public void onStart() {
                Log.e("gc", "Command Started");
            }

            @Override
            public void onProgress(String message) {
                Log.e("gc", "onProgress" + message);
            }

            @Override
            public void onFailure(String message) {
                Log.e("gc", "onFailure command" + message);
            }

            @Override
            public void onSuccess(String message) {
                Log.e("gc", "onSuccess command" + message);
            }

            @Override
            public void onFinish() {
                Log.e("gc", "onFinish command");
            }
        });

    } catch (FFmpegCommandAlreadyRunningException e) {
        // Handle if FFmpeg is already running
        e.printStackTrace();
    }

但是我收到了一个错误 . 请建议任何解决方案 .

java.io.IOException:运行exec()时出错 . 命令:[/data/data/com.example.bansi_vasundhara.videotomp3_demo/files/ffmpeg,/data/data/com.example.bansi_vasundhara.videotomp3_demo/files/ffmpeg,i-i,file:///android_asset/SampleVideo.mp4 ,-vn,-acodec copy,/ storage / sdcard0 / VideoToMP3 / SampleMP3.mp3]工作目录:null环境:在java.lang.Rrocesstime.exec的java.lang.ProcessManager.exec(ProcessManager.java:211)中为null( Runtime.java:173)at java.lang.Runtime.exec(Runtime.java:128)at com.github.hiteshsondhi88.libffmpeg.ShellCommand.run(ShellCommand.java:10)at com.github.hiteshsondhi88.libffmpeg.FFmpegExecuteAsyncTask .doInBackground(FFmpegExecuteAsyncTask.java:38)位于java.util.concurrent的android.os.AsyncTask $ 2.call(AsyncTask.java:288)的com.github.hiteshsondhi88.libffmpeg.FFmpegExecuteAsyncTask.doInBackground(FFmpegExecuteAsyncTask.java:10) .FutureTask.run(FutureTask.java:237)在android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:231)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)at at Java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:587)at java.lang.Thread.run(Thread.java:818)引起:java.io.IOException:java上没有这样的文件或目录 . java.lang.ProcessManager.exec(ProcessManager.java:209)中的lang.ProcessManager.exec(本机方法)

1 回答

  • 1

    以下命令适用于从视频中提取音频 -

    String[] complexCommand = {"-y", "-i", inputFileAbsolutePath, "-vn", "-ar", "44100", "-ac", "2", "-b:a", "256k", "-f", "mp3", outputFileAbsolutePath};
    

    使用ffmpeg编辑视频的完整代码在我的存储库中发布here,其中包括从视频中提取音频

相关问题