首页 > 解决方案 > 以更高的 FPS 重新流式传输 RTSP

问题描述

我的 RTSP 流具有非常低且非恒定的 FPS(在 0.2 ... 0.5 之间变化)。它是使用-skip_frameflag 生成的,以尽可能减少网络和 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 帧,我的重新流命令(可能)执行以下操作:

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

标签: ffmpegvideo-streamingvideo-processingrtspframe-rate

解决方案


推荐阅读