view src/com/aurellem/capture/XuggleVideoRecorder.java @ 4:edaa7e7806e4

migrated IsoTimer
author Robert McIntyre <rlm@mit.edu>
date Tue, 25 Oct 2011 12:03:01 -0700
parents a92de00f0414
children
line wrap: on
line source
1 package com.aurellem.capture;
4 /**
5 * Handles writing video files using Xuggle.
6 *
7 *
8 * @author Robert McIntyre
9 *
10 */
11 /*
12 public class XuggleVideoRecorder extends AbstractVideoRecorder{
15 IMediaWriter writer;
16 BufferedImage frame;
17 int videoChannel = 0;
18 long currentTimeStamp = 0;
19 boolean videoReady = false;
22 public XuggleVideoRecorder(File output) throws IOException {super(output);}
24 public void initVideo(){
25 this.frame = new BufferedImage(
26 width, height,
27 BufferedImage.TYPE_3BYTE_BGR);
28 this.writer = ToolFactory.makeWriter(this.targetFileName);
29 writer.addVideoStream(videoChannel,
30 0, IRational.make(fps),
31 width, height);
32 this.videoReady = true;
33 }
36 public void record(BufferedImage rawFrame) {
37 if (!this.videoReady){initVideo();}
38 // convert the Image into the form that Xuggle likes.
39 this.frame.getGraphics().drawImage(rawFrame, 0, 0, null);
40 writer.encodeVideo(videoChannel,
41 frame,
42 currentTimeStamp, TimeUnit.NANOSECONDS);
44 currentTimeStamp += (long) (1000000000.0 / fps);
45 }
47 public void finish() {
48 writer.close();
49 }
51 }
53 */