从相机捕获,从流,合并和广播在网页上

时间:2012-04-04 12:23:39

标签: video-streaming processing quartz-graphics

我目前正在为一个名为God is a DJ的项目工作,该项目将在蒙特利尔的双年展和日内瓦的映射节上展出,即11月,12日,18日和19日。该公司insan-ë有兴趣将技术引入表演艺术,并在蒙特利尔与一个场景一起表演,另一个在日内瓦,CH。如果您有兴趣,可以查看。该应用程序使用流媒体视频从一个地方到另一个地方通过风景,视频组合和绘图将在mixologic中完成,这两个应用程序都是在蒙特利尔的SAT开发的。我做了更基本的开发,MIDI接口,机器设置,这里.. 我们希望在线播放所有内容,每个影院都配有独立的摄像头。

问题:

我需要构建的应用程序将执行以下操作(实际上它非常直接): 从蒙特利尔获取流,从相机捕获,并排放置两个图像(控制延迟将是一个很好的选择),混合声音,并通过访问网页流式传输这个。 我首先想到通过JAVA和Processing这样做(主要是因为我想做更多的处理,我不太喜欢可视化编程),但我猜qc可能是最好的选择。但是,到目前为止,我发现关于qc的文档很差。我也想过Threenodes.js,因为它可能更容易

无论如何,如果你能指出我正确的方向,我真的很感激。我不是一个经验丰富的程序员,我想到了太多的可能性,却不知道每个人的能力或限制。

任何建议表示赞赏!谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用简单的HTML创建一个网页,其中两个视频播放器组件并排放置(使用"video" tag或其他播放器通过“对象”标签),一个播放蒙特利尔的流和另一个从本地捕获的视频播放流。蒙特利尔部分可能已经在使用流媒体服务器,因此您可以将其用于本地流,或尝试使用something like VLC

当页面加载时,两个播放器将独立开始流式传输,并且它们的音频将由操作系统正常混合。用户还可以通过每个视频播放器的音量滑块控制音量。 (在这种情况下我不担心延迟控制:-(当然除了在本地相机和帧抓取器之间有延迟硬件)

如果您现在想要处理两个流并显示已处理的流,那么它将会更复杂,因为您必须编写一个包含两个播放器对象的程序,并能够在它们解码的每个帧上对事件进行分解(这不是问题,你可以用任何语言轻松找到这些组件)。

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

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

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

就Processing.org而言,请查看http://processing.org/reference/libraries/video/index.html解码视频流的组件