使用Java访问视频中的帧

时间:2009-10-31 03:26:51

标签: java

我有一个由一系列rgb格式图像组成的视频文件,例如:

视频名称:static_camera2.576v 框架尺寸:480x368 帧速率:12帧/秒   持续时间:5秒

我需要使用起始帧作为I访问每个帧,并且需要提取所有帧,以便我可以根据前一帧计算运动矢量 - 这类似于 基于块的MAD(平均绝对差值)。

知道如何访问每个帧然后存储它们以使用上面给出的参数来操作它们吗?

2 个答案:

答案 0 :(得分:1)

使用Xuggler解码每个视频帧。然后使用IVideoPicture#getData()方法获取YUV图像背后的原始数据。这将返回一个IBuffer对象,该对象允许您将原始数据复制到Java byte []数组中或从Java byte []数组中复制,或直接从Java访问本机内存。

答案 1 :(得分:0)

快速谷歌搜索使用Java Media Framework产生了以下结果。如果你不支持你想要使用的编解码器,那么你需要考虑使用JNI。

http://www.oracle.com/technetwork/java/javase/tech/frameaccess-176882.html

http://forums.sun.com/thread.jspa?threadID=421678(已死)

http://algoval.essex.ac.uk/software/video/JavaRTVK.html(已死)