2013-04-03 47 views
0

我開發的應用程序渲染的視頻監控同時20個視頻流。我將在JFrame內部有JFrame和20個盒子(例如JPanel)來顯示20個流。我能夠使用xuggler加載流和解碼,但是現在如何在Swing JPanel上顯示此消息?Swing的

我能上的SourceDataLine播放聲音,我的問題是唯一的,如何在第二的Swing組件顯示20 * 30 = 600的視頻幀?

另外xuggler輸出YUV420P像素格式解碼的幀,是否有開銷在此轉換成RGB,在搖擺組件創建的BufferedImage和顯示?

請指導我在此。我想在擺動組件中一次顯示20個視頻流。

+0

你不能總是得到你想要的東西。但是,如果你有時嘗試很好,你可能會發現你得到了你需要的東西。 –

回答

1

下面是一些代碼,我用Google搜索即會convert a YUV420 file to BufferedImage frames。你可以用它作爲你想要的基礎。

您可能無法在PC上每秒處理600個視頻幀。您必須查看每秒可以轉換多少個視頻幀,然後刪除其餘的幀。

處理20個視頻饋送的最好方法可能是讓20個線程抓取視頻幀,將視頻幀轉換爲BufferedImage,並將BufferedImage傳遞給事件發送線程(EDT)以便Swing繪製相應的視頻JPanel的。當線程回來抓取下一個視頻幀時,您將自動丟棄PC沒有時間處理的幀。

+0

感謝您的回答,我正在考慮放棄幀機制 – UDPLover