我想要一个网络摄像头进行录制,并在屏幕上显示“实时”流,并延迟几秒钟。
使用案例需要录制一个表演并几乎现场直播,只需几秒延迟即可快速查看。性能最多需要几秒钟,需要立即显示(查看)而无需任何手动点击。有很多尝试,手动点击会使这个过程更长。
可能的来源:
可能的显示:
其他信息:
要点:
尼斯到富人:
一般情况下,使用笔记本电脑的网络摄像头并在屏幕上显示自定义延迟的流程会非常棒。
答案 0 :(得分:6)
查看Open Broadcast Software (OBS)如果您拥有此软件的付费版本,则可以使用Studio Mode
预览流式广告。它可以安装在Windows,Mac和Linux上,并且是开源的。
你可以在github上分叉并根据需要更改代码(需要技能:))
希望这可以帮助你。
答案 1 :(得分:2)
Miguel Grinberg用Python编写了一个优秀的视频流教程,连续发送JPEG帧。在这里查看他的博客文章:
http://blog.miguelgrinberg.com/post/video-streaming-with-flask 1
可以快速查看这些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()
这种方法可以帮助您满足所有必需的功能:
答案 2 :(得分:1)
我在我的一个项目中尝试过tokbox,这非常简单。
tokbox付费且支持python。 链接是tokbox
还有许多免费的api 像Apache Open Meeting .Python示例在github中可用。
有关其他api的更多信息和评估目的,您可以浏览此链接 Open source conferencing products comparison
其他详情可在维基
获取http://opensourceecology.org/wiki/Videoconferencing
使用NGINX正好here是链接。
答案 3 :(得分:0)