USB Gadget uvc视频采集传输(帧率)带宽很低是什么回事?

我最近在做一个uvc功能的demo,视频的分辨率我设置为320x240,采用yuyv422格式。板子是与pc均为usb2.0。但是用guvcview查看视频仅有10帧。
按照理论算:320*240*16*10 = 12Mbps,仅仅到达USB1.1的水平,USB2.0不是应该有480Mbps的速率吗?

2个回答

问题已经自行解决:
修改内核/driver/usb/gadget/legacy/webcam.c中的webcam_bind函数,将 uvc_opts->streaming_maxpacket的值改为最大值3072.

u012659156
52ps2 所以说那个微帧的有效载荷能够自定义大小吗?到现在我还是一头雾水
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
USB Gadget设备驱动开发(二) USB Gadget UVC 软件流程分析
一、驱动模块注册方法:module_platform_driver_probe module_platform_driver_probe(ambarella_udc_driver,ambarella_udc_probe); #definemodule_platform_driver_probe(__platform_driver, __platform_probe) \ static int
如何调节视频采集帧率?
我用capCaptureSetSetup调节的时候,返回值是FALSE,参数没有设置成功。rn(此时capture一直处于工作状态。)rn请问各位大虾有可能是什么问题呢?
分辨率和帧率 |码率(带宽)
分辨率和帧率 码率(带宽) 1280*720@20fps 1500 kbps 1280*720@15fps 1300 kbps 1280*720@10fps 1000 kbps 960*540@20fps 1100 kbps 960*540@15fps 900 kbps 960*540@10fps 700 kbps 640*480@20fps...
MDK3308(RK3308)通过USB接口连接UVC摄像头的帧率测试
关键词: Rockchip RK3308 MDK3308 USB UVC HD FHD VGA 640x480 1280x720 帧率 mjpg-streamer frame RK3308本身并不具备摄像头接口,所以需要通过USB接口来进行扩展,最简单的方式是选择UVC摄像头,这里我们采用的是一款HD720即1280x720分辨率的UVC摄像头。 请烧写201905之后...
视频采集,传输
急!!!已经搭建服务器和客户端可以进行通行。已经在服务器端使用OpenCV采集了视频,如何将其一帧一帧传输到客服端进行播放。。
视频采集传输
取自网狐游戏视频功能,值得学习 实现用directshow采集视频,有实现网络传输功能
usb gadget虚拟串口
配置 配置好之后编译重新烧写到开发板,发现出现了/dev/ttyGS0这个设备节点。 将usb线插到PC后,在设备管理器里面出现了一个新的串口设备,如下 实验1、开发板往pc发送数据 打开pc上的串口软件, 在开发板上执行: echo 1234 > /dev/ttyGS0,就会在pc上的串口软件上出现”1234”这几个字符。2、pc往开发板发送数据 打开pc上的串口软件, 在开发板上执
Linux usb gadget
利用Linux USB gadget设备驱动可以实现一些比较有意思的功能,举两个例子: 1、一个嵌入式产品中的某个存储设备,或是一个存储设备的某个分区,可以作为一个U盘被PC;设别,从而非常方便的完成文件交互,这个功能被广泛的应用于手机、数码相机等产品中。2、一个嵌入式设备通过USB连接到你的PC后,在你的PC端会出现一个新的网络连接,在嵌入式设备上也会有一个网卡设备,你可以配置它们的IP地址,并进行网络通讯,俗称USBNET。
usb gadget driver
the gadget driver for linux os Linux_USB_gadget设备驱动.pdf USB设备驱动开发深度解析-宋宝华.pdf 嵌入式Linux下USBGadget驱动框架研究.pdf
USB Gadget API for Linux
USB Gadget API for Linux
Linux usb gadget 驱动
Linux usb gadget 驱动 刘洪涛老师的讲稿,详细整理过的资源。转换为pdf版本。 linux从设备驱动开发的参考资源不多,这是非常好的参考资料。
Linux USB Ethernet Gadget
有人做过 Linux USB Ethernet Gadget 吗? rn现在遇到错误,导致windows这边驱动无法正常安装 rnrndis_msg_parser: unknown RNDIS message 0x6C6C6568 len 111rnusb10: rndis_command_complete: rndis parse error -524
USB Gadget设备驱动开发(一) USB Gadget软件结构
USB Gadget软件结构总共分为三层,其软件架构图如下 一. UDC层    这一层是与硬件相关层。相关文件ambarella_udc.c ambarella_udc.h。ambarella设备控制器作为一个linux设备在这一层是作为platform设备而注册到linux设备模型中的。相关数据结构以及相关函数如下: 1 数据结构ambarella_udc
uvc gadget to support H264 ES stream
有没有哪位大侠实现过通过UVC gadget传输H264基础视频流的摄像头webcam功能?
uvc linux usb摄像头驱动
linux下usb摄像头的驱动,支持绝大多数windows免驱摄像头,绝对好东西
USB Camera (UVC 驱动)
UVC支持YUV和MJPEG的preview,但是奇怪的是上层通过了S_FMT来设置是yuv还是MJPEG,但是并没有找到哪里将MJPEG格式信息通过USB 设置到摄像头这个硬件去了啊。rnrnrn附 过程:rn case VIDIOC_S_FMT:rn if ((ret = uvc_acquire_privileges(handle)) < 0)rn return ret;rnrn return uvc_v4l2_set_format(stream, arg);rnrnand the uvc_v4l2_set_format call ret = uvc_v4l2_try_format(stream, fmt, &probe, &format, &frame);rnuvc_v4l2_try_format is defined as :rnstatic int uvc_v4l2_try_format(struct uvc_streaming *stream,rn struct v4l2_format *fmt, struct uvc_streaming_control *probe,rn struct uvc_format **uvc_format, struct uvc_frame **uvc_frame)rnrn struct uvc_format *format = NULL;rn struct uvc_frame *frame = NULL;rn __u16 rw, rh;rn unsigned int d, maxd;rn unsigned int i;rn __u32 interval;rn int ret = 0;rn __u8 *fcc;rnrn if (fmt->type != stream->type)rn return -EINVAL;rnrn fcc = (__u8 *)&fmt->fmt.pix.pixelformat;rn uvc_trace(UVC_TRACE_FORMAT, "Trying format 0x%08x (%c%c%c%c): %ux%u.\n",rn fmt->fmt.pix.pixelformat,rn fcc[0], fcc[1], fcc[2], fcc[3],rn fmt->fmt.pix.width, fmt->fmt.pix.height);rnrn /* Check if the hardware supports the requested format. */rn for (i = 0; i < stream->nformats; ++i) rn format = &stream->format[i];rn if (format->fcc == fmt->fmt.pix.pixelformat)rn break;rn rnrn if (format == NULL || format->fcc != fmt->fmt.pix.pixelformat) rn uvc_trace(UVC_TRACE_FORMAT, "Unsupported format 0x%08x.\n",rn fmt->fmt.pix.pixelformat);rn return -EINVAL;rn rnrn /* Find the closest image size. The distance between image sizes isrn * the size in pixels of the non-overlapping regions between thern * requested size and the frame-specified size.rn */rn rw = fmt->fmt.pix.width;rn rh = fmt->fmt.pix.height;rn maxd = (unsigned int)-1;rnrn for (i = 0; i < format->nframes; ++i) rn __u16 w = format->frame[i].wWidth;rn __u16 h = format->frame[i].wHeight;rnrn d = min(w, rw) * min(h, rh);rn d = w*h + rw*rh - 2*d;rn if (d < maxd) rn maxd = d;rn frame = &format->frame[i];rn rnrn if (maxd == 0)rn break;rn rnrn if (frame == NULL) rn uvc_trace(UVC_TRACE_FORMAT, "Unsupported size %ux%u.\n",rn fmt->fmt.pix.width, fmt->fmt.pix.height);rn return -EINVAL;rn rnrn /* Use the default frame interval. */rn interval = frame->dwDefaultFrameInterval;rn uvc_trace(UVC_TRACE_FORMAT, "Using default frame interval %u.%u us "rn "(%u.%u fps).\n", interval/10, interval%10, 10000000/interval,rn (100000000/interval)%10);rnrn /* Set the format index, frame index and frame interval. */rn memset(probe, 0, sizeof *probe);rn probe->bmHint = 1; /* dwFrameInterval */rn probe->bFormatIndex = format->index;rn probe->bFrameIndex = frame->bFrameIndex;rn probe->dwFrameInterval = uvc_try_frame_interval(frame, interval);rn /* Some webcams stall the probe control set request when thern * dwMaxVideoFrameSize field is set to zero. The UVC specificationrn * clearly states that the field is read-only from the host, so thisrn * is a webcam bug. Set dwMaxVideoFrameSize to the value reported byrn * the webcam to work around the problem.rn *rn * The workaround could probably be enabled for all webcams, so thern * quirk can be removed if needed. It's currently useful to detectrn * webcam bugs and fix them before they hit the market (providingrn * developers test their webcams with the Linux driver as well as withrn * the Windows driver).rn */rn mutex_lock(&stream->mutex);rn if (stream->dev->quirks & UVC_QUIRK_PROBE_EXTRAFIELDS)rn probe->dwMaxVideoFrameSize =rn stream->ctrl.dwMaxVideoFrameSize;rnrn /* Probe the device. */rn ret = uvc_probe_video(stream, probe);rn mutex_unlock(&stream->mutex);rn if (ret < 0)rn goto done;rnrn fmt->fmt.pix.width = frame->wWidth;rn fmt->fmt.pix.height = frame->wHeight;rn fmt->fmt.pix.field = V4L2_FIELD_NONE;rn fmt->fmt.pix.bytesperline = format->bpp * frame->wWidth / 8;rn fmt->fmt.pix.sizeimage = probe->dwMaxVideoFrameSize;rn fmt->fmt.pix.colorspace = format->colorspace;rn fmt->fmt.pix.priv = 0;rnrn if (uvc_format != NULL)rn *uvc_format = format;rn if (uvc_frame != NULL)rn *uvc_frame = frame;rnrndone:rn return ret;rnrnrnrn
usb camera (uvc)
在安卓手机上,接上USB在安卓手机上,接上USB摄像头,可以在手机上拍照和录像,并且存储
uvc camera在usb带宽不足的情况下,如何正常出图?
    在某些平台设备,如果同时使用多个uvc camera进行数据采集或者是同一个USB,既用作OTG功能,又用作USB host功能,会因为USB 带宽的的限制,导致camera无法正常使用,使用失败的现象如下: uvcvideo: Failed to submit URB 0 (-28). No space left on device     在通过VIDIOC_STREAMON开...
