悄摸直播 —— JavaCV實現本機攝像頭畫面遠程直播html
/** * 播流器 * @param inputPath rtmp服務器地址 * @throws Exception * @throws org.bytedeco.javacv.FrameRecorder.Exception */ public static void pullStream(String inputPath) throws Exception, org.bytedeco.javacv.FrameRecorder.Exception { //建立+設置採集器 FFmpegFrameGrabber grabber = FFmpegFrameGrabber.createDefault(inputPath); grabber.setOption("rtsp_transport", "tcp"); grabber.setImageWidth(960); grabber.setImageHeight(540); //開啓採集器 grabber.start(); //直播播放窗口 CanvasFrame canvasFrame = new CanvasFrame("悄摸直播——來自"+inputPath); canvasFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); canvasFrame.setAlwaysOnTop(true); OpenCVFrameConverter.ToMat converter = new OpenCVFrameConverter.ToMat(); //播流 while (true){ Frame frame = grabber.grabImage(); //拉流 opencv_core.Mat mat = converter.convertToMat(frame); canvasFrame.showImage(frame); //播放 } }
public static void main(String[] args) throws Exception, org.bytedeco.javacv.FrameRecorder.Exception { //rtmp服務器地址 String inputPath = "rtmp://192.168.1.48/live/stream"; pullStream(inputPath); }
若是出現「悄摸直播——來自XXX」的swing窗口,並能正常播放直播畫面,則播流器成功。java