opencv 获取rtsp原始码流代码

opencv不仅可以获取解码后的图片数据,还可以获取未经解码的原始码流数据, 这样为使用其他硬解码器提供方便

在编译opencv cmake时需要指定 -D WITH_FFMPEG=ON

python 代码如下,需要指定CAP_PROP_FORMAT 为 -1 指定关闭软解码功能

需要说明的是,获取的原始码流数据需要通过视频流解码器才能获取到图片数据

import cv2
rtsp_url = "rtsp://192.167.15.41/g2.mp4"
logger.info(rtsp_url)
cap = cv2.VideoCapture(rtsp_url)
cap.set(cv2.CAP_PROP_FORMAT, -1)
if not cap.isOpened():
    logger.info("fail to open rtsp: {}".format(rtsp_url))
    break
logger.info("FORMAT:{} FOURCC:{} CODEC_PIXEL_FORMAT:{} FPS:{}, FRAME_WIDTH:{}, FRAME_HEIGHT:{}"
             .format(cap.get(cv2.CAP_PROP_FORMAT),
                     cap.get(cv2.CAP_PROP_FOURCC),
                     cap.get(cv2.CAP_PROP_CODEC_PIXEL_FORMAT),
                     cap.get(cv2.CAP_PROP_FPS),
                     cap.get(cv2.CAP_PROP_FRAME_WIDTH),
                     cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
count = 0
while True:
    ret, yuv_frame = cap.read()
    logger.info("ret:{}, len{}".format(ret, yuv_frame.shape))
    if not ret:
        continue
    logger.info("count:{}".format(count))
    count += 1

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值