Video streaming 从摄像头、流媒体、合并和在网页上广播进行捕获

Video streaming 从摄像头、流媒体、合并和在网页上广播进行捕获,video-streaming,processing,quartz-graphics,Video Streaming,Processing,Quartz Graphics,我目前正在为一个名为“上帝是DJ”的项目工作,该项目将在蒙特利尔双年展和日内瓦地图节(mai第11、12、18和19届)上展出。insan-ë公司对将技术引入表演艺术感兴趣,并在Montréal做一场表演,在CH.日内瓦做另一场。如果你感兴趣,可以查看一下。该应用程序使用从一个地方到另一个地方的流媒体视频,视频合成和映射将在mixologic中完成,这两个应用程序都是在Montréal的SAT上开发的。我在这里进行更基本的开发、MIDI接口、机器设置,以及这些。。 我们想在网上播放整部电影,每家

我目前正在为一个名为“上帝是DJ”的项目工作,该项目将在蒙特利尔双年展和日内瓦地图节(mai第11、12、18和19届)上展出。insan-ë公司对将技术引入表演艺术感兴趣,并在Montréal做一场表演,在CH.日内瓦做另一场。如果你感兴趣,可以查看一下。该应用程序使用从一个地方到另一个地方的流媒体视频,视频合成和映射将在mixologic中完成,这两个应用程序都是在Montréal的SAT上开发的。我在这里进行更基本的开发、MIDI接口、机器设置,以及这些。。 我们想在网上播放整部电影,每家影院都有独立的摄像机

问题:

我需要构建的应用程序将执行以下操作(实际上非常简单): 从Montréal获取流,从摄像头捕获,将两幅图像并排放置(控制延迟将是一个很好的选择),混合声音,然后通过访问网页来观看流媒体。 我首先想到通过JAVA和处理来实现这一点(主要是因为我想做更多的处理,我不太喜欢可视化编程),但我想qc可能是最好的选择。然而,到目前为止,我发现有关qc的文档非常差。我还想到了Threenodes.js,因为它可能更简单

无论如何,如果你能为我指出正确的方向,我将不胜感激。我不是一个经验丰富的程序员,我想了太多的可能性,却不知道它们各自的能力或限制


任何建议都将不胜感激!谢谢

您可以用简单的HTML创建一个网页,其中两个视频播放器组件并排放置(通过“对象”标记使用或其他播放器),一个播放来自Montreal的流,另一个播放来自本地捕获视频的流。Montreal部分可能已经在使用流式服务器,因此您可以在本地流中使用相同的服务器,或者尝试

加载页面后,两个播放器将独立开始播放流媒体,操作系统将正常混合他们的音频。用户还可以通过每个视频播放器的音量滑块控制音量。(在这种情况下,恐怕没有延迟控制:-(当然本地摄像机和帧捕获器之间有延迟硬件除外)

如果您现在想处理这两个流并显示处理后的流,那么它将更加复杂,因为您必须编写一个程序,其中包含两个播放器对象,能够在它们解码的每一帧上触发事件(这不是问题,您可以在任何语言中轻松找到此类组件)

在该处理程序中,您可以获取图像和声音流,进行处理并创建混合帧,这些帧现在必须作为流进行编码并通过网络发送。最后一部分并不简单。解决这一问题的最简单方法是让应用程序全屏显示并绘制它所绘制的内容在计算机的主屏幕上。您现在可以从图形卡获取此输出,并将其作为输入传递给帧抓取器。然后,您可以设置视频流服务器(例如,如上所述的VLC)以广播帧抓取器的此输入

您现在可以通过HTML页面内的播放器访问此组合视频,如上所述

使用此解决方案,您当然可以控制代码中的所有内容(包括延迟)


就Processing.org而言,请查看用于解码视频流的组件

谢谢你的回答。这或多或少是我的想法。然而,不幸的是,控制延迟是强制性的。因此,我计划如下,我希望它能起作用:-在MTL stream到GVA中有一个应用程序(通过JAVA sendbitstream或保存到文件)-在GVA中使用一个从livecam捕获的应用程序和从MTL捕获的流/文件(这两个应用程序都将使用processing和JAVA编写)-使用Syphon将处理发送到VLC-让VLC在线传输所有内容问题:将比特流翻译回PImage?VLC多播限制?关于比特流,您是否考虑将未压缩视频流传输?因为这可能是来回切换到PImage以使用可处理该对象的函数的最简单方法。就多播而言,您已经达到了协议(IP多播)的限制。您是否有更具体的想法?嗯,对于网络来说,未压缩的视频不会太多(特别是它已经被剩余的节目加载了…)我没有任何想法,真的,我需要想出一个工具来实现这一点,没有限制,没有规则,只需要工作:)