FFmpegFrameGrabber g = new FFmpegFrameGrabber("textures/video/anim.mp4"); g.start(); for (int i = 0 ; i < 50 ; i++) { ImageIO.write(g.grab().getBufferedImage(), "png", new File("frame-dump/video-frame-" + System.currentTimeMillis() + ".png")); } g.stop();
new FFmpegFrameGrabber(":<display id>+<x>,<y>") .setFormat("x11grab");
public static FFmpegFrameGrabber createDefault(String devicePath) throws Exception { return new FFmpegFrameGrabber(devicePath); } public static FFmpegFrameGrabber createDefault(int deviceNumber) throws Exception { throw new Exception(FFmpegFrameGrabber.class + " does not support device numbers."); }
public static FFmpegFrameGrabber createDefault(File deviceFile) throws Exception { return new FFmpegFrameGrabber(deviceFile); } public static FFmpegFrameGrabber createDefault(String devicePath) throws Exception { return new FFmpegFrameGrabber(devicePath); }
new FFmpegFrameGrabber("video=\"screen-capture-recorder\"") .setFormat("dshow");
new FFmpegFrameGrabber("\"<screen device index>:\"") .setFormat("avfoundation");
public FFmpegFrameGrabber read(File video) throws FrameGrabber.Exception { FFmpegFrameGrabber frameGrabber = new FFmpegFrameGrabber(video); frameGrabber.start(); return frameGrabber; } }
import com.googlecode.javacv.FFmpegFrameGrabber; import com.googlecode.javacv.FrameGrabber; import com.googlecode.javacv.FrameGrabber.Exception; public class FrameReader { public static void main(String[] args) throws Exception { FrameGrabber grabber = new FFmpegFrameGrabber("hall_gray.avi"); grabber.start(); grabber.release(); return; } }
import java.io.File; import com.googlecode.javacv.CanvasFrame; import com.googlecode.javacv.FFmpegFrameGrabber; public class TestCV{ public static void main(String[] args) throws Exception { File f = new File("input.mp4"); FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(f); final CanvasFrame canvas = new CanvasFrame("My Image"); canvas.showImage(grabber.grab()); } }
import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import org.bytedeco.javacpp.opencv_core.IplImage; import org.bytedeco.javacv.FFmpegFrameGrabber; import org.bytedeco.javacv.FrameGrabber.Exception; public class Read{ public static void main(String []args) throws IOException, Exception { FFmpegFrameGrabber frameGrabber = new FFmpegFrameGrabber("C:/Users/Digilog/Downloads/Test.mp4"); frameGrabber.start(); IplImage i; try { i = frameGrabber.grab(); BufferedImage bi = i.getBufferedImage(); ImageIO.write(bi,"png", new File("D:/Img.png")); frameGrabber.stop(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import org.bytedeco.javacpp.opencv_core.IplImage; import org.bytedeco.javacv.FFmpegFrameGrabber; import org.bytedeco.javacv.FrameGrabber.Exception; public class Read{ public static void main(String []args) throws IOException, Exception { FFmpegFrameGrabber frameGrabber = new FFmpegFrameGrabber("C:/Users/Digilog/Downloads/Test.mp4"); frameGrabber.start(); IplImage i; try { i = frameGrabber.grab(); BufferedImage bi = i.getBufferedImage(); ImageIO.write(bi,"png", new File("D:/Img.png")); frameGrabber.stop(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
@Override public void reset() { this.frameGrabber = new FFmpegFrameGrabber(filename); try { frameNumber = 0; finished = false; frameGrabber.start(); } catch (FrameGrabber.Exception e) { e.printStackTrace(); finished = true; return; } try { Frame frame = frameGrabber.grab(); next = converter.convert(frame); current = new BufferedImage(next.getWidth(),next.getHeight(),next.getType()); currentBoof = imageType.createImage(next.getWidth(),next.getHeight()); } catch (FrameGrabber.Exception e) { finished = true; } } }
FFmpegFrameGrabber frameGrabber = new FFmpegFrameGrabber("C:/Users/Digilog/Downloads/Test.mp4"); frameGrabber.start(); IplImage i;
public static void main(String[] args) throws Exception { String source = "rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov"; File outDir = new File("chunks"); StreamingChunker fFmpegChunker = new StreamingChunker(() -> { FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(source); grabber.setOption("stimeout", "10000000"); //FFmpegFrameGrabber grabber1 = new FFmpegFrameGrabber(source); //grabber.setOption("stimeout", "10000000"); return new SimplifiedGrabberWrap(grabber); //return new FFmpegVideoWrap(grabber); //return new FFmpegAudioWrap(grabber); //return new FFmpegMixerWrap(grabber, grabber1); }, outDir); fFmpegChunker.setChunkHandler((chunkFile) -> { System.out.println(chunkFile); }); fFmpegChunker.start(); while (fFmpegChunker.next()) { } fFmpegChunker.stop(); } }
/** * TODO: Check the use of this. * @deprecated */ @Deprecated public void startVideo() { FFmpegFrameGrabber grabberFF = new FFmpegFrameGrabber(this.cameraDescription); try { grabberFF.setFrameRate(30); this.setPixelFormat(PixelFormat.BGR); grabberFF.start(); this.grabber = grabberFF; this.setSize(grabber.getImageWidth(), grabber.getImageHeight()); // this.setFrameRate((int) grabberFF.getFrameRate()); grabberFF.setFrameRate(30); this.isConnected = true; } catch (Exception e) { System.err.println("Could not FFMPEG frameGrabber... " + e); System.err.println("Camera ID " + this.cameraDescription + ":" + this.imageFormat + " could not start."); System.err.println("Check cable connection, ID and resolution asked."); this.grabber = null; } }
@Override protected List<List<Writable>> loadData(File file, InputStream inputStream) throws IOException { List<List<Writable>> record = new ArrayList<>(); try (FFmpegFrameGrabber fg = inputStream != null ? new FFmpegFrameGrabber(inputStream) : new FFmpegFrameGrabber(file)) { if (numFrames >= 1) { fg.start(); if (startFrame != 0) fg.setFrameNumber(startFrame); for (int i = startFrame; i < startFrame + numFrames; i++) { Frame grab = fg.grabImage(); record.add(RecordConverter.toRecord(imageLoader.asRowVector(converter.convert(grab)))); } } else { if (framesPerSecond < 1) throw new IllegalStateException("No frames or frame time intervals specified"); else { fg.start(); for (double i = 0; i < videoLength; i += framesPerSecond) { fg.setTimestamp(Math.round(i * 1000000L)); Frame grab = fg.grabImage(); record.add(RecordConverter.toRecord(imageLoader.asRowVector(converter.convert(grab)))); } } } } return record; }
@Override public void start() { FFmpegFrameGrabber grabberFF = new FFmpegFrameGrabber(this.cameraDescription); grabberFF.setImageMode(FrameGrabber.ImageMode.COLOR); this.setPixelFormat(PixelFormat.BGR); grabberFF.setFormat(this.imageFormat); grabberFF.setImageWidth(width()); grabberFF.setImageHeight(height()); grabberFF.setFrameRate(frameRate); try { grabberFF.start(); this.grabber = grabberFF; this.isConnected = true; } catch (FrameGrabber.Exception e) { System.err.println("Could not FFMPEG frameGrabber... " + e); System.err.println("Camera ID " + this.cameraDescription + ":" + this.imageFormat + " could not start."); System.err.println("Check cable connection, ID and resolution asked."); this.grabber = null; } }
FrameGrabber grabber = new FFmpegFrameGrabber("input.mp3"); grabber.start(); FrameGrabber grabber2 = new FFmpegFrameGrabber("input2.mp3"); grabber2.start(); FrameRecorder recorder = new FFmpegFrameRecorder("output.mp3", grabber.getAudioChannels()); recorder.setSampleFormat(grabber.getSampleFormat()); recorder.setSampleRate(grabber.getSampleRate()); recorder.start(); Frame frame; while ((frame = grabber.grabFrame()) != null) { recorder.record(frame); } while ((frame = grabber2.grabFrame()) != null) { recorder.record(frame); } recorder.stop(); grabber.stop(); grabber2.stop();
FFmpegFrameGrabber grabber1 = new FFmpegFrameGrabber("song.mp3"); grabber1.start(); FFmpegFrameRecorder recorder = new FFmpegFrameRecorder("/mnt/sdcard/Video_images/output"+System.currentTimeMillis()+".mp4",200,150, grabber1.getAudioChannels()); try { recorder.setVideoCodec(a); //CODEC_ID_MPEG4 //CODEC_ID_MPEG1VIDEO recorder.setFrameRate(24); recorder.setPixelFormat(PIX_FMT_YUV420P); //PIX_FMT_YUV420P recorder.start(); com.googlecode.javacv.Frame frame1 = new com.googlecode.javacv.Frame(); for (int i=0;i<iplimage.length;i++) { frame1 = grabber1.grabFrame(); recorder.record(frame1); recorder.record(iplimage[i]); } recorder.stop(); grabber1.stop();
import com.googlecode.javacv.*; public class ScreenGrabber { public static void main(String[] args) throws Exception { int x = 0, y = 0, w = 1024, h = 768; // specify the region of screen to grab FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(":0.0+" + x + "," + y); grabber.setFormat("x11grab"); grabber.setImageWidth(w); grabber.setImageHeight(h); grabber.start(); CanvasFrame frame = new CanvasFrame("Screen Capture"); while (frame.isVisible()) { frame.showImage(grabber.grab()); } frame.dispose(); grabber.stop(); } }