bmf icon indicating copy to clipboard operation
bmf copied to clipboard

[rtsp @ 0x7f7d7a7f8980] max delay reached. need to consume packet [rtsp @ 0x7f7d7a7f8980] RTP: missed 6 packets

Open zhangsong1234 opened this issue 1 year ago • 3 comments

[rtsp @ 0x7f7d7a7f8980] max delay reached. need to consume packet [rtsp @ 0x7f7d7a7f8980] RTP: missed 2 packets [rtsp @ 0x7f7d7a7f8980] max delay reached. need to consume packet [rtsp @ 0x7f7d7a7f8980] RTP: missed 2 packets [rtsp @ 0x7f7d7a7f8980] max delay reached. need to consume packet [rtsp @ 0x7f7d7a7f8980] RTP: missed 6 packets [rtsp @ 0x7f7d7a7f8980] max delay reached. need to consume packet [rtsp @ 0x7f7d7a7f8980] RTP: missed 2 packets

输入的input_path 是一个由摄像头输出的rtsp流,输出output_path 是一个rtmp流,运行过程中会有很多如上丢包告警,导致拉取的rtmp流画面有很多马赛卡以及卡顿

zhangsong1234 avatar Jan 30 '24 09:01 zhangsong1234

看起来可能是rtsp使用了udp传输导致的丢包,程序中是否可以配置-rtsp_transport tcp参数?

zhangsong1234 avatar Jan 30 '24 12:01 zhangsong1234

这个应该是个format参数,可以写在ffmpeg_decoder模块传参时增加这个参数试试,dec_params内没有被模块显式处理的参数会被透传到avformat_open_input/avcodec_open2接口内的option参数里。 "dec_params:{"rtsp_transport":"tcp"}"

HuHeng avatar Jan 31 '24 03:01 HuHeng

ffmpeg_decoder.cpp 中 获取input_path后,添加如下代码,解决了丢包问题 if (input_path_.find("rtsp://") != -1) { av_dict_set(&opts, "rtsp_transport", "tcp", 0); } 但在拉流过程中,通过调用forcer_close(),有时会导致程序core掉,应该是ffmpeg未释放导致

zhangsong1234 avatar Jan 31 '24 07:01 zhangsong1234