ossrs / srs-gb28181

GB28181 server based on SRS
https://ossrs.net
MIT License
83 stars 41 forks source link

海康摄像头视频码率从2048调整为3072或者更高时UDP推流会丢包严重,严重影响视频质量 #42

Open 0614050125 opened 2 years ago

0614050125 commented 2 years ago

注意:提问前,请先看FAQ(Please read FAQ before file an issue) https://github.com/ossrs/srs/issues/2716

描述(Description) 海康摄像头型号iDS-2DF8C840IXS-A/5G,视频码率从2048调整为3072或者更高时UDP推流会丢包严重,码率越高丢包率越高。导致视频花屏甚至无法播放。

描述你遇到了什么问题(Please description your issue here)

  1. SRS版本(Version): 5.0.19

  2. SRS的日志如下(Log):

    
    [2022-02-08 18:18:06.243][Trace][24346][30r3y176] gb28181: client id=34020000002000000001@34020000001320000001,  ssrc=0x2872201, peer(192.168.0.64, 15060), rtmp muxer is alive
    [2022-02-08 18:18:06.436][Trace][24346][438mt814] Hybrid cpu=2.99%,15MB, cid=1,0, timer=62,0,0, clock=0,44,4,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:50,oth:0,buf:0)
    [2022-02-08 18:18:11.436][Trace][24346][438mt814] Hybrid cpu=2.00%,15MB, cid=1,0, timer=61,0,0, clock=0,44,4,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:50,oth:0,buf:0)
    [2022-02-08 18:18:16.256][Trace][24346][30r3y176] gb28181: client id=34020000002000000001@34020000001320000001,  ssrc=0x2872201, peer(192.168.0.64, 15060), rtmp muxer is alive
    [2022-02-08 18:18:16.437][Trace][24346][438mt814] Hybrid cpu=3.00%,15MB, cid=1,0, timer=61,0,0, clock=0,44,4,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:50,oth:0,buf:0)
    [2022-02-08 18:18:21.437][Trace][24346][438mt814] Hybrid cpu=4.00%,15MB, cid=1,0, timer=62,0,0, clock=0,44,4,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:50,oth:0,buf:0)
    [2022-02-08 18:18:26.258][Trace][24346][30r3y176] gb28181: client id=34020000002000000001@34020000001320000001,  ssrc=0x2872201, peer(192.168.0.64, 15060), rtmp muxer is alive
    [2022-02-08 18:18:26.437][Trace][24346][438mt814] Hybrid cpu=3.00%,15MB, cid=1,0, timer=62,0,0, clock=0,44,4,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:50,oth:0,buf:0)
    [2022-02-08 18:18:31.438][Trace][24346][438mt814] Hybrid cpu=3.00%,15MB, cid=1,0, timer=61,0,0, clock=0,43,5,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:50,oth:0,buf:0)
    [2022-02-08 18:18:36.272][Trace][24346][30r3y176] gb28181: client id=34020000002000000001@34020000001320000001,  ssrc=0x2872201, peer(192.168.0.64, 15060), rtmp muxer is alive
    [2022-02-08 18:18:36.439][Trace][24346][438mt814] Hybrid cpu=3.99%,15MB, cid=1,0, timer=61,0,0, clock=0,43,5,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:50,oth:0,buf:0)
    [2022-02-08 18:18:41.440][Trace][24346][438mt814] Hybrid cpu=3.00%,15MB, cid=1,0, timer=61,0,0, clock=0,43,5,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:50,oth:0,buf:0)
    [2022-02-08 18:18:46.274][Trace][24346][20t71317] <- GBS gb28181: client_id , peer(192.168.0.64, 15060) ps rtp packet 348B, age=124843870, vt=2/96, sts=25019/10224000/0x2872201, paylod=336B
    [2022-02-08 18:18:46.441][Trace][24346][438mt814] Hybrid cpu=3.00%,15MB, cid=1,0, timer=62,0,0, clock=0,43,5,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:50,oth:0,buf:0)
    [2022-02-08 18:18:51.441][Trace][24346][438mt814] Hybrid cpu=3.00%,15MB, cid=1,0, timer=62,0,0, clock=0,43,5,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:50,oth:0,buf:0)
    [2022-02-08 18:18:52.244][Trace][24346][457af1t6] gb28181: sip session=34020000002000000001 peer(192.168.0.64, 5060) status(RegisterOk,AliveOk) duration(129,0)
    [2022-02-08 18:18:56.284][Trace][24346][20t71317] <- GBS gb28181: client_id , peer(192.168.0.64, 15060) ps rtp packet 984B, age=134846089, vt=2/96, sts=27248/11127600/0x2872201, paylod=972B
    [2022-02-08 18:18:56.441][Trace][24346][438mt814] Hybrid cpu=3.00%,15MB, cid=1,0, timer=62,0,0, clock=0,44,3,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:50,oth:0,buf:0)
    [2022-02-08 18:19:01.442][Trace][24346][438mt814] Hybrid cpu=4.00%,15MB, cid=1,0, timer=62,0,0, clock=0,44,3,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:50,oth:0,buf:0)
    [2022-02-08 18:19:06.280][Trace][24346][20t71317] <- GBS gb28181: client_id , peer(192.168.0.64, 15060) ps rtp packet 1248B, age=144854675, vt=2/96, sts=29453/12031200/0x2872201, paylod=1236B
    [2022-02-08 18:19:06.442][Trace][24346][438mt814] Hybrid cpu=3.99%,15MB, cid=1,0, timer=62,0,0, clock=0,44,3,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:50,oth:0,buf:0)
    [2022-02-08 18:19:11.443][Trace][24346][438mt814] Hybrid cpu=3.00%,15MB, cid=1,0, timer=62,0,0, clock=0,44,4,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:50,oth:0,buf:0)
    [2022-02-08 18:19:16.283][Trace][24346][20t71317] <- GBS gb28181: client_id , peer(192.168.0.64, 15060) ps rtp packet 1032B, age=154857116, vt=2/96, sts=31654/12934800/0x2872201, paylod=1020B
    [2022-02-08 18:19:16.444][Trace][24346][438mt814] Hybrid cpu=3.00%,15MB, cid=1,0, timer=62,0,0, clock=0,44,4,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:50,oth:0,buf:0)
    [2022-02-08 18:19:17.309][Trace][24346][11i9i025] RTMP client ip=192.168.1.32:61238, fd=14
    [2022-02-08 18:19:17.334][Trace][24346][11i9i025] complex handshake success
    [2022-02-08 18:19:17.338][Trace][24346][11i9i025] connect app, tcUrl=rtmp://192.168.0.120:1936/live, pageUrl=, swfUrl=, schema=rtmp, vhost=192.168.0.120, port=1936, app=live, args=null
    [2022-02-08 18:19:17.338][Trace][24346][11i9i025] protocol in.buffer=0, in.ack=0, out.ack=0, in.chunk=128, out.chunk=128
    [2022-02-08 18:19:17.386][Trace][24346][11i9i025] ignore AMF0/AMF3 command message.
    [2022-02-08 18:19:17.434][Trace][24346][11i9i025] ignore AMF0/AMF3 command message.
    [2022-02-08 18:19:17.434][Trace][24346][11i9i025] client identified, type=rtmp-play, vhost=192.168.0.120, app=live, stream=34020000002000000001@34020000001320000001, param=, duration=-1ms
    [2022-02-08 18:19:17.434][Trace][24346][11i9i025] connected stream, tcUrl=rtmp://192.168.0.120:1936/live, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1936, app=live, stream=34020000002000000001@34020000001320000001, param=, args=null
    [2022-02-08 18:19:17.434][Trace][24346][11i9i025] source url=/live/34020000002000000001@34020000001320000001, ip=192.168.1.32, cache=1, is_edge=0, source_id=457af1t6/457af1t6
    [2022-02-08 18:19:17.435][Trace][24346][11i9i025] dispatch cached gop success. count=9, duration=328
    [2022-02-08 18:19:17.435][Trace][24346][11i9i025] create consumer, active=1, queue_size=0.00, jitter=30000000
    [2022-02-08 18:19:17.435][Trace][24346][11i9i025] set fd=14, SO_SNDBUF=46080=>175000, buffer=350ms
    [2022-02-08 18:19:17.435][Trace][24346][11i9i025] start play smi=0ms, mw_sleep=350, mw_msgs=8, realtime=0, tcp_nodelay=0
    [2022-02-08 18:19:21.445][Trace][24346][438mt814] Hybrid cpu=3.00%,15MB, cid=1,0, timer=62,0,0, clock=0,44,4,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:50,oth:0,buf:0)
    [2022-02-08 18:19:22.540][Trace][24346][311tss34] RTMP client ip=192.168.1.32:61240, fd=15
    [2022-02-08 18:19:22.562][Trace][24346][311tss34] complex handshake success
    [2022-02-08 18:19:22.564][Trace][24346][311tss34] connect app, tcUrl=rtmp://192.168.0.120:1936/live, pageUrl=, swfUrl=, schema=rtmp, vhost=192.168.0.120, port=1936, app=live, args=null
    [2022-02-08 18:19:22.564][Trace][24346][311tss34] protocol in.buffer=0, in.ack=0, out.ack=0, in.chunk=128, out.chunk=128
    [2022-02-08 18:19:22.611][Trace][24346][311tss34] ignore AMF0/AMF3 command message.
    [2022-02-08 18:19:22.654][Trace][24346][311tss34] ignore AMF0/AMF3 command message.
    [2022-02-08 18:19:22.654][Trace][24346][311tss34] client identified, type=rtmp-play, vhost=192.168.0.120, app=live, stream=34020000002000000001@34020000001320000001, param=, duration=-1ms
    [2022-02-08 18:19:22.654][Trace][24346][311tss34] connected stream, tcUrl=rtmp://192.168.0.120:1936/live, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1936, app=live, stream=34020000002000000001@34020000001320000001, param=, args=null
    [2022-02-08 18:19:22.655][Trace][24346][311tss34] source url=/live/34020000002000000001@34020000001320000001, ip=192.168.1.32, cache=1, is_edge=0, source_id=457af1t6/457af1t6
    [2022-02-08 18:19:22.655][Trace][24346][311tss34] dispatch cached gop success. count=40, duration=1562
    [2022-02-08 18:19:22.655][Trace][24346][311tss34] create consumer, active=1, queue_size=0.00, jitter=30000000
    [2022-02-08 18:19:22.655][Trace][24346][311tss34] set fd=15, SO_SNDBUF=46080=>175000, buffer=350ms
    [2022-02-08 18:19:22.655][Trace][24346][311tss34] start play smi=0ms, mw_sleep=350, mw_msgs=8, realtime=0, tcp_nodelay=0
    [2022-02-08 18:19:26.280][Trace][24346][30r3y176] gb28181: client id=34020000002000000001@34020000001320000001,  ssrc=0x2872201, peer(192.168.0.64, 15060), rtmp muxer is alive
    [2022-02-08 18:19:26.445][Trace][24346][438mt814] Hybrid cpu=2.00%,16MB, cid=2,1, timer=62,0,0, clock=0,43,4,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:76,oth:0,buf:0)
    [2022-02-08 18:19:30.291][Trace][24346][11i9i025] -> PLA time=12664355, msgs=9, okbps=1939,0,0, ikbps=2,0,0, mw=350/8
    [2022-02-08 18:19:31.445][Trace][24346][438mt814] Hybrid cpu=3.00%,16MB, cid=2,1, timer=62,0,0, clock=0,43,4,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:76,oth:0,buf:0)
    [2022-02-08 18:19:36.298][Trace][24346][30r3y176] gb28181: client id=34020000002000000001@34020000001320000001,  ssrc=0x2872201, peer(192.168.0.64, 15060), rtmp muxer is alive
    [2022-02-08 18:19:36.446][Trace][24346][438mt814] Hybrid cpu=2.99%,16MB, cid=2,1, timer=62,0,0, clock=0,43,4,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:76,oth:0,buf:0)
    [2022-02-08 18:19:40.580][Trace][24346][11i9i025] -> PLA time=22903044, msgs=9, okbps=1943,0,0, ikbps=1,0,0, mw=350/8
    [2022-02-08 18:19:41.447][Trace][24346][438mt814] Hybrid cpu=3.00%,16MB, cid=1,0, timer=61,0,0, clock=0,43,5,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:100,oth:0,buf:0)
    [2022-02-08 18:19:46.301][Trace][24346][20t71317] <- GBS gb28181: client_id , peer(192.168.0.64, 15060) ps rtp packet 1312B, age=184874923, vt=2/96, sts=38296/15652800/0x2872201, paylod=1300B
    [2022-02-08 18:19:46.447][Trace][24346][438mt814] Hybrid cpu=3.00%,16MB, cid=1,0, timer=61,0,0, clock=0,43,5,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:100,oth:0,buf:0)
    [2022-02-08 18:19:50.555][Trace][24346][11i9i025] -> PLA time=32926849, msgs=9, okbps=1944,1958,0, ikbps=0,0,0, mw=350/8
    [2022-02-08 18:19:51.447][Trace][24346][438mt814] Hybrid cpu=3.00%,16MB, cid=1,0, timer=62,0,0, clock=0,44,4,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:100,oth:0,buf:0)
    [2022-02-08 18:19:52.280][Trace][24346][457af1t6] gb28181: sip session=34020000002000000001 peer(192.168.0.64, 5060) status(RegisterOk,AliveOk) duration(189,0)
    [2022-02-08 18:19:56.307][Trace][24346][30r3y176] gb28181: client id=34020000002000000001@34020000001320000001,  ssrc=0x2872201, peer(192.168.0.64, 15060), rtmp muxer is alive
    [2022-02-08 18:19:56.448][Trace][24346][438mt814] Hybrid cpu=2.99%,16MB, cid=1,0, timer=62,0,0, clock=0,44,4,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:100,oth:0,buf:0)
    [2022-02-08 18:19:56.661][Trace][24346][20t71317] RTP: jitbuffer VerifyAndAllocate:newSize:90000, prevBuffer:43315888, _buffer:45270992
    [2022-02-08 18:19:58.651][Trace][24346][20t71317] RTP: jitbuffer VerifyAndAllocate:newSize:90000, prevBuffer:43556016, _buffer:45478512
    [2022-02-08 18:19:58.658][Trace][24346][20t71317] RTP: jitbuffer VerifyAndAllocate:newSize:210000, prevBuffer:45478512, _buffer:45568528
    [2022-02-08 18:19:58.681][Warn][24346][20t71317][11] RTP: jitbuffer NACK list has grown too large: 253 > 250
    [2022-02-08 18:19:58.681][Warn][24346][20t71317][11] RTP: jitbuffer key(34020000002000000001@34020000001320000001) requesting key frame due to too large NACK list.
    [2022-02-08 18:19:59.214][Trace][24346][30r3y176] RTP: jitbuffer key=34020000002000000001@34020000001320000001 reallocate a frame buffer size(93540>92000) resize(123540)
    [2022-02-08 18:20:00.495][Trace][24346][11i9i025] -> PLA time=43069959, msgs=17, okbps=1996,1958,0, ikbps=0,0,0, mw=350/8
    [2022-02-08 18:20:00.643][Trace][24346][20t71317] RTP: jitbuffer VerifyAndAllocate:newSize:90000, prevBuffer:43826160, _buffer:45465520
    [2022-02-08 18:20:01.448][Trace][24346][438mt814] Hybrid cpu=4.00%,16MB, cid=1,0, timer=62,0,0, clock=0,44,4,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:100,oth:0,buf:0)
    [2022-02-08 18:20:06.314][Trace][24346][30r3y176] gb28181: client id=34020000002000000001@34020000001320000001,  ssrc=0x2872201, peer(192.168.0.64, 15060), rtmp muxer is alive
    [2022-02-08 18:20:06.448][Trace][24346][438mt814] Hybrid cpu=5.00%,16MB, cid=1,0, timer=62,0,0, clock=0,43,4,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:100,oth:0,buf:0)
    [2022-02-08 18:20:07.207][Warn][24346][20t71317][11] RTP: jitbuffer NACK list has grown too large: 251 > 250
    [2022-02-08 18:20:07.207][Warn][24346][20t71317][11] RTP: jitbuffer key(34020000002000000001@34020000001320000001) requesting key frame due to too large NACK list.
    [2022-02-08 18:20:10.772][Trace][24346][11i9i025] -> PLA time=53343296, msgs=12, okbps=2184,1958,0, ikbps=0,0,0, mw=350/8
    [2022-02-08 18:20:11.449][Trace][24346][438mt814] Hybrid cpu=3.00%,16MB, cid=1,0, timer=62,0,0, clock=0,43,4,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:100,oth:0,buf:0)
    [2022-02-08 18:20:14.932][Warn][24346][20t71317][11] RTP: jitbuffer NACK list has grown too large: 261 > 250
    [2022-02-08 18:20:14.932][Warn][24346][20t71317][11] RTP: jitbuffer key(34020000002000000001@34020000001320000001) requesting key frame due to too large NACK list.
    [2022-02-08 18:20:15.888][Warn][24346][20t71317][11] RTP: jitbuffer NACK list has grown too large: 264 > 250
    [2022-02-08 18:20:15.888][Warn][24346][20t71317][11] RTP: jitbuffer key(34020000002000000001@34020000001320000001) requesting key frame due to too large NACK list.
    [2022-02-08 18:20:16.320][Trace][24346][30r3y176] gb28181: client id=34020000002000000001@34020000001320000001,  ssrc=0x2872201, peer(192.168.0.64, 15060), rtmp muxer is alive
    [2022-02-08 18:20:16.450][Trace][24346][438mt814] Hybrid cpu=4.00%,17MB, cid=1,0, timer=62,0,0, clock=0,43,4,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:100,oth:0,buf:0)
    [2022-02-08 18:20:16.603][Warn][24346][20t71317][11] RTP: jitbuffer NACK list has grown too large: 251 > 250
    [2022-02-08 18:20:16.603][Warn][24346][20t71317][11] RTP: jitbuffer key(34020000002000000001@34020000001320000001) requesting key frame due to too large NACK list.
    [2022-02-08 18:20:20.728][Trace][24346][11i9i025] -> PLA time=63312079, msgs=13, okbps=2302,2575,0, ikbps=0,0,0, mw=350/8
    [2022-02-08 18:20:21.450][Trace][24346][438mt814] Hybrid cpu=4.00%,16MB, cid=1,0, timer=62,0,0, clock=0,43,4,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:100,oth:0,buf:0)
    [2022-02-08 18:20:23.001][Warn][24346][20t71317][11] RTP: jitbuffer NACK list has grown too large: 262 > 250
    [2022-02-08 18:20:23.001][Warn][24346][20t71317][11] RTP: jitbuffer key(34020000002000000001@34020000001320000001) requesting key frame due to too large NACK list.

