【问题标题】:ffmpeg speed up video from 25 to 60 fps dropping framesffmpeg 将视频从 25 fps 加速到 60 fps 丢帧
【发布时间】:2021-11-10 12:29:19
【问题描述】:

我正在尝试将视频从 25 fps 加速到 60 fps。我想要完全相同的帧数,只是更快地呈现给我,并且每秒可以得到 60 帧。

ffmpeg -i Spider.mov -r 62500/1000 -filter:v "setpts=PTS*0.4" -c:v libx264 Spider4k60.mov

这有效,不会丢弃或复制任何帧。但我的播放器不会达到 62.5 fps。

但是当我尝试时:

 ffmpeg -i Spider.mov -r 60 -filter:v "setpts=PTS/2.4" -c:v libx264 -y Spider4k60.mov

即使这是正确的分数 (60/25=2.4),我每秒也会丢掉一帧和一帧重复。

同样:

 ffmpeg -i Spider.mov -r 60 -filter:v "setpts=PTS*0.416666666667" -c:v libx264 -y Spider4k60.mov

给我同样的。

有什么想法吗?我认为 PTS/2.4 将是正确的解决方案。

【问题讨论】:

    标签: ffmpeg


    【解决方案1】:

    时间戳以timebase 命名,这是时钟保持刻度。

    setpts 将分配与流时基中可能的表达式值最接近的值。像这里一样压缩时间戳时,请确保使用 settb 过滤器可以获得足够的分辨率。

    对于 25 和 60,300 是 LCM,但让我们选择更高的值,例如 6000。

    -filter:v "settb=1/6000,setpts=PTS/2.4"
    

    如果您的视频是恒定帧速率,这将满足您的需求。如果是 VFR,-r 60 可能仍会导致丢帧/复制帧。为此添加-vsync vfr。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-13
      • 1970-01-01
      • 2021-06-02
      相关资源
      最近更新 更多