Windows 10 是否支持 Pattern_Type Glob 或其他 *.JPG 通配符输入文件?

Windows 10 是否支持 Pattern_Type Glob 或其他 *.JPG 通配符输入文件?

我正在使用 Windows 10,其中“ffmpeg 版本 4.4-full_build-www.gyan.dev 版权所有 (c) 2000-2021 FFmpeg 开发人员使用 gcc 10.2.0 构建(Rev6,由 MSYS2 项目构建)”。

我正在编写一个命令行脚本,该脚本将从包含数十或数百张 JPG 和/或 PNG 图像的多个文件夹中创建基本的幻灯片 MP4 视频。这些图像来自数码相机/智能手机或扫描照片(通常为 600 dpi)。

到目前为止,我已经成功使用该命令对 9 个 JPG 文件的小测试组进行了测试:

ffmpeg -framerate 1/2 -i test%%1d.jpg -filter_complex "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:-1:-1:color=black,format=yuv420p" -r 30 -movflags +faststart output-1280-720.mp4

该命令行运行完美,并以正确的方向和正确的纵横比呈现我的 JPG。

只剩下一个问题……我的输入文件选择需要更灵活的“*.JPG”通配符语法,因为我有数万张图像(超过 1900 个文件夹中的 52K 张图像),这些图像的命名约定多种多样,无法匹配简单的 1、2 或 3 位数字序列。在某些情况下,图像只是随机命名,并按文件名的字母顺序简单排序。

我尝试了两个不成功的选项来提供“*.jpg”通配符功能......

选项 #1(文件名的文本文件):

ffmpeg -framerate 1/2 -f concat -safe 0 -i "Test-ffmpeg.Txt" -filter_complex "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:-1:-1:color=black,format=yuv420p" -r 30 -movflags +faststart output.mp4

我尝试使用以下语法创建输入文件列表:-f concat -safe 0 -i“Test-ffmpeg.Txt”,但当我运行该命令时,出现“未找到选项帧速率”致命错误

我可以使用具有这组特定编码和处理选项的输入文本文件吗?

选项 #2 (Pattern_Type glob):

ffmpeg -framerate 1/2 -pattern_type glob -i "*.jpg" -filter_complex "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:-1:-1:color=black,format=yuv420p" -r 30 -movflags +faststart output-1280-720.mp4

如果我尝试使用 -pattern_type glob -i "*.jpg",我会收到此致命错误消息“选择了模式类型‘glob’,但此 libavformat 版本不支持通配符。*.jpg:功能未实现”

是否有在 Windows 平台上提供 glob 支持的 FFmpeg 版本(或许可证)?我当然愿意为此付费。或者,在没有 glob 通配符支持的情况下,是否有办法实现“*.jpg”通配符语法?

谢谢你,

标记

答案1

使用 concat demuxer 方法,使用 setpts 过滤器而不是 -framerate 来控制时间。

使用

ffmpeg -reinit_filter 0 -f concat -safe 0 -i "Test-ffmpeg.Txt" -vf "scale=1280:720:force_original_aspect_ratio=decrease:eval=frame,pad=1280:720:-1:-1:color=black:eval=frame,settb=AVTB,setpts=2*N/TB,format=yuv420p" -r 30 -movflags +faststart output.mp4

相关内容