Итак, я разрабатываю собственный видеоплеер для Android, но мне нужно воспроизводить больше, чем видеофайлы, поддерживаемые Android (mp4, 3gp...), like wmv, avi, flv.
В настоящее время я уже конвертирую любой тип видео в .mp4 и могу воспроизводить их после перекодирования, но я понятия не имею, как я могу воспроизводить эти файлы wmv
, avi
без перекодирования их в видеоформаты mp4
.
Есть ли способ воспроизвести любое видео на Android без его перекодирования? JavaCV
+ FFmpeg
библиотека уже работает, только не знаю как это сделать.
Кстати, вот код, который я использую для перекодирования видео:
public static void convert(File file) {
FFmpegFrameGrabber frameGrabber =
new FFmpegFrameGrabber(file.getAbsolutePath());
IplImage captured_frame = null;
FrameRecorder recorder = null;
recorder = new FFmpegFrameRecorder("/mnt/sdcard/external_sd/videosteste/primeiroteste.mp4", 300, 300);
recorder.setVideoCodec(13);
recorder.setFrameRate(30);
recorder.setFormat("mp4");
try {
recorder.start();
frameGrabber.start();
while (true) {
try {
captured_frame = frameGrabber.grab();
if (captured_frame == null) {
System.out.println("!!! Failed cvQueryFrame");
break;
}
recorder.record(captured_frame);
} catch (Exception e) {
}
}
recorder.stop();
recorder.release();
} catch (Exception e) {
e.printStackTrace();
}
}