2013-05-08 3 views
1

Я пытаюсь задержать мой живой видеоматериал mjpeg на 10 секунд.Задержка видеобумаги с подачей MJPG

Я пытаюсь изменить этот код, но я не могу включить URL-адрес mjpg. . Он продолжает говорить 'Конструктор CaptureMJPEG (String, Int, Int, Int) не определено', когда я пытаюсь поставить URL в

Первоначальный сказал: захват = новый CaptureMJPEG (это, capture_xsize, capture_ysize , capture_frames);

Я изменил его на: capture = new CaptureMJPEG ("http: /url.com/feed.mjpg", capture_xsize, capture_ysize, capture_frames);

import processing.video.*; 
    import it.lilik.capturemjpeg.*; 

    Capture myCapture; 

    CaptureMJPEG capture; 
    VideoBuffer monBuff; 

    int display_xsize = 800; // display size 
    int display_ysize = 600; 

    int capture_xsize = 320; // capture size 
    int capture_ysize = 240; 

    int delay_time = 10; // delay in seconds 
    int capture_frames = 20; // capture frames per second 

    void setup() { 

     size(display_xsize,display_ysize, P3D); 

    // Warning: VideoBuffer must be initiated BEFORE capture- or movie-events start 
    monBuff = new VideoBuffer(delay_time*capture_frames, capture_xsize,capture_ysize); 
    capture = new CaptureMJPEG ("http:/url.com/feed.mjpg", capture_xsize, capture_ysize, capture_frames); 

    } 

    void captureEvent(Capture capture) { 
    capture.read(); 
    monBuff.addFrame(capture); 
    } 

    void draw() { 
     PImage bufimg = monBuff.getFrame(); 
     PImage tmpimg = createImage(bufimg.width,bufimg.height,RGB); 
     tmpimg.copy(bufimg,0,0,bufimg.width,bufimg.height,0,0,bufimg.width,bufimg.height); 
     tmpimg.resize(display_xsize,display_ysize); 
     image(tmpimg, 0, 0); 
    } 


    class VideoBuffer 
    { 
    PImage[] buffer; 

    int inputFrame = 0; 
    int outputFrame = 0; 
    int frameWidth = 0; 
    int frameHeight = 0; 

    /* 
     parameters: 

     frames - the number of frames in the buffer (fps * duration) 
     width - the width of the video 
     height - the height of the video 
    */ 
    VideoBuffer(int frames, int width, int height) 
    { 
     buffer = new PImage[frames]; 
     for(int i = 0; i < frames; i++) 
     { 
     this.buffer[i] = new PImage(width, height); 
     } 
     this.inputFrame = frames - 1; 
     this.outputFrame = 0; 
     this.frameWidth = width; 
     this.frameHeight = height; 
    } 

    // return the current "playback" frame. 
    PImage getFrame() 
    { 
     int frr; 

     if(this.outputFrame>=this.buffer.length) 
     frr = 0; 
     else 
     frr = this.outputFrame; 
     return this.buffer[frr]; 
    } 

    // Add a new frame to the buffer. 
    void addFrame(PImage frame) 
    { 
     // copy the new frame into the buffer. 
     System.arraycopy(frame.pixels, 0, this.buffer[this.inputFrame].pixels, 0, this.frameWidth * this.frameHeight); 

     // advance the input and output indexes 
     this.inputFrame++; 
     this.outputFrame++; 

     // wrap the values..  
     if(this.inputFrame >= this.buffer.length) 
     { 
     this.inputFrame = 0; 
     } 
     if(this.outputFrame >= this.buffer.length) 
     { 
     this.outputFrame = 0; 
     } 
    } 
    } 

ответ

0

Чтение ссылочные документы:

https://bytebucket.org/nolith/capturemjpeg/wiki/api/index.html

Это единственные два конструктора:

CaptureMJPEG (PApplet родитель, строка URL) Создает CaptureMJPEG без HTTP Auth верительных CaptureMJPEG (PApplet parent, String url, String username, String password) Создает CaptureMJPEG с учетными данными HTTP Auth

Таким образом, первый аргумент должен всегда указывать на экземпляр вашего апплета. Таким образом,

capture = new CaptureMJPEG (this, "http:/url.com/feed.mjpg", capture_xsize, capture_ysize, capture_frames);