我有一堆图像文件,需要在 Windows 中将其大小调整为 1920x1080px。
文件很多,而且顺序不完整。 例子: name_0000.png name_0001.png name_0038.png name_1234.png
我尝试过这个:
ffmpeg -i "name_%4d.png" -vf scale="1920:1080" "fixed_%4d.png"
这对于前两个文件非常有用,它们是按顺序排列的,但不会处理超出此范围的任何文件。
所以我尝试了:
ffmpeg -pattern_type glob -i "name_*.png" -vf scale="1920:1080" "fixed_%4d.png"
但是如果给我错误:
"Pattern type 'glob' was selected but globbing is not supported by this libavformat build"
我还尝试将 png 文件的列表创建到文本文件中,并使用以下命令:
ffmpeg -f concat -i files.txt -vf scale=1920:1080 "fixed_%04d.png"
这会将所有固定图像按顺序重命名,这对我不起作用。我需要保留原始文件名编号。
如何轻松批量调整这些文件的大小?有没有办法改变 libavformat 编码器以便通配工作?
经过不断的尝试,我找到了最简单的解决方案。对我来说,就是安装 WSL,然后在图像目录中按住 Shift 键并右键单击,选择“在此处打开 Linux Shell”,然后在 WSL 终端中使用此命令:
安装ffmpeg:
sudo add-apt-repository ppa:mc3man/trusty-media
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install ffmpeg
运行此命令:
for file in name_*.png; do
ffmpeg -i "$file" -vf scale=1920:1080 "fixed_${file##*_}"
done