我正在开发一款定制的 Android 视频播放器,但我需要播放更多不受 Android 支持的视频文件格式(如wmv、avi、flv)
。
目前我已经将任何视频类型转换为.mp4并且可以在重编码后播放它们,但我不知道如何在不将它们重新编码为mp4视频格式的情况下播放wmv
、avi
文件。
有没有办法在 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();
}
}