Используйте библиотеку FFMPEG для решения вашей проблемы.Спасибо за написание мыслей, чтобы сделать ffmpeg простым для Android 1. implementation 'com.writingminds:FFmpegAndroid:0.3.2'
инициализировать ffmpeg
private void setUpFFmpeg() {
ffmpeg = FFmpeg.getInstance(context);
try {
ffmpeg.loadBinary(new LoadBinaryResponseHandler() {
@Override
public void onStart() {
Log.d("Event ", "onStart");
}
@Override
public void onFailure() {
Log.d("Event ", "onFailure");
}
@Override
public void onSuccess() {
Log.d("Event ", "onSuccess");
}
@Override
public void onFinish() {
Log.d("Event ", "onFinish");
}
});
} catch (FFmpegNotSupportedException e) {
// Handle if FFmpeg is not supported by device
}
}
использовать команду FFMPEG подобно @Mahesh Keshvala, опубликованному выше.Хорошая работа @ Mahesh
, тогда execFFmpegBinary(complexCommand);
будет таким
private void execFFmpegBinary(String[] command){
try {
ffmpeg.execute(commands, new ExecuteBinaryResponseHandler() {
@Override
public void onStart() {
Log.d("Event ", "onStart");
}
@Override
public void onProgress(String message) {
Log.e("Event ", "onProgress - " + message);
}
@Override
public void onFailure(String message) {
Log.e("Event ", "onFailure - " + message);
}
@Override
public void onSuccess(String message) {
Log.e("Event ", "onSuccess - " + message);
}
@Override
public void onFinish() {
Log.e("Event ", "onFinish");
}
});
} catch (FFmpegCommandAlreadyRunningException e) {
// Handle if FFmpeg is already running
}
}
команда try для вырезанного видео
String[] complexCommand = {"-ss", "" + startMs / 1000, "-y", "-i", inputFileAbsolutePath, "-t", "" + (endMs - startMs) / 1000, "-s", "320x240", "-r", "15", "-vcodec", "mpeg4", "-b:v", "2097152", "-b:a", "48000", "-ac", "2", "-ar", "22050", outputFileAbsolutePath};
чтобы узнать больше о ffmpeg android, обратитесь по этой ссылке