【GStreamer】减小延时的参数设置、从RTP中获取时间戳
1、问题描述
在使用 GStreamer 实现 RTSP 转 RTMP 时,延时很大,2~5秒,这是为了应对网络抖动、丢包重传、音视频同步等问题,建立了一些缓冲区。
2、解决方法
在可以损失流畅度、画面质量的前提下,可以使用如下参数来减小延时
1)rtspsrc 参数:
- buffer-mode=auto:自动调整缓冲区大小
- drop-on-latency=true:缓冲区满时丢弃旧数据
- latency=0:最小化 RTSP 接收缓冲区
- do-retransmission=false:禁用 RTCP 重传请求,减少延时
2)queue 参数:
- max-size-time=100000000:设置队列最大时间为 100ms
- leaky=downstream:队列满时丢弃旧帧
3)flvmux 参数:
- latency=0:最小化 FLV 封装延迟
4)rtmpsink 参数:
- sync=false:禁用音视频同步&#x