[python] ffmpeg-python读取rtsp(tcp方式)
问题描述
在多路无线摄像头同时接入时,网络不稳定,经常出现雪花屏的问题。参考网上资料,怀疑是网络摄像头默认使用RTSP协议,RTSP下层默认使用UDP传输,而UDP传输是不可靠的,会丢包,所以导致雪花屏。
RTSP使用TCP或者UDP传输,使用TCP还是UDP取决于客户端的SETUP请求。所以尝试将由UDP改为TCP取流。
opencv-python的videocapture获取rtsp只支持UDP方式,改为用FFmpeg-python以tcp方式获取流
两种库和方式取流的速度、延迟和稳定性还待测试
FFmpeg-python
安装
1 | pip install ffmpeg-python |
ffmpeg学习资源
代码
1 | #!/usr/bin/env python3 |