Video 如何在几秒钟延迟的情况下显示/播放网络摄像头?

Video 如何在几秒钟延迟的情况下显示/播放网络摄像头?,video,streaming,video-streaming,delay,Video,Streaming,Video Streaming,Delay,我想要一个网络摄像头来记录和屏幕显示“实时”流与几秒钟的延迟 用例:需要记录一个性能,并几乎实时地显示它,并且需要几秒钟的延迟以便快速查看。性能最多需要几秒钟,需要立即显示(查看),无需手动单击。有很多尝试,手动点击会使过程更长 可能的来源: 安卓6.0.1手机上的主摄像头(前摄像头像GB的风景一样多云) 安卓6.0平板电脑上的主摄像头或前置摄像头 笔记本电脑上的网络摄像头(Linux Ubuntu 17.04或Windows 8.1)-无单独的GPU 可能的显示: 安卓平板电脑,如上所述

我想要一个网络摄像头来记录和屏幕显示“实时”流与几秒钟的延迟

用例:需要记录一个性能,并几乎实时地显示它,并且需要几秒钟的延迟以便快速查看。性能最多需要几秒钟,需要立即显示(查看),无需手动单击。有很多尝试,手动点击会使过程更长

可能的来源:

  • 安卓6.0.1手机上的主摄像头(前摄像头像GB的风景一样多云)
  • 安卓6.0平板电脑上的主摄像头或前置摄像头
  • 笔记本电脑上的网络摄像头(Linux Ubuntu 17.04或Windows 8.1)-无单独的GPU
可能的显示:

  • 安卓平板电脑,如上所述
  • 笔记本电脑,如上所述
其他信息:

  • 不需要音频
  • 公共无线网络
  • 手机和平板电脑上已安装IP网络摄像头
  • 编程技能(我更喜欢Python)
  • 可以设置nginx服务器吗
  • …也在网上
  • 互联网连接
基本要素:

  • 实际显示延迟>=2s的可读流
好东西:

  • 不使用互联网
  • 可调延迟,如果不是:在3-6s范围内
  • 优良品质
  • 按需录制
  • 超级复制功能:能够记录回(点击最后x秒保存)
一般来说,使用笔记本电脑的网络摄像头并在屏幕上以自定义延迟显示流是非常棒的。

看看您是否有此软件的付费版本,您可以使用
工作室模式
在流上线前预览流。它可以安装在Windows、Mac和Linux上,并且是开源的

您可以在github上使用它,并根据需要更改代码(所需技能:)


希望这对您有所帮助。

米格尔·格林伯格(Miguel Grinberg)用Python编写了一个优秀的视频流教程,它可以连续发送JPEG帧。查看他的博客:

这些JPEG中的每一个都可以快速查看并广播。[考虑所需的延迟]

就获取输入视频提要而言,您可以使用OPENCV连接网络摄像头。OpenCV使用VideoCapture以字节形式返回原始图像。这些字节需要编码成JPEG格式,并与米格尔的代码连接

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流),即可实现回录功能

我在我的一个项目中尝试了tokbox,它相当简单

tokbox是付费的,它支持python。 链接是

还有许多可用的免费API Python示例在github中提供

有关其他api的更多信息和评估目的,请访问此链接

更多详细信息可在wiki上获得


NGINX正是链接。

也许这个工具会有所帮助:,如果你查看它的“实时捕获”下,有一个选项可以延迟实时流