微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

以更高的 FPS 重新流式传输 RTSP

如何解决以更高的 FPS 重新流式传输 RTSP

我的 RTSP 流的 FPS 非常低且非常不稳定(在 0.2 ... 0.5 之间变化)。它是使用 -skip_frame 标志生成的,以尽可能减少网络和 cpu 使用率:

ffmpeg -skip_frame nointra -i <rtsp-source> -vsync 2 -f rtsp <low-fps-destination>

因此,连接到该流并看到第一个有意义的图像需要很长时间(1 ... 3 分钟)。我希望这个流可以在没有任何调整的情况下与通用播放器一起使用,所以我决定以更高的 FPS(准确地说是 10)重新播放它:

ffmpeg -i <low-fps-source> -vf "fps=fps=10,setpts=N/(10*TB)" -f rtsp <normal-fps-destination>

不完全确定该命令是如何工作的,但它以某种方式成功并将连接时间减少到大约 5 秒。但是,我怀疑它以突发方式输出帧,这并不理想。例如,如果原始低 fps 流包含相隔 3 秒的 2 帧,我的重新流命令(可能)执行以下操作:

  • 当第一个输入帧到来时,尽可能快地输出一堆帧
  • 整整 3 秒内不要输出任何内容
  • 当第二帧到来时,尽可能快地输出 3 * 10 = 30 帧
  • 再次休眠,直到出现新的输入框...

有没有办法使我的重新流式传输命令输出帧均匀(具有恒定的 FPS)?或者也许有另一种方法可以减少 RTSP 连接(缓冲?)时间?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。