Tècniques de video

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

Stop Motion

c=0;
for i in *.JPG;
do mv "$i" "`printf %05d $c`.JPG";
c=$((c+1));
done
for i in *.JPG;
do convert "$i" -resize 1350x900 -normalize "$i";
done
ffmpeg -r 10 -b 1800 -i %05d.JPG output.mp4

el bitrate de 1800 (-b 1800) dóna una qualitat baixa però el fitxer resultat és baix. Per millorar la qualitat puc utilitzar -sameq:

ffmpeg -r 10 -sameq -i %05d.JPG output.mp4

Les imatges de la Canon ESO 550D a màxima resolució és:

per adaptar-ho a la meva pantalla de l'ordinador: 1350/900=1,5


Notes:

per agafar un so de tren:

em registro a la web: joanillo/jq****

Finalment el resultat de la primera prova: el tren del Pere:

i la segona prova és l'excavadora:

chroma-key

He fet proves, funciona bé, no és difícil. Ara bé, el fons verd (o d'un altre color) ha de ser sense ombres, i per tant es fa necessari treballar amb iluminació artificial per tal de què no hi hagi ombres.

Slow motion, càmera lenta

Tinc gravada la caiguda d'unes peces de fusta (gravat amb la Canon EOS 550 a 1280x720 i 50fps). Vull fer càmera lenta.

Amb el Openshot: és molt còmode, tot i que hi ha un bug (versió 1.2.2). Selecciono el fragment, botó dret -> propietats, pestanya Velocitat. Selecciono per exemple 1/8 (0.125). El problema està en què no s'allaga en el temps el fragment i per tant, queda retallat. He d'anar a pestanya Durada, i clico sobre la fletxa cap amunt de Fora (mantinc pitjat), i se m'aturarà en el segon d'allà on s'acava el clip. Una mica cutre, però funciona.

Directament amb ffmpeg.

$ ffmpeg -i MVI_3219.MOV 
...
  Duration: 00:00:07.38, start: 0.000000, bitrate: 47855 kb/s
    Stream #0.0(eng): Video: h264, yuv420p, 1280x720, 46312 kb/s, 50 fps, 50 tbr, 50k tbn, 100k tbc
...

Veig que efectivament és un video de 7 seg gravat a 50fps, amb resolució 1280x720

Podria convertir el vidoe a 20fps, però això no és càmera lenta (continua durant 7 segons). Senzillament m'estic menjant frames:

$ ffmpeg -i MVI_3219.MOV -sameq -r 20 output_20.MOV

  Duration: 00:00:07.40, start: 0.000000, bitrate: 6259 kb/s
    Stream #0.0(eng): Video: mpeg4, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 6203 kb/s, 20 fps, 20 tbr, 20 tbn, 20 tbc

Això sí, com que estic a 20fps la qualitat no és dolenta, continua veient-se bé. Una altra cosa és provar amb 5fps.

El que jo vull és allargar la durada del video, i no menjar-me cap frame, aprofitar tota la informació que tinc. (el Openshot ho fa bé).

The "ffmpeg -r <rate>" option will set the target framerate, but keeps the duration. So it adds frames or removes frames, but does not speed up or slow down the video. Similar for mencoder "-ofps".

Diu que mencoder en línia de comanda sí que té l'opció sleep.

Una possibilitat seria extreure totes les imatges del video, i tornar a composar el video a la velocitat que jo vull:

ffmpeg -i MVI_3219.MOV -r 50 -s 1280x720 -f image2 foo-%03d.jpeg

He obtingu 369 fotos, que és lo correcte: 7,38sec*50 frames/sec = 369 (tinc tota la informació del video en la meva col.lecció de fotos).

I ara recombino:

ffmpeg -i foo-%03d.jpeg -r 20 -s 1280x720 -sameq output_20.avi

I sembla que ho fa bé (però no!!). És un video de 14,75 sec (i hauria de ser 18,45 sec...). No ho fa bé perquè utilitzant -r 10 torna a donar 14 sec, i amb qualsevol altra prova també...

La solució la he trobat de

$ ffmpeg -i MVI_3219.MOV -f rawvideo -sameq -s 1280x720 - | \
ffmpeg -f rawvideo -r 10 -sameq -s 1280x720 -i - output_10.MOV

i ho fa molt bé, doncs fa una mena d'interpolació que fa que sigui un slow motion molt suau. (ho he provat amb 10fps i 5fps)

Reanomenar les imatges al revés

Quan vull fer el stop motion del puzzle, tinc el puzzle muntat, i vaig fent les fotos mentre el desmunto. Per tant, la primera foto ha de ser la última, i la última la primera. Per reanomenar les fotos en l'ordre invers es pot fer servir aquest senzill script: reverse.sh

#!/bin/bash
#rename files in reverse
START=99999 #allows for an hour of jpegs
i=$START
for f in *.JPG
do
mv $f $i.JPG
i=$(($i -1))
echo $i
done

Time Lapse. Intervalòmetre amb el 555

Provaré el següent esquema que trobo de l'anterior enllaç:

Intervalometre 555.jpg

Com veiem en el datasheet (pag 8), l'esquema que vull implementar és el mode astable tal com està definit en la pàgina 8. (genera pulsos a intervals que es pot regular amb el potenciòmetre).

La fórmula per calcular el periode i la freqüència està en el datasheet:

T = 0.693*(Ra +2Rb)C

Ra és la resistència sèrie formada pel potenciòmetre + 560ohm. Per tant, veig que si vull incrementar el periode fins a l'ordre de 1 hora he d'agafar un potenciòmetre de bastanta resistència.

El circuit ha funcionat. La única cosa que he d'investigar és que quan tanca el relé no es torni a obrir immediatament, sinó estudiar la possibilitat de què hi hagi un petit retràs.

La solució està en el datasheet. El temps de descàrrega és:

T = 0.693*Rb*C

i per tant he de fer la resistència entre els pins 6 i 7 més grossa. Per a 1uF:

Rb=5.6K -> T=0.693*5.6k*10-6 = 0,0038seg
Rb=100K -> T=0.693*100k*10-6 = 0,0693seg
Rb=1M -> T=0.693*1000k*10-6 = 0,693seg


Una altra possibilitat basada en el Atmega168/arduino seria:

En aquest projecte és interessant perquè s'utilitza un laser cutter (70 Watt Epilog laser cutter).



creat per Joan Quintana Compte, març 2011, octubre 2011, gener 2013

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
IES Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines