2012-04-04 85 views
0

我目前正在为一个项目称为神是一个DJ,这将在蒙特利尔双年展和日内瓦映射节,11日,12日, mai的第18和第19。该公司有意将技术引入表演艺术,并在蒙特利尔举办一场演出,并在日内瓦举办另一场演出。如果你有兴趣,你可以查看它。该应用程序通过风景,视频组合和地图将流式视频从一个地方传输到另一个地方,这些应用都将在蒙特利尔SAT中开发的混合式应用中进行。我做了更基本的开发,MIDI接口,机器设置,并在这里.. 我们希望在每个影院中使用独立的相机在线传输整个事情。捕捉从相机,从流,合并,并在网页上播放

问:

我需要建立会做以下(这是相当直接的,实际)申请: 获取来自蒙特利尔,从相机捕获的流,把两个图像并排(对延迟的控制将是一个很好的选择),混合声音,并通过访问网页流式传输。 我首先想到通过JAVA和Processing来做这件事(主要是因为我想做更多的处理,而且我不太喜欢可视化编程),但我想qc可能是最好的选择。然而,到目前为止,我发现qc上的文档相当差。我也想到了Threenodes.js,因为它可能更容易

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

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

回答

1

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

当页面加载时,两个播放器将独立开始流式传输,并且它们的音频将通过操作系统。用户还可以通过每个视频播放器的音量滑块来控制音量。 (在这种情况下无延迟控制恐怕:-(当然除了本地摄像头和图像采集卡之间有延迟硬件外)

如果您现在想要处理这两个视频流并显示处理过的视频流,更复杂一些,因为你必须编写一个包含两个播放器对象的程序,并且能够在他们解码的每一帧上触发一个事件(并且这不是问题,你可以用任何语言轻松找到这样的组件)

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

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

有了这个解决方案,您可以控制当然一切从你的代码(包括延迟)...

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

+0

谢谢你的回答。这或多或少是我想到的。但是,不幸的是,控制延迟是强制性的,不幸的是.. 所以我计划如下,我希望它能工作: -在MTL流中有一个应用程序到GVA(通过JAVA sendbitstream或保存到文件) - 有一个应用程序在GVA捕捉从livecam和流/文件从MTL (这两个应用程序将被写入处理和JAVA) - 使用虹吸有处理发送到VLC - 具有在线VLC流整个事情 问题: 将比特流转换回PImage? VLC多播限制? – walidvb 2012-04-04 16:08:50

+0

关于比特流,你是否想过流式传输未压缩的视频?因为这可能是切换PImage以使用可处理该对象的函数的最简单方法。就多播而言,您可以接受协议(IP多播)的限制。你有没有更具体的想法? – 2012-04-05 11:27:36

+0

那么,对于网络来说,未压缩的视频不会太多(特别是它已经被其余的节目加载了)。我没有任何想法,真的,我需要想出一个工具来允许这,没有限制,没有规则,只需要工作:) – walidvb 2012-04-06 14:52:01