USB gadget 驱动开发问题
(1)rn ·当开发板上的USB口连接到PC-windows( USB驱动为2.0),rn 提示:“如果您将此USB设备连接到高速USB 2.0端口,可以提高其性能”, rn 在我的电脑里看不到相应的盘符。rn ·当开发板上的USB口连接到PC-linux(USB驱动为2.0),不会出现上述问题rn --->>我的电脑右键->管理->磁盘管理, 找到没有盘符的盘区,右键建立盘区,rn 这时我的电脑里就有相应的盘符了,但人看不了,需要格式化。格式化以后,跟rn 普通U盘没有多大区别了,在Pc-windows-linux都可以正常使用了。rn (2)rn 但在开发板上看这个盘(sdcard)中的内容,原来的内容还有,有一部分没有了,rn 不能显示在pc上拷进来的文件夹。即出现,pc访问开发板上的数据跟直接在开发板上访问看到的数据不一致。rn 这样的驱动问题应考虑哪些方面?
usb带宽
我的机器,接有摄像头和usb的ADSL,打开视频时,提示我摄像头的usb带宽不够,请问能够调整ADSL和摄像头在usb上的带宽吗,怎么调?
usb免驱动之UVC
在买一些usb设备的时候,很多商家都有标出“免驱动,即插即用”的字样,大家都知道有一些usb设备,如鼠标等,只要插上不用安装驱动就可以用了,但是有的就需要安装驱动之后才可以用,这是为什么呢?因为一种协议标准-------UVC    图片为网上引用   UVC,全称是USB video class或者USB video device class。它是几家设备厂商联合推出的USB视频捕获设备定
usb camera (uvc) on android
UVC device on android
uvc的usb摄像头笔记
YUY2和MJPG视频编码格式区别 标签: 编码视频 现在绝大多数摄像头所采用的是免驱摄像头,一般有两种传输格式,YUY2和MJPG, 前者是无压缩图像格式的视频,系统资源占用少(因为不用解码),不需要解码器,缺点是帧率稍慢(受限于USB分配的带宽), 后者是相当于JPEG图像压缩格式,优点是帧率高(视频开启快,曝光快),缺点是影像有马赛克,并且需要解码器,会占用PC系统资源。
USB摄像头的帧率太低!
我使用的是ZC0301P的摄像头,用的是SPCA5XX驱动,用VIDCAT抓图(VIDCAT里面用的是LIBJPEG库),但是效率实在是太低,这个是50帧的时间,竟然用了90S,我把VIDCAT里面的COMPRESS都是关了的,但是为什么还是这么费时间阿!?rnreal 1m 31.94srnuser 0m 17.78srnsys 1m 0.42srnrn麻烦高人指点下~
视频采集传输+RTP传输+播放
实时视频采集,将数据进行H264编码后,采用RTP传出方式实时将数据包传输到远程端,远程端接收到数据后实时解码播放。
usb gadget 端点halt的产生
发现某些U盘不是所有的scsi指令集都支持,对于不支持的指令,U盘会产生一个端点halt(stall),usb host会clean halt标志。譬如如下的ReadFormatCapacity指令gadget要主动产生stall的话可调用gadget.h里面的接口:static inline int gadget_is_stall_supported(struct usb_gadget *g){...
\drivers\usb\gadget下所有源代码
smdk2410 kernel 2.4.18 \drivers\usb\gadget目录内的所有文件rn最近做linux usb slave驱动急用 我用的里面没这个目录rn我网上找了很久都没有找到下载rn哪位要是有麻烦发份到我邮箱 sniper167@163.comrn给个下载地址也行rnrn发了麻烦留个名 偶查收后另外开贴50分
USB影音编辑器/USB视频采集
EM2860+SAA7113+EMP202(音频)rn USB视频采集模组方案是禾瑞亚公司自主研发的视频与图像采集的产品方案,应用影音文件制作人员,安防监控,家用,教育等USB视频采集产品领域。方案成本低,性能稳定,开发简单等优点。rn 方案介绍:rn 全新USB2.0接口式外置视频采集设备,全新数码影像解码芯片(EM2860)让您的图像更清晰画面更流畅,支持外部音视频输入实时MPEG-1/2/4影音压缩。rn◆USB接口,480M超高带宽。支持USB2.0与USB1.0。rnrn◆高清晰,图像动静态采集。支持硬件抓拍.rnrn◆图像解析度可达720*576。rnrn◆适用于PC及笔记本电脑,CPU占用低。rnrn◆支持外部PAL、NTSC和SECAM制式的视频信号。rnrn◆实时的图像,音视频的采集和压缩 。rnrn◆USB接口视频设备捕获。rnrn◆支持TWAIN介面,可采集720×576单张画面 。rnrn◆亮度、对比度、饱和度和清晰度等软件可调。rnrn◆支持Microsoft Video for Windows介面。rnrn◆支持多种文件格式:AVI、MPEG-1/2/4、JPG、BMP等。rnrn◆无须外接电源,可带电插拔,即插即用,无须关机、既可安装。rnrn 产品可将PC CAMERA,VCR,CMCORDER,摄像机(CCD,COMS),DVD,VCD以及其它相关影视硬件的输出信号与电脑(PC)轻松连接起来,并随意在电脑对所输入的视频,音频进行实时的采集与编辑,并保存在电脑中。也可将一般模拟影象转为数字影象,并直接在计算机中方便以后读取编辑。rnrn 合作后后我公司提供方案的工程文件(sch文件,PCB文件,drive文件,datasheet文件,SDK二次开发包文件等),与方案所采用IC,并协助合作方开发产品,提供产品后续的技术支持。具体细节请直接与我联系:rnrnrn宋海林(songHL)rn手机: 13537527956rnQQ: 941710307rn邮箱:songhailin@supreme-hk.com
Linux2.6内核usb gadget驱动移植
Linux2.6内核 usb gadget 驱动移植
linux g_ether.ko的问题(usb gadget)
大家好,我手头上有块freescale的ARM板。rn内核和rootfs都是在HDSC卡,内核是linux-2.6-XXX, rootfs是Android的。rn现在的内核和rootfs都支持wifi, 3G(通过USB连接上去)。而且经过测试都没有问题。rn该板上面还有个mini-usb口,OTG负责切换,经过测试一切正常。rn现在我有个想法,以前我记得带2G的手机插上电脑主机端,经过简单配置 可以让电脑主机上网(虽然很慢,费用很贵拉),我现在想既然这块板支持wifi 3g, 我就当其为手机,通过miniusb和主机端相连,让主机端能够上网。rnrn我在网上查了下,据说和usb中的gadget有关, 我找了usbnet和ethernet驱动。但是 查了资料 说是 这是以模拟以太网 来进行主机和客户机的通讯。我有点糊涂。。rn还请有知道怎么弄的大哥帮下忙,我不知道是不是这两个驱动装了,就可以了(我尝试了把g_ether编入内核,但是没用)
求助 usb gadget 驱动移植的问题
公司这个项目搞了快一周了。想重写file_storage.c将开发板模拟成u盘并实现特定的功能,代码没什么说的,主要是编译和加载模块这一块实在搞不懂了。我编译了内核和g_file_storage.ko。并将模块拷入开发板,然后insmod 结果一直是这样的错误rn disagree about version of usb_gadget_register_driverrn unknow symbol of usb_gadget_register_driver(err -22)rn .....rn我看网上说的make clean 然后make 然后make modules_install 然后make installrn我重复n次了问题仍然存在,然后检查了模块的vermagic和开发板给的一模一样,实在不知道问题出哪里。以前从来没有搞过这一块,菜鸟求助各位大神啊。还有我看网上说的要用自己新建的内核源码树,这个在哪里设置呢,我看makefile里面只有一个srctree.什么KERNELDIR的都没有,内核2.6.35.3
v4l2视频采集与传输
视频采集与传输,利用v4l2采集视频,H264编解码视频,UDP视频传输
基于嵌入式系统的视频采集与传输
论文全套资料 基于嵌入式系统的视频采集与传输
arm 视频采集与传输
基于arm9的视频采集与无线传输系统 基于arm9的视频采集与无线传输系统
jmf 视频采集与传输源代码
jmf视频采集传输的源代码。前提是要安装jmf。希望资源能够被大家认同。
MJPEG视频采集传输源码
MJPEG视频采集传输源码
FPGA实现视频采集传输
本文件时一个完整的FPGA工程文件,Quartusii9.0编译器,DE2_70开发板。实现NTSC制式摄像头视频采集,JPEG算法硬件编码,DM9000A网络传输。
基于v4l2视频采集和传输
本程序是采用三个线程来完成接收服务器的控制命令,根据控制命令实现视频采集和cpu内存占有率的计算,视频采集是基于v4l2视频采集和传输的代码。
基于DirectShow的视频采集和传输
本资源介绍了基于DirectShow的视频采集和传输的原理,希望对你有用。
OMAPL138视频采集传输
基于OMAPL138实现图像视频采集和网络传输。 功能: 实现OMAPL138开发板的图像传输,采用的是动态IP分配的方式, 当程序运行时,在局域网的电脑上,打开相应的IP地址, 即可查看画面。 如:程序分配IP为192.168.1.133。在局域网内的电脑浏览器中, 输入192.168.1.133/image.cgi即可看到画面。 ----------------------------------------------------- 在此例程中使用DHCP自动获取IP,也可根据TCP程序的指导书,修改为静态IP。 ------------------------------------------------- 程序运行环境: 在CCS5.5的编程环境下进行程序的编写,可以选择Debug模式或烧写Flash的形式 进行程序演示。
相关热词 c# 线程结束时执行 c# kb mb 图片 c# 替换第几位字符 c#项目决定成败 c# 与matlab c# xml缩进 c#传感器基础 c#操作wps c# md5使用方法 c# 引用父窗口的组件