问题描述
预览网络摄像头的画面时,经常出现雪花屏的问题。原因是网络摄像头默认使用RTSP协议,RTSP下层默认使用UDP传输,而UDP传输是不可靠的,会丢包,所以导致雪花屏。
问题解决
网络摄像头支持RTSP使用TCP或者UDP传输,使用TCP还是UDP取决于客户端的SETUP请求。SETUP请求中的Transport是TCP就使用TCP传输,Transport是UDP就使用UDP传输。
TCP提供可靠的传输,所以决定将网络摄像头传输协议由UDP改为TCP。使用ffmpeg采集网络摄像头的视频流存为mp4,默认UDP传输,以海康摄像头为例,命令行如下:
ffmpeg -i rtsp://admin:123456@192.168.2.4:554