Gstreamer 如何为RTSP服务器添加缓冲区?

Gstreamer 如何为RTSP服务器添加缓冲区?,gstreamer,python-gstreamer,Gstreamer,Python Gstreamer,我正在尝试创建以下管道: Jetson上的: 1.1)摄像头->…->udpsink 1.2)udpsrc->rtspserver 主机PC上的 2.1)rtspsrc->jitterbuffer->detection->tracker->analytics 主要问题是 MyJetson通过本地WiFi网络连接到主机PC。我选择了mesh WiFi Tenda Nova MW3。当Jetson从一个WiFi接入点重新连接到另一个WiFi接入点时,我丢失了一些帧(从0.5秒到10秒的流)。据我所知

我正在尝试创建以下管道:

Jetson上的

1.1)摄像头->…->udpsink 1.2)udpsrc->rtspserver

主机PC上的

2.1)rtspsrc->jitterbuffer->detection->tracker->analytics

主要问题是 MyJetson通过本地WiFi网络连接到主机PC
。我选择了mesh WiFi Tenda Nova MW3。当Jetson从一个WiFi接入点重新连接到另一个WiFi接入点时,我丢失了一些帧(从0.5秒到10秒的流)。据我所知,我们无法获得理想的无缝WiFi网络,在重新连接过程中,系统将“丢失一些帧”

我尝试在udpsrc和udpsink上设置缓冲区,我尝试在rtspsrc上设置重新传输,但没有成功,或者可能是我做错了

  • 如何在RTSP服务器中设置缓冲区,以便在重新连接到另一个WiFi点时将帧保留在Jetson客户端上,并继续将帧从最后一个点发送到主机PC
  • 我应该在udpsink、udpsrc或rtspserver上设置缓冲区吗
  • 如何配置rtpsrc以从“丢失的时间”发送帧
  • 我丢失了一些帧(从0.5秒到10秒的流)

    可能是因为主机管道中的解码器错过了I帧,应该等待下一个I帧,0.5~10s取决于GOP中的第一帧位置(GOP可以通过编码器属性更改)

  • 您可以使用rtmp服务器代替rtsp,这是一个不错的选择,并且可以打开gop缓存。管道将成为摄像头->编码器->flvmux->rtmpsink

     vhost __defaultVhost__ {
         gop_cache       on;
     }
    
  • 启用gop缓存时,延迟将增加,因此编码器的gop不应太大,可能是2s良好

  • 主机pc上的管道可能会接收在重新连接wifi之前处理过的视频数据,并且与禁用gop相比,延迟更大。如果其中一个计数,则应在解码后删除过期帧

  • 我丢失了一些帧(从0.5秒到10秒的流)

    可能是因为主机管道中的解码器错过了I帧,应该等待下一个I帧,0.5~10s取决于GOP中的第一帧位置(GOP可以通过编码器属性更改)

  • 您可以使用rtmp服务器代替rtsp,这是一个不错的选择,并且可以打开gop缓存。管道将成为摄像头->编码器->flvmux->rtmpsink

     vhost __defaultVhost__ {
         gop_cache       on;
     }
    
  • 启用gop缓存时,延迟将增加,因此编码器的gop不应太大,可能是2s良好

  • 主机pc上的管道可能会接收在重新连接wifi之前处理过的视频数据,并且与禁用gop相比,延迟更大。如果其中一个计数,则应在解码后删除过期帧