所以,我正在为 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();
}
}