ffmpeg:批量调整非顺序图像的大小

问题描述 投票:0回答:1

我有一堆图像文件,需要在 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 编码器以便通配工作?

image ffmpeg glob
1个回答
0
投票

经过不断的尝试,我找到了最简单的解决方案。对我来说,就是安装 WSL,然后在图像目录中按住 Shift 键并右键单击,选择“在此处打开 Linux Shell”,然后在 WSL 终端中使用此命令:

  1. 安装ffmpeg:

    sudo add-apt-repository ppa:mc3man/trusty-media

    sudo apt-get update

    sudo apt-get dist-upgrade

    sudo apt-get install ffmpeg

  2. 运行此命令:

    for file in name_*.png; do

    ffmpeg -i "$file" -vf scale=1920:1080 "fixed_${file##*_}"

    done

© www.soinside.com 2019 - 2024. All rights reserved.