我正在制作一个视频游戏中时光倒流。我拍摄的所有照片都是以 4:3 纵横比拍摄的 .jpg 图像。2592x1944 分辨率。我希望它们在 1920x1080 时都是 16:9。
我已经编写了一个小脚本来执行此操作,但过程不是很快。我花了大约 17 分钟裁剪和调整 750 张图像的大小。我总共要处理大约 300,000 个,并且可能会分批处理大约 50,000 个。即每批 18 小时 45 分钟,计算总时间超过 4.5 天。
那么有谁知道我可以加快这个程序的方法吗?
这是我编写的 bash 脚本:
#!/bin/bash
mkdir cropped
for f in *.JPG
do
convert $f -resize 1920x1440 -set filename:name '%t' cropped/'%[filename:name].JPG' #Resize Photo, maintain aspect ratio
convert cropped/$f -crop 1920x1080+0+$1 -set filename:name '%t' cropped/'%[filename:name].JPG' #Crop to 16:9 aspect ratio, takes in $1 argument for where to begin crop
done
echo Cropping Complete!
在循环中的每一行之前和之后放置一些 echo 命令表明调整大小比裁剪需要更多的时间,我想这并不奇怪。我尝试过使用mogrify -path cropped -resize 1920x1440! $f
代替,convert $f -resize
但速度似乎没有太大差异。
那么,有什么方法可以加快运行时间吗?
如果您可以向我展示一种简单的方法来简单地指示程序运行的进度(例如“750 个文件中的 421 个,完成 56.13%”),则获得奖励积分。
如果您可以添加一个命令以从每个帧中输出一个 .mp4 文件,该文件可以在 SONY Vegas 等软件程序中进行编辑,则可以获得额外奖励积分。我已经设法从这些照片中使用 mencoder 制作视频文件 (.avi),但生成的视频在我尝试过的任何视频编辑器中都不起作用。