Я делаю видео в аудио конвертер, но мне нужна помощь, чтобы конвертировать видео в аудио с помощью ffmpeg. Я проверил много ответов и веб-сайтов, но их ответы нелегко понять, и я запутался с командой, которая используется для преобразования. Что такое правильная команда для преобразования видео в аудио и выполняю ли я команду правильно?
public class VideoConvertActivity extends AppCompatActivity {
private VideoView videoView;
private Button convertButton;
private String filePath;
private FFmpeg ffmpeg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_convert);
videoView = findViewById(R.id.videoviewID);
convertButton = findViewById(R.id.convertbuttonID);
ffmpeg = FFmpeg.getInstance(VideoConvertActivity.this);
// in variable video i'm getting the path of video path from previous activity through intent and that video will have to convert to audio file
Intent extras = getIntent();
final String video = extras.getStringExtra("video");
videoView.setVideoPath(video);
videoView.start();
convertButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
File moviesDir = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_MUSIC
);
String filePrefix = "convert_audio";
String fileExtn = ".mp3";
File dest = new File(moviesDir, filePrefix + fileExtn);
int fileNo = 0;
while (dest.exists()) {
fileNo++;
dest = new File(moviesDir, filePrefix + fileNo + fileExtn);
}
filePath = dest.getAbsolutePath();
// to execute "ffmpeg -version" command you just need to pass "-version"
String[] command = {"-y", "-i", video, "-vn", "-ar", "44100", "-ac", "2", "-b:a", "256k", "-f", "mp3", filePath};
ffmpeg.execute(command, new ExecuteBinaryResponseHandler() {
@Override
public void onStart() {
Toast.makeText(VideoConvertActivity.this,"Started",Toast.LENGTH_LONG).show();
}
@Override
public void onProgress(String message) {
Toast.makeText(VideoConvertActivity.this,"Progress",Toast.LENGTH_LONG).show();
}
@Override
public void onFailure(String message) {
Toast.makeText(VideoConvertActivity.this,"Failed",Toast.LENGTH_LONG).show();
}
@Override
public void onSuccess(String message) {
Toast.makeText(VideoConvertActivity.this,"Succeed",Toast.LENGTH_LONG).show();
}
@Override
public void onFinish() {
Toast.makeText(VideoConvertActivity.this,"Finished",Toast.LENGTH_LONG).show();
}
});
} catch (FFmpegCommandAlreadyRunningException e) {
// Handle if FFmpeg is already running
}
Toast.makeText(VideoConvertActivity.this,"Converted Successfully",Toast.LENGTH_SHORT).show();
}
});
}
}