Kinect OpenNI library使用自定义视频文件格式来存储包含rgb + d信息的视频。这些视频的扩展名为* .oni。我无法在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文件。我们目前没有使用深度通道,因此不关心它。
答案 0 :(得分:4)
我没有完整的答案,但请看看OpenNI / Samples中的NiRecordRaw和NiRecordSynthetic示例。他们演示了如何使用任意或修改的数据创建ONI。了解如何在NiRecordSynthetic中使用MockDepthGenerator - 在您的情况下,您将需要MockImageGenerator。 有关详细信息,您可以在openni-dev google小组中询问。
答案 1 :(得分:0)
您是否查看了此命令及其相关文档
NiConvertXToONI - NiConvertXToONI打开任何录音,录制其中的每个节点,并将其录制到新的ONI录音中。它从命令行接收输入文件和输出文件。