有没有简单的方法在java/scala中解码视频?
我只需要这些帧,并且必须用它们做一些计算。不需要快速或实时。
我试着进行处理,但效果并不好,而且我无法将其嵌入到我的项目中。我也看到了jmf,但它似乎从2004年起就不再维护了。
发布于 2011-03-08 23:28:01
看看Xuggler或FMJ (它们试图从JMF停止的地方继续,但看起来是半死不活的)。
发布于 2013-05-13 11:01:36
您可以使用JCodec (http://jcodec.org)中的'FrameGrab‘类。
目前,它支持MP4 ( ISO,QuickTime )文件格式,内含AVC ( H.264 )视频。
只有一帧
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>或者在它的网站上下载。
发布于 2019-09-19 20:29:35
使用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));免责声明:我是天鹅绒视频的作者。
https://stackoverflow.com/questions/5234414
复制相似问题