要求ffmpeg以原始帧速率提取帧

Ame*_*ina 7 ffmpeg

在ffmpeg文档(这里这里)我读到,默认情况下,FFmpeg选择以每秒25帧的速度提取帧(否则你可以使用-r选项指定帧率)

我的问题是我有一个包含数十个视频的文件夹,每个视频都以不同的帧速率录制,所以我的问题是:

有没有办法要求FFmpeg"原生"帧速率(即录制视频的原始帧速率)从视频中提取帧?

如果重要,我正在处理MP4文件

Eri*_*tis 3

要获取原始帧速率:

ffmpeg -i file.mp4 2>&1 | grep -o '[0-9]\{1,3\}\sfps'
Run Code Online (Sandbox Code Playgroud)

示例输出:

25 fps
Run Code Online (Sandbox Code Playgroud)

您可以进一步将其通过管道传输到 sed... | sed 's/\sfps//'以仅保留25,并将其存储到变量中,以便您可以使用该变量来转换视频,例如ffmpeg -r $originalFps

grep -o将提取匹配项,而不是包含匹配项的整行。

[0-9]\{1,3\} 将匹配一到三位数字

\sfps将匹配空格后跟“fps”