простое декодирование видео на Java / Scala


Есть ли простой способ декодировать видео в java / scala?

Мне нужны только кадры, и я должен сделать с ними некоторые вычисления. Не нужно быть быстрым или в реальном времени.

Я попробовал обработку, которая работала, но не очень хорошо, и я не смог внедрить ее в свой проект. Я видел также jmf, но он больше не поддерживается с 2004 года.

2 3

2 ответа:

Взгляните на Xuggler или FMJ (который пытался продолжить, где остановился JMF, но выглядит полумертвым).

Вы можете использовать класс 'FrameGrab' из JCodec (http://jcodec.org).
Сейчас он поддерживает формат файлов MP4 (ISO BMF, 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>

Или в качестве загрузки на его веб-сайте.