如何在 FFMPEG 中使用通配符?

use*_*155 5 ffmpeg

假设我希望文件夹中的每个 .mp4 文件都作为输入文件。

如何做到这一点?它只读取字面意思。

bil*_*lyw 8

您正在处理视频目录,因此您可能需要使用循环。根据您的评论中的要求,以下循环会将每个匹配的文件分成十分钟的片段:

for i in *.mp4; do 
    ffmpeg -i "$i" -c copy \
    -f segment -segment_time 600 \
    -reset_timestamps 1 \
    "${i/%.mp4/_part%02d.mp4}"; 
done
Run Code Online (Sandbox Code Playgroud)

但是,如果您的输入是一个images目录,那么 image2 demuxer 允许您使用通配符。只需在非插值字符串中指定-pattern_type glob并传递您的 glob 模式-i(以便 shell 不会扩展它)。

例如,我在将 JPEG 文件目录转换为 MPEG-4 视频时执行以下操作:

ffmpeg -f image2 -pattern_type glob -i '*.jpg' output.mp4
Run Code Online (Sandbox Code Playgroud)

请注意,这完全取决于 glob 模式来确定处理匹配图像文件的顺序。