FFmpeg 帧率设置
看我搓个雪球_咻---
编辑于 2023年06月19日 18:58

1、参数含义

众所周知,ffmpeg设置帧率的方式为:

代码块
JavaScript
自动换行
复制代码
ffmpeg -r [帧率]
复制成功

但输入和输出均具有该参数,即具体形式为:

代码块
Shell
自动换行
复制代码
ffmpeg -r [输入帧率] -i [输入文件路径] -r [输出帧率] [输出文件路径]

# 输出视频时长= 图片数量/输入帧率 
# 输出视频帧率= 输出帧率
复制成功

当输入文件为视频时,输入帧率自动识别。

当输入文件为图片时,输入帧率默认为25,可指定具体值。

2、参数大小关系

1)输入帧率大于输出帧率,例如:

代码块
Shell
自动换行
复制代码
>ffmpeg -r 60 -i jpg/%d.jpg -r 5 ying05.mp4 -y
复制成功

由于输入帧数量大于输出帧数量,多余的帧将被丢弃,表现为ffmpeg的输出中drop参数持续增大。

输入帧率大于输出帧率的输出信息

2)输入帧率小于输出帧率,例如:

代码块
Shell
自动换行
复制代码
>ffmpeg -r 06 -i jpg/%d.jpg -r 60 ying06_60.mp4 -y
复制成功

由于输入帧数量小于输出帧数量,不足的帧将以重复帧补全,表现为ffmpeg的输出中dup参数持续增大,且可能出现  More than 1000 frames duplicated 的警告。

输入帧率小于输出帧率的输出信息

(3)输入帧率等于输出帧率,例如:

代码块
Shell
自动换行
复制代码
>ffmpeg -r 60 -i jpg/%d.jpg -r 60 ying60_60.mp4 -y
复制成功

ffmpeg的输出中dup参数和drop均保持不变,且为0或1。

输入帧率等于输出帧率的输出信息

此时可以简单地仅指定输入帧率,例如:

代码块
Shell
自动换行
复制代码
>ffmpeg -r 60 -i jpg/%d.jpg ying60_xx.mp4 -y
复制成功