[bash]
#!/bin/sh
for image in *.png;
do
convert $image -matte -virtual-pixel transparent \
-distort Perspective \
‘60,90 0,0 50,415 0,720 582,418 1280,720 589,147 1280,0’ \
p_$image
done
[/bash]
Now I have images in the format p_00000001.png to p_00007563.png. Because PNG is a lossless format, the perspective lost less information in this step than it would if step 2 was outputting jpgs.
Step 5) Convert frames to jpgs using ImageMagick and ShellScript.
[bash]
#!/bin/sh
for image in p_*.png;
do
convert $image "${image/.png/}.jpg"
done
[/bash]
Where “${image/.png/}.jpg” removes the .png in the image string.
Ps: this step is not really necessary as you could use png as input to ffmpeg.
‘%08d.jpg’ means a 8 digits filled with zeros in the left followed by .jpg, in this case 00000001.jpg to 00007563.jpg.
With this, I have the output.mp4 video ready to upload.
The whole process took several hours and a total 13GiB, although the final video has only 96 MiB. This could be optimized using pipelines and parallelism if it was needed to repeat the process.
Stereo photo taken using a Nintendo 3DS XL. As browsers don’t support MPO files yet, I had to split the file into two JPGEs, then manually align and convert to animated gif using GIMP.
“The obsolescence of an implementation must be measured against other existing implementations, not against unrealized concepts.” The Mythical Man-month – Essays on Software Engineering. Freederick P. Brooks, Jr.