![](/img/trans.png)
[英]Android ffmpeg white space in input path causing “no such file or directory”
[英]How to use ffmpeg commnad in android with input and output file path?
我想在 android 應用程序中使用 ffmpeg 命令。我正在使用這個庫從 ffmpeg 開始。
http://writingminds.github.io/ffmpeg-android-java/
我開發了一個演示應用程序並運行命令
ffmpeg 版本
這個命令也給出了精確的輸出。 但是當我給任何帶有名稱的文件路徑時,我的命令總是失敗,因為我正在使用:
String cmd[] = new String[]{"ffmpeg", "-i", "/storage/emulated/0/Videos/dheere.mp4", "-c:v", "libx264", "/storage/emulated/0/Videos/dheere2.3gp"};
execute(cmd);
private void execute(String cmd[]) {
try {
// to execute "ffmpeg -version" command you just need to pass "-version"
FFMpegApp.getFfmpeg().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();
} catch (Exception e) {
e.printStackTrace();
}
}
請給我任何建議如何在android中使用命令? 提前致謝。
private void execute() {
String[] cmd = {"ffmpeg -i input_file_path.mp4 -ss 00:00:00.000 -pix_fmt rgb24 -r 10 -s 320x240 -t 00:00:10.000 output_file_path.gif"}
try {
// to execute "ffmpeg -version" command you just need to pass "-version"
FFMpegApp.getFfmpeg().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);
// this will fail in case of wrong input or output path.
}
@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();
} catch (Exception e) {
e.printStackTrace();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.