我想执行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 回答
以下命令适用于从视频中提取音频 -
使用ffmpeg编辑视频的完整代码在我的存储库中发布here,其中包括从视频中提取音频