一贯遇到rtsp拉流,我通常是上ffmpeg去解决。但今天一位老师在win10上用上了Python3+Cv2做了这个事情,那么并且拉流延时毫不逊色,几乎可以说是并驾齐驱了。
那么看到效果让我有种恍然。我曾经用C++ + Openc3实现拉流rtsp,但延时并不像py+cv来的那么气势汹汹,和代码轻量。
下午也动手了一番,话不多说,直接上码。
环境
1、Python3.8.7 (提取码:egiv )
2、OpenCv2安装指令:pip install opencv-python
代码
# 引用OpenCv2
import cv2
# 定义打开视频对象
cap = cv2.VideoCapture("../test.mp4")
# 读取一帧
ret, frame = cap.read()
# 视频写入格式
fourcc = cv2.VideoWriter_fourcc(*'XVID')
fps = cap.get(cv2.CAP_PROP_FPS)
size = (int(cap.get(cv2.CAP_PROP_frame_WIDTH)),int(cap.get(cv2.CAP_PROP_frame_HEIGHT)))
# 视频输出对象
out = cv2.VideoWriter('camera_test.avi', fourcc, fps, size)
# 循环读取、写入
while ret:
# 读取一帧
ret, frame = cap.read()
if frame is None:
print('read frame is err!')
continue
# 显示一帧
cv2.imshow("frame", frame)
# 按键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 保存一帧
out.write(frame)
# 释放窗口
cv2.destroyAllWindows()
# 视频写入结束
cap.release()
关注
笔者 - jxd
微信公众号搜索 “码农总动员” 或 微信扫描下方二维码,了解更多你不知道的XX,O(∩_∩)O



