fastapi怎么把海康威视摄像头的画面给前端传输视频流
时间: 2023-05-21 11:04:07 浏览: 979
可以使用 OpenCV 库来获取海康威视摄像头的视频流,并使用 FastAPI 的 WebSocket 功能将视频流传输到前端。具体实现可以参考以下代码:
```python
import cv2
import asyncio
from fastapi import FastAPI, WebSocket
app = FastAPI()
async def video_stream(websocket: WebSocket):
cap = cv2.VideoCapture('rtsp://username:password@ip_address:port/cam/realmonitor?channel=1&subtype=0')
while True:
ret, frame = cap.read()
if not ret:
break
_, buffer = cv2.imencode('.jpg', frame)
await websocket.send_bytes(buffer.tobytes())
await asyncio.sleep(0.03)
@app.websocket("/video_feed")
async def video_feed(websocket: WebSocket):
await video_stream(websocket)
```
其中,`rtsp://username:password@ip_address:port/cam/realmonitor?channel=1&subtype=0` 是海康威视摄像头的视频流地址,需要替换成实际的地址。`await asyncio.sleep(0.03)` 是为了控制视频帧率,可以根据实际情况调整。前端可以使用 WebSocket 接收视频流,并将其显示在页面上。
阅读全文