/** * Get a specified frame by number from an already open demuxer track * * @param vt * @param decoder * @param frameNumber * @return * @throws IOException * @throws JCodecException */ public static BufferedImage getFrame(SeekableDemuxerTrack vt, ContainerAdaptor decoder, int frameNumber) throws IOException, JCodecException { return ((AWTFrameGrab) new AWTFrameGrab(vt, decoder).seekToFramePrecise(frameNumber)).getFrame(); }
/** * Get frame at a specified frame number as AWT image * * @param file * @param second * @return * @throws IOException * @throws JCodecException */ public static BufferedImage getFrame(SeekableByteChannel file, int frameNumber) throws JCodecException, IOException { return ((AWTFrameGrab) createAWTFrameGrab(file).seekToFramePrecise(frameNumber)).getFrame(); }
/** * Get a specified frame by number from an already open demuxer track ( * sloppy mode, i.e. nearest keyframe ) * * @param vt * @param decoder * @param frameNumber * @return * @throws IOException * @throws JCodecException */ public static BufferedImage getFrameSloppy(SeekableDemuxerTrack vt, ContainerAdaptor decoder, int frameNumber) throws IOException, JCodecException { return ((AWTFrameGrab) new AWTFrameGrab(vt, decoder).seekToFrameSloppy(frameNumber)).getFrame(); }
/** * Get frame at a specified second as AWT image * * @param file * @param second * @return * @throws UnsupportedFormatException * @throws IOException */ public static BufferedImage getFrame(SeekableByteChannel file, double second) throws JCodecException, IOException { return ((AWTFrameGrab) createAWTFrameGrab(file).seekToSecondPrecise(second)).getFrame(); }
/** * Get a specified frame by second from an already open demuxer track * * @param vt * @param decoder * @param frameNumber * @return * @throws IOException * @throws JCodecException */ public static BufferedImage getFrame(SeekableDemuxerTrack vt, ContainerAdaptor decoder, double second) throws IOException, JCodecException { return ((AWTFrameGrab) new AWTFrameGrab(vt, decoder).seekToSecondPrecise(second)).getFrame(); }
/** * Get a specified frame by second from an already open demuxer track ( * sloppy mode, i.e. nearest keyframe ) * * @param vt * @param decoder * @param frameNumber * @return * @throws IOException * @throws JCodecException */ public static BufferedImage getFrameSloppy(SeekableDemuxerTrack vt, ContainerAdaptor decoder, double second) throws IOException, JCodecException { return ((AWTFrameGrab) new AWTFrameGrab(vt, decoder).seekToSecondSloppy(second)).getFrame(); }
/** * Get frame at a specified second as AWT image * * @param file * @param second * @return * @throws IOException * @throws JCodecException */ public static BufferedImage getFrame(File file, double second) throws IOException, JCodecException { FileChannelWrapper ch = null; try { ch = NIOUtils.readableChannel(file); return ((AWTFrameGrab) createAWTFrameGrab(ch).seekToSecondPrecise(second)).getFrameWithOrientation(); } finally { NIOUtils.closeQuietly(ch); } }
/** * Get frame at current position in AWT image * * @return * @throws IOException */ public BufferedImage getFrame() throws IOException { Picture nativeFrame = getNativeFrame(); return nativeFrame == null ? null : AWTUtil.toBufferedImage(nativeFrame); }
public BufferedImage getFrameWithOrientation() throws IOException { PictureWithMetadata nativeFrame = getNativeFrameWithMetadata(); return nativeFrame == null ? null : AWTUtil.toBufferedImage(nativeFrame.getPicture(), nativeFrame.getOrientation()); }
public static AWTFrameGrab createAWTFrameGrab(SeekableByteChannel _in) throws IOException, JCodecException { FrameGrab fg = FrameGrab.createFrameGrab(_in); return new AWTFrameGrab(fg.getVideoTrack(), fg.getDecoder()); }
/** * Get frame at a specified frame number as AWT image * * @param file * @param second * @return * @throws IOException * @throws JCodecException */ public static BufferedImage getFrame(File file, int frameNumber) throws IOException, JCodecException { FileChannelWrapper ch = null; try { ch = NIOUtils.readableChannel(file); return ((AWTFrameGrab) createAWTFrameGrab(ch).seekToFramePrecise(frameNumber)).getFrame(); } finally { NIOUtils.closeQuietly(ch); } }