很快,我们将开展一个使用开源软件的项目,该软件可以做很多事情,其中一个模块涉及从基于 USB 的摄像头捕获长达 48 小时的实时信息并在不间断循环中覆盖它。这将与应用程序中的其他操作并行进行。我们还必须将至少 48 小时的捕获提要作为菜单选项显示给用户。
我希望你们都建议一个合适的开源技术堆栈,考虑到模块的音频/视频部分,没有这个功能我绝对可以使用 Qt 来做我的工作,但是有了这个功能就变得很困难了。我已经在 Linux 平台上使用 Qt 开发了 GUI 应用程序,但还没有想出可以在应用程序中记录和显示视频的东西。Qt 有声子,但设置它是一场噩梦。早些时候你们中的一些人建议使用 v4linux。我试图在 RHEL 4 机器上编译示例程序capture.c,它给出了以下错误。
usr/src/kernels/2.6.9-5.EL-i686/include/linux/videodev2.h:436: warning: no semicolon at end of struct or union
/usr/src/kernels/2.6.9-5.EL-i686/include/linux/videodev2.h:436: error: syntax error before '*' token
/usr/src/kernels/2.6.9-5.EL-i686/include/linux/videodev2.h:438: error: syntax error before '*' token
/usr/src/kernels/2.6.9-5.EL-i686/include/linux/videodev2.h:438: warning: data definition has no type or storage class
/usr/src/kernels/2.6.9-5.EL-i686/include/linux/videodev2.h:439: error: syntax error before '}' token
/usr/src/kernels/2.6.9-5.EL-i686/include/linux/videodev2.h:810: error: field `win' has incomplete type
所以走到了死胡同,此外我还没有提出具体可行的例子。此外,该网站没有经常更新,这表明开发过程停滞不前。
由于应用程序将是基于菜单的用户交互的图形化应用程序,因此它需要使用 Qt 或类似的东西作为图形部分。令人头疼的是我无法弄清楚如何在虚拟应用程序中实现/集成视频捕获/显示功能(我的尝试是使用 Qt 可能你们中的一些人已经使用其他库或语言完成了它) .
编辑:能够通过导入 videodev2.h 的本地副本并添加定义语句以包含 __user 宏来编译程序。但现在它无法运行,因为它找不到 /dev/video 设备。所以再次陷入 video4linux 的死胡同