限制输入时长,同时提高直播流的帧速率

限制输入时长,同时提高直播流的帧速率

我正在捕获实时流并通过调整输入输出帧速率来生成加速输出:

ffmpeg -r 1000 -i rtsp://url -r 60 -y output.mp4

这将按预期生成加速的视频。

现在我只想捕捉最初的 10 分钟输入溪流。

因此我尝试-t 600在输入前加上:

ffmpeg -t 600 -r 1000 -i rtsp://url -r 60 -y output.mp4

但这会产生 10 分钟输出

由于这是一段(相当)加速的视频,10分钟输入我希望输出成为~<1 分钟

输入流是可变帧速率的,所以我不确定输出的确切持续时间。

我究竟做错了什么?

  • 在输入之前不-t 600告诉 ffmpeg 只占用 10 分钟输入

    按照FFMpeg 文档

    • -t duration (输入输出)
      • 当用作输入选项(于我之前),
        • 限制从输入文件读取的数据的持续时间。
        • 例如ffmpeg-t 5-i input.mp3 testAsInput.mp3
          • 5秒后自动停止书写
  • 操纵帧速率是否会以某种方式干扰上述操作?

  • 还有其他方法可以告诉 ffmpeg 仅花费 10 分钟的输入(同时仍加快输出速度)吗?

答案1

啊,我应该使用setpts滤镜而不是弄乱帧速率。这有效:

ffmpeg -i rtsp://url -vf="setpts=PTS/100" -r 60 -y output.mp4

相关内容