最近在做流媒体,把采集到的图片处理后推送到rtmp上去,用vlc播放,发现总是有3-4s的延迟。

延迟影响因素

编码器:不同的编码器(免费或开源的),延迟也是不同的。

流媒体服务器:SRS2

流协议:比如:rtmp是实时性比较高的,http_flv也是实时性比较高的,HLS就不行了,官方说60s之内的都可以容忍……

播放器:主要是播放器的缓冲区时长,比如flash播放器的缓存时长是3s,那么一定会有3s的延时。

网络:有网络问题导致的累积延迟。

视频码率:200k和2M的码率这个比较,当然也可以归到网络原因中去。

(https://my.oschina.net/fengjihu/blog/422218)
流媒体协议 RTMP, HTTP-FLV, HLS 简单对比
在这里插入图片描述

也就是说播放器是有缓冲的,那么找到了vlc设置缓冲的办法
https://blog.csdn.net/u014029448/article/details/105300284
想想播放器为什么要缓存呢,也是为了播放流畅,防止中途网络稍微卡顿就产生视频卡顿的现象吧。
按照上述方法,发现果然打开时间缩短了,但是又发现一个问题,就是vlc除了上述所述的两个地方缓冲,其它地方应该还有,搞不明白vlc播放第一帧的条件
https://blog.csdn.net/thjwsw/article/details/108368270
我的结论跟这个类似

然后我做了个实验,关闭rtmp服务器后,vlc还继续播放了一段时间,那说明流被缓冲在vlc中了

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