有没有一种简单的方法来解码java / scala中的视频?
我只需要帧,并且必须对它们进行一些计算。无需快速或实时。
我尝试过有效但不好的处理,我无法将其嵌入到我的项目中。我也看到了jmf,但它自2004年以来就不再保持接缝了。
答案 0 :(得分:2)
答案 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));
免责声明:我是天鹅绒视频的作者。