Java / Scala中的简单视频解码

时间:2011-03-08 15:20:22

标签: java scala video decoding

有没有一种简单的方法来解码java / scala中的视频?

我只需要帧,并且必须对它们进行一些计算。无需快速或实时。

我尝试过有效但不好的处理,我无法将其嵌入到我的项目中。我也看到了jmf,但它自2004年以来就不再保持接缝了。

3 个答案:

答案 0 :(得分:2)

看看XugglerFMJ(试图在JMF停止的地方继续,但看起来已经半死)。

答案 1 :(得分:0)

您可以使用JCodec(http://jcodec.org)中的“FrameGrab”类 现在它支持内置AVC(H.264)视频的MP4(ISO BMF,QuickTime)文件格式 只需一帧

int frameNumber = 150;
BufferedImage frame = FrameGrab.getFrame(new File("filename.mp4"), frameNumber);
ImageIO.write(frame, "png", new File("frame_150.png"));

JCodec在maven中可用:

<dependency>
    <groupId>org.jcodec</groupId>
    <artifactId>jcodec</artifactId>
    <version>0.1.3</version>
</dependency>

或在其网站上下载。

答案 2 :(得分:0)

使用velvet-video,很容易从视频文件中将帧压缩为FFMpeg支持的任何格式:

IVideoLib lib = new FFMpegVideoLib();
IDemuxer demuxer = lib.demuxer(new File("path-to-video-file"));
while(demuxer.nextPacket(frame -> {
    BufferedImage image = frame.image();
    // You get frames as BufferedImages here
}, null));

免责声明:我是天鹅绒视频的作者。