因文件大小

时间:2016-10-22 15:56:47

标签: video size processing

我正在处理10videos视频。 它正在使用arduino.Serial。 我早期测试的文件很小(每个都不到50MB。大约400MB) 代码工作得很好......但.. 当我使用一个大文件大小(每个超过50MB。大约1GB。特别是两个文件大约300MB)时,该程序不起作用。

视频效果很好......但是当我按下按键时。它没有用。 例如,我将z,x,c,v设置为speed; z:1,0 speed,x:2.0 c:3.0 v:4.0。当我玩小尺寸的文件时,它运作良好。但是对于大尺寸的文件,它不起作用。

你知道如何处理超过100MB的视频吗?

我附上没有arduino序列码的代码。

  import ddf.minim.*;
  import processing.video.*;

  Minim minim = new Minim(this);
  AudioPlayer player;

  Movie earth, space;

  Movie[][] effect = new Movie[2][2];
  Ctrl ctrl;

 void setup() {
size( 1280, 720);
// frameRate(36);

// Main Movie Load
earth = new Movie( this, "earth.mp4");
space = new Movie( this, "space.mp4");

// Effect Movie Load

for ( int i = 0; i < effect.length; i++ )
{
    effect[i][0] = new Movie( this, "effect" +i+ "0.mp4"); //Up
    effect[i][1] = new Movie( this, "effect" +i+ "1.mp4"); //Down
}

// Create Ctrl Object
ctrl = new Ctrl( earth);
 }

 void draw() {


rectMode(CORNER);
ctrl.display();


if (keyPressed)
{
    //speed test
    if (key == 'z')
    {
        ctrl.setSpped( 1.0);
    }
    if (key == 'x')
    {
        ctrl.setSpped( 2.0);
    }
    if (key == 'c')
    {
        ctrl.setSpped( 3.0);
    }
    if (key == 'v')
    {
        ctrl.setSpped( 4.0);
    }

    // 
    if (key == 'q')
    {
        ctrl.changeMainMovie(true); // true > 
    }
    if (key == 'w')
    {
        ctrl.changeMainMovie(false); // false > 
    }

}
   }

 // Called every time a new frame is available to read
 void movieEvent(Movie m) {
m.read();
 }

class Ctrl {

Movie main, _effect;
PImage lastFrame;
int opacity = 0;
boolean isFadeIn = true; 
boolean ing = true, 
        isEarth = true; 

float lastTime;

Ctrl( Movie _movie ) {
    main = _movie;
    main.loop();
    main.play();
}

void setSpped( float _speed)
{
    main.speed( _speed);
}

void changeMainMovie( boolean isToSpace)
{   // Main Movie Setting


    if( isToSpace != isEarth )  return;
    if( ing == false ) return;


    lastTime = main.time(); 
    main.pause();           
    ing = false;            
    lastFrame = main;       

    if( isToSpace == true )
    {
        main = space;       
        isEarth = false;    
    }
    else                    
    {
        main = earth;       
        isEarth = true;     
    }


    main.play();            
    main.jump(lastTime);    
    main.pause();       

    // Effect Movie Setting
    if( 0 <= lastTime && lastTime <= 3) 
    {
        if( isToSpace == true )         
            _effect = effect[0][0];     
        else
            _effect = effect[0][1];     
    }

    // else if ( 3 < lastTime && lastTime <=6 )
    // {
    // }

    else
    {
        if ( isToSpace == true )
            _effect = effect[1][0];
        else
            _effect = effect[1][1];         
    }

    _effect.play();     
}

void display()
{
    if( ing == true )       
    {   
        noTint();
        image( main, 0, 0);
    }
    else                    
    {   // effect movie Play 
        if( isFadeIn == true)   
        {   // Fade In 
            noTint();
            image( lastFrame, 0, 0);
            tint(255, opacity+=5);
            image( _effect, 0, 0);


            if( _effect.time() >= 5 )
            {
                opacity = 255;
                isFadeIn = false;
            }
        }
        else
        {   // Fade Out
            noTint();
            image( main, 0, 0);
            tint( 255, opacity-=5);
            image( _effect, 0, 0);

            if( _effect.duration() - _effect.time() <= 0.1 )
            {   

                _effect.stop(); 
                opacity = 0;    
                ing = true;     
                isFadeIn = true;
                main.loop();    
                main.play();
            }       
        }
    }
}

 }

0 个答案:

没有答案