1. SRS的配置如下(Config):

push.gb28181.conf

push gb28181 stream to SRS.

listen 1936; max_connections 1000; daemon off; srs_log_tank console;

http_api { enabled on; listen 1985; }

http_server { enabled on; listen 8080; }

stats { network 0; }

stream_caster { enabled on; caster gb28181;

# 转发流到rtmp服务器地址与端口
# TODO: https://github.com/ossrs/srs/pull/1679/files#r400875104
# [stream] is VideoChannelCodecID(视频通道编码ID) for sip
# 自动创建的道通[stream] 是‘chid[ssrc]’ [ssrc]是rtp的ssrc
# [ssrc] rtp中的ssrc
output              rtmp://127.0.0.1:1935/live/[stream];

# 接收设备端rtp流的多路复用端口
listen              9001;
# 多路复用端口类型,on为tcp,off为udp
# 默认:on
tcp_enable            on;

# rtp接收监听端口范围,最小值
rtp_port_min        58200;
# rtp接收监听端口范围,最大值
rtp_port_max        58300;

# 是否等待关键帧之后,再转发,
# off:不需等待,直接转发
# on:等第一个关键帧后,再转发
wait_keyframe       on;

# rtp包空闲等待时间,如果指定时间没有收到任何包
# rtp监听连接自动停止,发送BYE命令
rtp_idle_timeout    30;

# 是否转发音频流
# 目前只支持aac格式,所以需要设备支持aac格式
# on:转发音频
# off:不转发音频,只有视频
# *注意*!!!:flv 只支持11025  22050  44100 三种
# 如果设备端没有三种中任何一个,转发时为自动选择一种格式
# 同时也会将adts的头封装在flv aac raw数据中
# 这样的话播放器为自动通过adts头自动选择采样频率
# 像ffplay, vlc都可以,但是flash是没有声音,
# 因为flash,只支持11025 22050 44100
audio_enable        off;

# 服务器主机号,可以域名或ip地址
# 也就是设备端将媒体发送的地址,如果是服务器是内外网
# 需要写外网地址,
# 调用api创建stream session时返回ip地址也是host
# $CANDIDATE 是系统环境变量,从环境变量获取地址,如果没有配置,用*
# *代表指定stats network 的网卡号地址,如果没有配置network,默认则是第0号网卡地址
# TODO: https://github.com/ossrs/srs/pull/1679/files#r400917594
host       192.168.0.120;

#根据收到ps rtp包自带创建rtmp媒体通道,不需要api接口创建
#rtmp地址参数[stream] 就是通道id  格式chid[ssrc]
auto_create_channel   off;

sip {
    # 是否启用srs内部sip信令
    # 为on信令走srs, off 只转发ps流
    enabled on;

    # sip监听udp端口
    listen              5060;

    # SIP server ID(SIP服务器ID).
    # 设备端配置编号需要与该值一致,否则无法注册
    serial              34020000002000000001;

    # SIP server domain(SIP服务器域)
    realm               3402000000;

    # 服务端发送ack后,接收回应的超时时间,单位为秒
    # 如果指定时间没有回应,认为失败
    ack_timeout         30;

    # 设备心跳维持时间,如果指定时间内(秒)没有接收一个心跳
    # 认为设备离线
    keepalive_timeout   120;

    # 注册之后是否自动给设备端发送invite
    # on: 是  off 不是,需要通过api控制
    auto_play           on;
    # 设备将流发送的端口,是否固定
    # on 发送流到多路复用端口 如9000
    # off 自动从rtp_mix_port - rtp_max_port 之间的值中
    # 选一个可以用的端口
    invite_port_fixed     on;

    # 向设备或下级域查询设备列表的间隔,单位(秒)
    # 默认60秒
    query_catalog_interval  60;
}

}

rtc_server { enabled on;

Listen at udp://8000

listen          8000;
#
# The $CANDIDATE means fetch from env, if not configed, use * as default.
#
# The * means retrieving server IP automatically, from all network interfaces,
# @see https://github.com/ossrs/srs/issues/307#issuecomment-599028124
candidate       192.168.0.120;

}

vhost defaultVhost { rtc { enabled on; bframe discard; }

http_remux {
    enabled     on;
    mount       [vhost]/[app]/[stream].flv;
}

}



**重现(Replay)**

> 重现Bug的步骤(How to replay bug?)

1. `海康摄像头型号不一定必须是我提供的,设置视频码率为3M以上,我一开始设置最大16M`
2. `注册摄像头成功之后,直接报错提示丢包,详细见日志`
3. `码率超过3M的时候该现象必现,码率越高丢包越严重`

**期望行为(Expect)**

> 描述你期望发生的事情(Please describe your expectation)

期望不丢包,设备正常工作,能正常播放,视频质量良好。