[英]Android FFMpeg No such file or directory error
我正在使用 ffmpeg for android(使用 gradle 插件 'com.writingminds:FFmpegAndroid:0.3.2'),我正在嘗試將視頻裁剪為 16:9 (w:h) 的比例。 原始視頻是 1080:1920 (w:h)。 當我執行命令時,我得到一個 IOException No such file or directory。
我正在使用的命令:
-i /storage/emulated/0/Movies/MyApp/result_joined.mp4 -vf crop=1080:607 -preset ultrafast /storage/emulated/0/Movies/MyApp/result_cropped.mp4
例外:
java.io.IOException: Error running exec(). Command:
[/data/user/0/my.package.name/files/ffmpeg, -i, /storage/emulated/0/Movies/MyApp/result_joined.mp4, -vf, crop=1080:607, -preset, ultrafast, /storage/emulated/0/Movies/MyApp/result_cropped.mp4] Working Directory: null Environment: null
Caused by: java.io.IOException: No such file or directory
在沒有幫助的情況下搜索了幾個堆棧溢出問題之后。 我還嘗試將文件保存到內部存儲而不是外部存儲。 結果相同
有什么幫助嗎?
創建FFmpeg實例后,您需要調用loadBinary方法。
try {
ffmpeg.loadBinary(new LoadBinaryResponseHandler() {
@Override
public void onFailure() {
Logger.i(TAG, "ffmpeg not supported");
}
});
} catch (FFmpegNotSupportedException e) {
e.printStackTrace();
}
我得到同樣的異常。 我忘了加載 FFmpeg 庫。 首先我們必須加載這個庫。 在運行命令之前運行此函數。
void LoadFFmpegLibrary()
{
if(ffmpeg==null)
{
ffmpeg = FFmpeg.getInstance(context);
try {
ffmpeg.loadBinary(new LoadBinaryResponseHandler() {
@Override
public void onStart() {}
@Override
public void onFailure() {
Toast.makeText(context, "Failed", Toast.LENGTH_SHORT).show();
}
@Override
public void onSuccess() {
Toast.makeText(context, "Success", Toast.LENGTH_SHORT).show();
}
@Override
public void onFinish() {}
});
} catch (FFmpegNotSupportedException e) {
e.printStackTrace();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.