我的系统由两部分组成:UVC 流发送器和 UVC 流接收器。 网络摄像头产生的紫外线流以无线方式传输到接收器。 接收器通过 USB 电缆连接到电脑上,我可以监控摄像头生成的视频。
接收器必须处理多个摄像头,因此我想用一个 USB 描述符来处理它们,以简化操作。
例如,假设摄像机 A 只发送 30fps 的 MJPEG 1080p,而摄像机 B 发送相同格式但不同 FPS(如 60fps)的视频。
我不确定接收器中只有一个 USB 描述符是否可以处理这两个摄像头。 如果可以的话,我认为两台相机的 USB 描述符应该合并为一个描述符。
在UVC固件中支持不同的FPS吗?

在UVC(USB Video Class)固件中支持不同的帧率(FPS)是可能的,但需要对UVC流发送器和接收器进行适当的配置。UVC标准允许在单个USB设备中支持多个摄像头和不同的帧率。为了实现这一点,您需要遵循以下步骤:
1. **定义UVC类特定描述符**:在UVC设备中,类特定描述符(Class-Specific Descriptor)用于定义视频流的属性,如分辨率、帧率和压缩格式。您可以为每个摄像头定义不同的类特定描述符,以支持不同的帧率。
2. **使用多个视频控制接口**:为了支持多个摄像头,您可以在UVC设备中使用多个视频控制接口(Video Control Interface, VCI)。每个VCI可以与一个摄像头相关联,并包含该摄像头的类特定描述符。
3. **使用多个视频流接口**:与VCI类似,您可以为每个摄像头使用一个视频流接口(Video Stream Interface, VSI)。VSI负责传输视频数据,并可以配置为支持不同的帧率和格式。
4. **合并USB描述符**:为了简化操作,您可以将所有摄像头的USB描述符合并为一个描述符。这可以通过在USB配置描述符中包含所有VCI和VSI来实现。这样,接收器可以通过一个USB描述符来处理多个摄像头。
5. **在接收器中处理多个摄像头**:在接收器端,您需要编写适当的软件来处理多个摄像头和不同的帧率。这可能包括解析USB描述符、选择正确的VCI和VSI以及处理不同的视频流。
6. **考虑带宽和性能**:在设计系统时,需要考虑USB总线的带宽和性能。支持多个摄像头和不同的帧率可能会增加对带宽的需求。确保您的系统能够满足这些需求,以避免性能瓶颈。
7. **测试和验证**:在实现和配置系统后,进行彻底的测试和验证以确保所有摄像头和帧率都能正常工作。
总之,通过合理地配置UVC设备和接收器,您可以支持不同的帧率和多个摄像头。这需要定义多个类特定描述符、使用多个VCI和VSI,并在接收器中进行适当的软件处理。同时,确保您的系统能够满足带宽和性能需求,以实现最佳的视频传输效果。
回复
打赏帖 | |
---|---|
【瑞萨RA2E1开发板】:使用ADC功能实现位移传感器采集方案被打赏20分 | |
【nRF7002DK】基于sht30的温湿度计被打赏20分 | |
【nRF7002DK】日志打印被打赏20分 | |
rtthread硬件加密-5hash加密分析被打赏10分 | |
【STM32F769】SD卡驱动及其调试经验分享被打赏32分 | |
【分享开发笔记,赚取电动螺丝刀】使用看门狗降低系统隐藏bug触发概率被打赏18分 | |
【STM32F769】调试SD驱动,由于其时钟配置不对引起的错误以及排查记录被打赏35分 | |
【分享开发笔记,赚取电动螺丝刀】MCUXpressoConfigTools配置外设时的异常解决被打赏24分 | |
C语言函数宏的三种封装方式被打赏50分 | |
【换取手持示波器】NUCLEO-F429ZI Mongoose移植被打赏30分 |