2012-04-04 84 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