以更高的 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 (将#修改为@)