记录一下:javacv/samples/WebcamAndMicrophoneCapture.java
import java.nio.ByteOrder; | |
import java.nio.ShortBuffer; | |
import java.util.concurrent.ScheduledThreadPoolExecutor; | |
import java.util.concurrent.TimeUnit; | |
import javax.sound.sampled.AudioFormat; | |
import javax.sound.sampled.AudioSystem; | |
import javax.sound.sampled.DataLine; | |
import javax.sound.sampled.LineUnavailableException; | |
import javax.sound.sampled.Mixer; | |
import javax.sound.sampled.TargetDataLine; | |
import org.bytedeco.javacpp.avcodec; | |
import org.bytedeco.javacv.CanvasFrame; | |
import org.bytedeco.javacv.FFmpegFrameRecorder; | |
import org.bytedeco.javacv.Frame; | |
import org.bytedeco.javacv.FrameRecorder.Exception; | |
import org.bytedeco.javacv.OpenCVFrameGrabber; | |
public class WebcamAndMicrophoneCapture | |
{ | |
final private static int WEBCAM_DEVICE_INDEX= 1; | |
final private static int AUDIO_DEVICE_INDEX= 4; | |
final private static int FRAME_RATE = 30; | |
final private static int GOP_LENGTH_IN_FRAMES= 60; | |
private static long startTime= 0; | |
private static long videoTS= 0; | |
public static void main(String[] args) throws Exception, org.bytedeco.javacv.FrameGrabber.Exception | |
{ | |
int captureWidth = 1280; | |
int captureHeight = 720; | |
// The available FrameGrabber classes include OpenCVFrameGrabber (opencv_videoio), | |
// DC1394FrameGrabber, FlyCaptureFrameGrabber, OpenKinectFrameGrabber, | |