Pyramid hologram

De Wikijoan
Dreceres ràpides: navegació, cerca

Introducció

Preparatius. ffmpeg

Les opcions -strict -2 són perquè tinc un SO 12.04 que ha quedat una mica desfasat (febrer 2016)
$ ffmpeg -i in.mp4 -strict -2 out.mp4
Per mantenir la qualitat utilitzo el bitrate. Puc mirar quin era el bitrate original fent:
$ ffmpeg -i in.mp4
..-
  Duration: 00:00:07.07, start: 0.000000, bitrate: 10596 kb/s
  Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720, 10011 kb/s, SAR 65536:65536 DAR 16:9, 14.28 fps, 42.83 tbr, 90k tbn, 180k tbc (default)

$ ffmpeg -i in.mp4 -strict -2 -b 10000k out3.mp4


crop
$ ffmpeg -i in.mp4 -strict -2 -vf "crop=200:200:50:50" out2.mp4

També podem veure com queda sense haver de generar el fitxer:
ffplay -i in.mp4 -vf "crop=100:100:30:30"

rotate:
ffmpeg -i in.mp4 -strict -2 -b 10000k -vf "transpose=1" out5.mp4
ffmpeg -i in.mp4 -strict -2 -b 10000k -vf "transpose=1, transpose=1" out6.mp4

0 = 90CounterCLockwise and Vertical Flip (default)
1 = 90Clockwise
2 = 90CounterClockwise
3 = 90Clockwise and Vertical Flip

-vf "transpose=2,transpose=2" -> for 180graus

overlay:

en aquest exemple posem un video al costat de l'altre. Em funciona l'opció -filter_complex, que a l'institut no em funcionava.

ffmpeg -i in.mp4 -i out6.mp4 -strict -2 -b 10000k -filter_complex \
"[0:v]setpts=PTS-STARTPTS, pad=iw*2:ih[bg]; \
[1:v]setpts=PTS-STARTPTS[fg]; [bg][fg]overlay=w; \
amerge,pan=stereo:c0<c0+c2:c1<c1+c3" out7.mp4

Jo el que vull fer és crear un mosaic:
*https://trac.ffmpeg.org/wiki/Create%20a%20mosaic%20out%20of%20several%20input%20videos

ffmpeg -i in.mp4 -i in.mp4 -i in.mp4 -i in.mp4 -strict -2 -b 10000k -filter_complex "nullsrc=size=640x480 [base]; [0:v] setpts=PTS-STARTPTS, scale=320x240 [upperleft]; [1:v] setpts=PTS-STARTPTS, scale=320x240 [upperright]; [2:v] setpts=PTS-STARTPTS, scale=320x240 [lowerleft]; [3:v] setpts=PTS-STARTPTS, scale=320x240 [lowerright]; [base][upperleft] overlay=shortest=1 [tmp1]; [tmp1][upperright] overlay=shortest=1:x=320 [tmp2]; [tmp2][lowerleft] overlay=shortest=1:y=240 [tmp3]; [tmp3][lowerright] overlay=shortest=1:x=320:y=240" out8.mp4

Si vull que el video mantingui la proporció original de 1280x720:
ffmpeg -i in.mp4 -i in.mp4 -i in.mp4 -i in.mp4 -strict -2 -b 10000k -filter_complex "nullsrc=size=1280x720 [base]; [0:v] setpts=PTS-STARTPTS, scale=640x360 [upperleft]; [1:v] setpts=PTS-STARTPTS, scale=640x360 [upperright]; [2:v] setpts=PTS-STARTPTS, scale=640x360 [lowerleft]; [3:v] setpts=PTS-STARTPTS, scale=640x360 [lowerright]; [base][upperleft] overlay=shortest=1 [tmp1]; [tmp1][upperright] overlay=shortest=1:x=640 [tmp2]; [tmp2][lowerleft] overlay=shortest=1:y=360 [tmp3]; [tmp3][lowerright] overlay=shortest=1:x=640:y=360" out9.mp4

Anem a fer una prova de com s'ubica un video quadrat enmig d'un video més gran
Primer faig un quadrat de la imatge que m'interessa:
ffmpeg -i in.mp4 -y -strict -2 -b 10000k -vf "crop=700:700:50:50" orig1.mp4

i ara ubico aquest video al mig, i fico que la base sigui el tamany original. Però el problema és que no tinc un video de 1280x720 que serveixi de fons.
ffmpeg -i orig1.mp4 -y -strict -2 -b 10000k -filter_complex "nullsrc=size=1280x720 [base]; [0:v] setpts=PTS-STARTPTS [middle]; [base][middle] overlay=shortest=1:x=100:y=10" out10.mp4

Tinc la imatge, i la converteixo a video:
ffmpeg -loop 1 -i fons.jpg -t 8 -pix_fmt yuv420p fons.mp4

ffmpeg -i fons.mp4 -i orig1.mp4 -y -strict -2 -b 10000k -filter_complex "nullsrc=size=1280x720 [base]; [0:v] setpts=PTS-STARTPTS [fons]; [1:v] setpts=PTS-STARTPTS [middle]; [base][fons] overlay=shortest=1[tmp1];[tmp1][middle] overlay=shortest=1:x=100:y=10" out11.mp4

Crec que el truco està en ficar una imatge negra de 1280x720: fons.png

Ara anem a fer ja un pyramid hologram.

Primer faig un quadrat de la imatge que m'interessa:
ffmpeg -i in.mp4 -y -strict -2 -b 10000k -vf "crop=700:700:50:50" orig1.mp4

Ara faig les tres rotacions:
ffmpeg -i orig1.mp4 -y -strict -2 -b 10000k -vf "transpose=1" orig2.mp4
ffmpeg -i orig1.mp4 -y -strict -2 -b 10000k -vf "transpose=1, transpose=1" orig3.mp4
ffmpeg -i orig1.mp4 -y -strict -2 -b 10000k -vf "transpose=2" orig4.mp4

i ara ja poso aquests 4 videos en el seu lloc, però s'ha de fer una mica de càlculs geomètrics. La clau estarà en què els videos han de tenir negre de fons. I al fons de tot, tinc el meu video negre.


creat per Joan Quintana Compte, febrer 2016

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