package server;/** Questa classe cattura il flusso di frame della webcam e li salva in un file in formato *.mpeg*/import com.googlecode.javacpp.Loader;import java.io.File;import com.googlecode.javacv.CanvasFrame;import com.googlecode.javacv.FFmpegFrameGrabber;import com.googlecode.javacv.FFmpegFrameRecorder;import com.googlecode.javacv.FrameGrabber;import com.googlecode.javacv.FrameRecorder;import com.googlecode.javacv.OpenCVFrameGrabber;import com.googlecode.javacv.cpp.avcodec;import com.googlecode.javacv.cpp.avcodec.AVCodec;import com.googlecode.javacv.cpp.avformat;import com.googlecode.javacv.cpp.avutil;import com.googlecode.javacv.cpp.opencv_core.CvMemStorage;import com.googlecode.javacv.cpp.opencv_core.IplImage;import com.googlecode.javacv.cpp.opencv_objdetect;public class WebCam {public static void main(String[] args) throws Exception {Loader.load(opencv_objdetect.class);CanvasFrame frame = new CanvasFrame("Video registrazione");FrameGrabber grabber = new OpenCVFrameGrabber(0);grabber.setImageHeight(1024);grabber.setImageWidth(1024);grabber.start();IplImage grabbedImage = grabber.grab();CvMemStorage storage = CvMemStorage.create();FFmpegFrameRecorder recorder = new FFmpegFrameRecorder("rtp://192.168.1.2:15000", grabber.getImageWidth(), grabber.getImageHeight());recorder.setVideoCodec(13);recorder.setFormat("flv");recorder.setPixelFormat(avutil.PIX_FMT_YUV420P);recorder.setFrameRate(30);recorder.setVideoBitrate(10 * 1024 * 1024);recorder.start();int i = 0;while (frame.isVisible() && (grabbedImage = grabber.grab()) != null) {System.out.println("(" + i++ + ") Invio. . .");frame.showImage(grabbedImage);recorder.record(grabbedImage);}cvClearMemStorage(storage);recorder.stop();grabber.stop();frame.dispose();}private static void cvClearMemStorage(CvMemStorage storage) {}}
...webCam.start();grabbedImage = webCam.grab();...stream = new FFmpegFrameRecorder("rtp://192.168.1.2:8086", 640, 480);stream.setVideoBitrate(716800);stream. setPixelFormat(PIX_FMT_YUV420P);stream. setVideoCodec(AV_CODEC_ID_H264);stream. setFrameRate(30);stream. setProfile("high444");stream. setPreset("ultrafast");stream. setFormat("h264");...stream.start();...frameWebCam.showImage(grabbedImage);stream.record(grabbedImage); }...stream.stop();webCam.stop();
FFmpegFrameGrabber stream= new FFmpegFrameGrabber("rtp://192.168.1.2:8086");
stream.setFormat("h264");
...
stream.start();