UVC相机 / Usb相机自定义 应用 对于 Android 评论 by AndroidFreeware
Android-UVC-Camera
该应用程序可以连接到您的Android设备上的USB摄像头。(需要OTG电缆或OTG集线器)
该项目旨在为所有Android设备(高于4.1冰淇淋三明治)(也包括Mediathek设备)与UVC摄像头执行等时视频流。该程序使用用户空间USB设备驱动程序与您的摄像头设备进行等时传输。
按照以下步骤设置您自己的用户空间设备驱动程序:
首先,您必须为您的设备设置所有摄像头设置。程序会保存这些值,您可以稍后恢复它们或用其他值覆盖它们。使用编辑/保存/恢复按钮来调整这些值。使用自动摄像头搜索来查找和设置摄像头。
说明:
当自动搜索成功时,您首先需要设置最大数据包大小。如果您的设备是Mediathek设备,您可能需要降低最大数据包大小的值。请求中的数据包数值定义发送到设备的数据包数量:一个数据包的大小为3000字节,您同时使用16个数据包进行发送。在这里,您定义发送的字节数量。
接下来是USB请求块(activeUrb):这些与最大数据包大小有关。您需要找到适合您设备的正确值,并在菜单项Isoread下控制屏幕输出。一些典型的Qualcom设备值为:activeUrbs为8,每个请求16个数据包....
Isoread方法的第一步是向摄像头设备发送控制传输:
如果控制传输成功,则您可以继续。
接下来查看帧。
当您收到相同且较长的帧时,您可以继续使用Isostream方法,在您的屏幕上显示这些帧。
要知道帧的大小,您可以查看日志中摄像头控制传输的输出:maxVideoFrameSize。该值由摄像头返回,应为有效的帧大小(该值由图像宽度x图像高度x 2计算得出)。
IsochronousRead1类向您展示了摄像头如何构建帧。不同的摄像头设置 == 不同的帧结构。尝试不同的设置并查看输出。EOF提示在日志中显示帧大小。对于有效的摄像头设置,大小应与控制传输的maxFrameSize值相同。
输出方法Isoread:(控制传输)首先,程序将向您的摄像头设备发送控制传输。输出如下:
初始流参数:hint=0x0 format=1 frame=1 frameInterval=2000000 keyFrameRate=0 pFrameRate=0 compQuality=0 compWindowSize=0 delay=0 maxVideoFrameSize=0 maxPayloadTransferSize=0
探测流参数:hint=0x0 format=1 frame=1 frameInterval=2000000 keyFrameRate=0 pFrameRate=0 compQuality=0 compWindowSize=0 delay=0 maxVideoFrameSize=614400 maxPayloadTransferSize=3000
最终流参数:hint=0x0 format=1 frame=1 frameInterval=2000000 keyFrameRate=0 pFrameRate=0 compQuality=0 compWindowSize=0 delay=0 maxVideoFrameSize=614400 maxPayloadTransferSize=3000
第一行是您在程序中设置的连接摄像头的值。(初始流参数)
第二行是摄像头根据您的值返回的值。
第三行是USB摄像头的新保存和最终值。
第一个方法的输出:isoRead:
EOF frameLen=10436. --> 例如,这里一个帧的结束长度为10436,而不是我们从控制传输中预期的614400,因此您可能需要更改程序中的一些值以获得有效的帧大小。








