背景
最近接到一个老项目,算法开发的python代码,去拉取视频流,拿出来解析
里面用到了pyav,这个不是纯的python库,里面是加了其他东西的
代码里面拉取视频流很多时候会超时,就想着去修改连接选项,结果官网没给
估计是针对不同的视频格式和不同的拉流方式,选项会不一样,要根据底层库来决定
网上找了一堆地方,也没找到靠谱的,后面用 GPT 试了下,GPT还真给出来了
但这个给的东西好不好用还不确定,我就拿进去试了几个自己关心的,还真有用
下面记录下这些参数
注意: 我的场景是使用 tcp 的方式拉取 rtsp 格式的视频流,其他的方式参数可能会不一样
注释里面写未验证的,如果有用到,需要自己去验证!!!
import av# RTSP视频流地址
rtsp_url = "rtsp://192.168.5.6:554/videoUrl/asjflksajfl"# 设置选项
options = {"analyzeduration": "10000000", # 设置analyzeduration选项为10秒"probesize": "5000000" , # 设置probesize选项为5000000字节'rtsp_transport': 'tcp', # 设置RTSP传输协议,可以是"tcp"或"udp"'max_delay': '50000', # 设置最大延迟'stimeout': '10000000', # 设置超时时间,单位是微秒'buffer_size': '设置缓冲区大小,单位是字节。', # 未验证!!!'allowed_media_types': '设置允许的媒体类型,例如["audio", "video"]' , # 未验证!!!'muxdelay': '设置最大复用延迟。', # 未验证!!!'probesize2':'设置探测大小。' # 未验证!!!
}# 打开RTSP视频流,并传递选项参数
container = av.open(rtsp_url, options=options)# 遍历视频流中的帧
for frame in container.decode(video=0):# 在这里处理帧pass# 关闭视频流
container.close()