opencv 备份类

Read:

package org.example;

import org.bytedeco.javacv.CanvasFrame;
import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.bytedeco.javacv.Frame;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;

public class Read {
    private  String filename;
    private int dk;
    private String wz;

    public Read(String filename){
        this.filename=filename;
    }
    public Read(String url,int dk){
        wz=url;
        this.dk=dk;
    }
    public void readdev() throws FFmpegFrameGrabber.Exception {                              //读摄像头/dev/video0
        readfile();
    }
    public void readsocket() throws IOException {                                            //读socket输入
        Socket socket=new Socket(wz,dk);
        InputStream is=socket.getInputStream();
        FFmpegFrameGrabber grabber=new FFmpegFrameGrabber(is);
        grabber.start();
        CanvasFrame canvas = new CanvasFrame("wz");//新建一个预览窗口
        canvas.setCanvasSize(600,600);
        Frame frame=null;
        while((frame = grabber.grab()) != null){
            canvas.showImage(frame);
        }
        grabber.stop();
    }
    public void  readfile() throws FFmpegFrameGrabber.Exception {                               //读单个文件
        FFmpegFrameGrabber grabber=new FFmpegFrameGrabber(filename);
        grabber.start();
        CanvasFrame canvas = new CanvasFrame("wz");//新建一个预览窗口
        canvas.setCanvasSize(600,600);
        Frame frame=null;
        while((frame = grabber.grab()) != null){
            canvas.showImage(frame);
        }
        grabber.stop();
    }
    public  void  readAllfiles() throws FFmpegFrameGrabber.Exception {                           //读目录下所有分ts文件
        int t = 0;
    //    String path = "/home/wzpad/1/ts/a.";
        String path=filename;
        String wj = path + "a."+Integer.toString(t) + ".ts";
        File file=new File(wj);
        Frame frame=null;
        CanvasFrame canvas = new CanvasFrame("摄像头预览");//新建一个预览窗口
        canvas.setCanvasSize(600,600);
       while(true){
            while (!file.exists()) {
                ;
            }
            FFmpegFrameGrabber grabber=new FFmpegFrameGrabber(wj);
            grabber.start();

           while( (frame = grabber.grab()) != null) {
               canvas.showImage(frame);
           }
           grabber.stop();

           t++;
            wj = path + Integer.toString(t) + ".ts";
            file = new File(wj);
        }
    }
}

Write:

package org.example;

import org.bytedeco.ffmpeg.global.avcodec;
import org.bytedeco.ffmpeg.global.avutil;
import org.bytedeco.javacv.*;
import java.io.OutputStream;
public class Writer {
    static boolean isrun;
    static int t=0;
    private String dev;
    private  String filename;
    private  OutputStream outputStream;

    public Writer(String dev, OutputStream outputStream,boolean isrun){
        this.dev=dev;
        this.outputStream=outputStream;
        this.isrun=isrun;
    }

   public Writer(String dev,String filename,boolean isrun){
       this.dev=dev;
       this.filename=filename;
       this.isrun=isrun;
   };
    public void Writerdevoutput() throws FFmpegFrameGrabber.Exception, FFmpegFrameRecorder.Exception {          //摄像头到outpurstream
        FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(dev);
        grabber.start();
        FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(outputStream, 400, 300);
        recorder.setFormat("mov");
         recorder.start();

        System.out.println("start");
        Frame frame = null;
        while (isrun&&(!(frame=grabber.grab()).equals(null))) {
            recorder.record(frame);
        }
        grabber.stop();
        recorder.stop();
        System.out.println("over");
    }
    
    public void writedevtofile() throws FrameGrabber.Exception, FFmpegFrameRecorder.Exception {                 //摄像头到文件
        FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(dev);
    //    OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(1);
        grabber.start();
        FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(filename, 400, 300);
        recorder.setVideoCodec(avcodec.AV_CODEC_ID_MPEG4); // 13

        recorder.start();
        System.out.println("start");
        Frame frame = null;
            while (isrun&&(!(frame=grabber.grab()).equals(null))) {
                recorder.record(frame);
            }
            grabber.stop();
            recorder.stop();
            System.out.println("over");
        }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值