⊥ Ź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