2012-11-06 60 views
4

Kinect OpenNI library使用自定義視頻文件格式來存儲包含rgb + d信息的視頻。這些視頻的擴展名爲* .oni。我無法找到有關ONI視頻格式的任何信息或文檔。將電影轉換爲OpenNI * .oni視頻

我正在尋找一種方法來將傳統的rgb視頻轉換爲* .oni視頻。深度通道可以留空(即清零)。出於示例目的,我有一個帶有音頻和視頻通道的MPEG-4編碼的.mov文件。

對於如何進行此轉換沒有任何限制,我只需要將它轉換成某種方式!即,imagemagick,ffmpeg,mencoder都可以,因爲在C/C++等自定義轉換代碼。

到目前爲止,我所能找到的是one C++ conversion utility in the OpenNI sources。從它的外觀來看,我可以從一個* .oni文件轉換爲另一個。我也設法找到a C++ script by a phd student that converts images from a academic database into a *.oni file。不幸的是,代碼是西班牙文,不是我的母語之一。

任何幫助或指針非常感謝!

編輯:由於我的用例有點奇怪,所以可能需要一些解釋。 OpenNI驅動程序(在我的情況下,我使用優秀的Kinect for Matlab library)允許您在創建Kinect上下文時指定* .oni文件。這可以讓你模擬一個真正連接Kinect的接收視頻數據 - 當你測試/開發代碼時(你不需要附加Kinect來做到這一點)很有用。在我的特殊情況下,我們將在生產環境中使用Kinect(在工廠環境中進行過程控制),但在開發過程中我只有一個視頻文件:)因此想要轉換爲* .oni文件。目前我們沒有使用Depth頻道,因此不關心它。

回答

4

我沒有一個完整的答案給你,但看看NiRecordRaw和NiRecordSynthetic在OpenNI/Samples中的例子。他們演示如何創建任意或修改數據的ONI。看看如何在NiRecordSynthetic中使用MockDepthGenerator - 在你的情況下,你將需要MockImageGenerator。 欲瞭解更多詳情,您可能需要在openni-dev谷歌組中詢問。

+0

這對我來說足夠好 - 標記爲正確。謝謝! – aaronsnoswell

0

難道你看看這個命令及其相關文件

NiConvertXToONI - NiConvertXToONI打開任何記錄,需要在它的每個節點,並將其記錄到一個新的ONI記錄。它從命令行接收輸入文件和輸出文件。