Roberto Ranon
Sistemi Multimediali e Laboratorio
Esercitazione 27/04/2015
La libreria Video permette di riprodurre e visualizzare dei video con Processing, catturare l’output di una
videocamera, e creare dei video da un programma in esecuzione. La classe Movie permette di lavorare con
filmati in formato Quicktime. Ad esempio, lo sketch seguente carica un video, lo visualizza in loop, mostrando ad
ogni esecuzione della funzione draw un nuovo frame.
Nota: se avete una webcam, potete usare nella maggior parte di questi esercizi la classe Capture (http://
processing.org/reference/libraries/video/Capture.html) anziché la classe Movie, e lavorare con filmati
direttamente acquisiti dalla webcam.
import processing.video.*;
Movie movie; // Step 1. Declare Movie object
void setup() {
size(320,240);
// Step 2. Initialize Movie object
movie = new Movie(this, "cat.mov"); // Movie file should be in data folder
// Step 3. Start movie playing
movie.loop();
}
void draw() {
// Step 4. Read new frames from movie
if ( movie.available())
movie.read();
// Step 5. Display movie.
image(movie,0,0);
}
Esercizio 1 (video scrubbing)
Il metodo duration() di Movie
ritorna la durata del filmato in secondi.
(http://processing.org/reference/libraries/video/Movie_duration_.html)
Il metodo jump(t) (http://processing.org/reference/libraries/video/Movie_jump_.html) di Movie salta al
secondo t nel filmato.
Modificate l’esercizio precedente in modo che la posizione x del mouse permetta lo scrubbing del video
(ovvero, se mouseX = 0, visualizza il primo frame, se mouseX=width, visualizza l’ultimo frame, e visualizza il
frame corrispondente del video per valori di mouseX intermedi).
Esercizio 2 (video frames)
Costruite uno sketch che carichi un video e mostri in una griglia i
primi n frames, mostrando il primo all’esecuzione del programma, e
aggiungendone uno ad ogni chiamata della funzione draw().
Scrivete il programma in modo che, una volta impostato n, il
programma adatti la dimensione dei singoli frame in modo che
siano tutti visualizzati e riempiano il più possibile la finestra.
Esercizio 3 (video summary)
Modificate il programma precedente in modo che visualizzi n frame, ognuno distante un intervallo temporale
pari a movie.duration()/n dal precedente (il primo frame e’ quello all’istante iniziale).
Esercizio 4 (costruire un video da uno sketch processing)
Il metodo saveFrame (http://processing.org/reference/saveFrame_.html) salva una sequenza numerata di
immagini, una per ogni chiamata della funzione. Se la funzione viene chiamata come ultima operazione della
funzione draw(), allora dopo l’esecuzione di uno sketch avremo sul disco un’immagine per ogni frame
visualizzato. Riprendete uno sketch con animazioni realizzato in qualche esercitazione precedente (ad esempio,
uno che utilizzi un particle system), e aggiungete la funzione saveFrame per salvare su disco i frame di
un’esecuzione. Poi, utilizzate lo strumento MovieMaker (accessibile all’interno di Processing dal menu Tools /
Strumenti) per creare un filmato dello sketch. Aggiungete anche una colonna sonora.
Esercizio 5
Costruite un sketch che carichi un video e lo visualizzi, implementando un effetto di video pixelation simile a
quello della figura qui sotto. Suggerimento: come forse avrete notato, dopo l’operazione read(), potete
trattare l’oggetto Movie come fosse un’immagine, ed accedere quindi ai singoli pixel.
Scarica

Roberto Ranon Sistemi Multimediali e Laboratorio Esercitazione 27