⊥ Źródło: Video, Daniel Shiffman
VIDEO_TEST1 – odtwarzamy film w formacie “mov”
Importujemy bibliotekę: Video Autor: The Processing Foundation
Przeciągamy i upuszczamy plik “testowy.mov” na okno programu, dzięki czemu trafi on do foldera “data” w katalogu szkicu.
//VIDEO_TEST1 import processing.video.*; // Step 1. Declare a Movie object. Movie movie; void setup() { size(500,500); // Step 2. Initialize Movie object. The file "testowy.mov" should live in the data folder. movie = new Movie(this, "testowy.mov"); // Step 3. Start playing movie. To play just once play() can be used instead. movie.loop(); } // Step 4. Read new frames from the movie. void movieEvent(Movie movie) { movie.read(); } // Step 5. Display movie. void draw() { image(movie, 10, 10); }
VIDEO_TEST2 – dodajemy nieco chaosu
// VIDEO_TEST2 import processing.video.*; Movie movie; void setup() { size(500, 500); background(255); movie = new Movie(this, "testowy.mov"); println(movie.duration()); movie.loop(); } void movieEvent(Movie movie) { movie.read(); } void draw() { // Ratio of mouse X over width float ratio = random(0.05,0.95); // przypadek zmienia punkt odtwarzania filmu println(ratio); if(random(0,1)<0.1) // zmniejszam częstotliwość zmian { movie.jump(ratio * movie.duration()); } image(movie, 10, 10); }
VIDEO_TEST3 – po naciśnięciu myszki odtwarzamy losowo fragmenty filmu dodatkowo zmieniając tempo odtwarzania.
// VIDEO_TEST3 import processing.video.*; Movie myMovie; float tempo=random(0.125,1.0); float xtime=0.0; void setup() { size(500, 500); background(255); frameRate(30); myMovie = new Movie(this, "testowy.mov"); myMovie.speed(0.25); myMovie.loop(); } void draw() { if (myMovie.available()) { myMovie.read(); xtime=random(myMovie.duration()); tempo=random(0.125,1.0); } image(myMovie, 10, 10); } void mousePressed() { myMovie.speed(tempo); myMovie.jump(xtime); }
VIDEO_TEST4 – dodałem pasek, który pokazuje w którym momencie filmu jesteśmy
//VIDEO_TEST4 import processing.video.*; Movie myMovie; void setup() { size(480, 480); frameRate(30); myMovie = new Movie(this, "testowy.mov"); myMovie.play(); } void draw() { //background(255); if (myMovie.available()) { myMovie.read(); } image(myMovie, 0, 0); // Draws a line on the screen // when the movie half-finished float md = myMovie.duration(); float mt = myMovie.time(); float x = mt*width/md; strokeCap(SQUARE); strokeWeight(10); // Thicker stroke(255); line(0, height-6, x, height-6); }
MATERIAŁY DODATKOWE
Biblioteka pozwalająca eksportować rezultaty naszych działań jako plik wideo (nie sprawdziłem jeszcze):
hamoid/video_export_processing