Miguel Grinberg已经用Python编写了一个优秀的视频流教程,它依次发送JPEG帧。这里检查他的博客:
http://blog.miguelgrinberg.com/post/video-streaming-with-flask1
每个JPEG可以快速审查,然后播出。 [要考虑所需的延迟]
就获取输入视频馈送而言,您可以使用OPENCV连接摄像头。 OpenCV使用VideoCapture将原始图像作为字节返回。这些字节需要编码为JPEG并与Miguel的代码进行接口。
import cv2
class VideoCamera(object):
def __init__(self):
# Using OpenCV to capture from device
self.video = cv2.VideoCapture(0)
def __del__(self):
self.video.release()
def get_frame(self):
success, image = self.video.read()
# We are using Motion JPEG, but OpenCV defaults to capture raw images,
# so we must encode it into JPEG in order to correctly display the
# video stream.
ret, jpeg = cv2.imencode('.jpg', image)
return jpeg.tobytes()
这种方法将帮助您满足所有需要的功能:
- 没有互联网需要
- 可调延迟 - 您可以轻松控制要对每一帧进行延迟和处理
- 良好的质量
- 按需记录 - 根据需要存储捕获的帧
- 有记录通过只保存以前的24 * x帧(24fps流)