我想加快以下命令的速度:
convert -limit memory 64 -limit map 128 -antialias -delay 1x2 final/*.png movie.mp4
我看过其他 博客文章,其中并行和转换被一起使用,因此我想知道如何使其与上述命令配合使用。
我想加快以下命令的速度:
convert -limit memory 64 -limit map 128 -antialias -delay 1x2 final/*.png movie.mp4
parallel -j 8 convert {} -resize ... {} ::: *.png
{}
代表文件名,要处理的文件在:::
后列出。
-j
表示并行运行的作业数。
我刚刚创建了100个10,000 x 8,000像素的PNG图像,并使用顺序方式在8分钟内将它们调整为2,000 x 1,200像素大小,使用:
#!/bin/bash
for f in *.png; do
convert $f -resize 2000x1200! $f
done
然后,同样的原始图像,但采用 GNU Parallel 进行处理。
parallel convert {} -resize 2000x1200! {} ::: *.png
转化成100个PNG
图像所需时间为3分40秒。随后将这些100个PNG
图像制作成一部电影所需时间为52秒。
convert {} ... {}
命名输出与输入相同,或者你可以使用convert {} ... {.}jpg
去除和替换扩展名,例如用.jpg
代替.png
,或者你可以使用convert {} ... new/ {}
将文件写入新的子目录中。 - Mark Setchell
convert
),而GNU Parallel擅长将多个进程分布在多个CPU核心上。你有多少个PNG
文件?目前需要多长时间? - Mark Setchell