c#读取视频流提高帧数的问题

问题描述

初学者一个,请问下下面的程序怎样修改可以提高视频的帧数,现在连接摄像头读图像帧数太低,一卡一卡的,谢谢![code=csharp]/***************************************************************************************summary:字节数组生成图片**************************************************************************************/privateImagebyteArrayToImage(byte[]Bytes,intcount){using(MemoryStreamms=newMemoryStream(Bytes,0,count)){ImageoutputImg=Image.FromStream(ms);returnoutputImg;}}/***************************************************************************************summary:获取视频流**************************************************************************************/privatevoidGetStream(stringUriString){HttpWebRequestrequest=null;HttpWebResponseresponse=null;Streamstream=null;System.DateTimetime;intfps=0;constintbufSize=512*1024;//视频图片缓冲byte[]jpg_buf=newbyte[bufSize];//buffertoreadjpgconstintreadSize=10;//每次最大获取的流byte[]buffer=newbyte[readSize];//buffertoreadstreamwhile(true){try{time=System.DateTime.Now;fps=0;request=(HttpWebRequest)System.Net.WebRequest.Create(UriString);response=(HttpWebResponse)request.GetResponse();intread;intstatus=0;intjpg_count=0;//jpg数据下标while(true){stream=response.GetResponseStream();if((read=stream.Read(buffer,0,readSize))>0){for(inti=0;i<read;i++){switch(status){//Content-Length:case0:if(buffer[i]==(byte)'C')status++;elsestatus=0;break;case1:if(buffer[i]==(byte)'o')status++;elsestatus=0;break;case2:if(buffer[i]==(byte)'n')status++;elsestatus=0;break;case3:if(buffer[i]==(byte)'t')status++;elsestatus=0;break;case4:if(buffer[i]==(byte)'e')status++;elsestatus=0;break;case5:if(buffer[i]==(byte)'n')status++;elsestatus=0;break;case6:if(buffer[i]==(byte)'t')status++;elsestatus=0;break;case7:if(buffer[i]==(byte)'-')status++;elsestatus=0;break;case8:if(buffer[i]==(byte)'L')status++;elsestatus=0;break;case9:if(buffer[i]==(byte)'e')status++;elsestatus=0;break;case10:if(buffer[i]==(byte)'n')status++;elsestatus=0;break;case11:if(buffer[i]==(byte)'g')status++;elsestatus=0;break;case12:if(buffer[i]==(byte)'t')status++;elsestatus=0;break;case13:if(buffer[i]==(byte)'h')status++;elsestatus=0;break;case14:if(buffer[i]==(byte)':')status++;elsestatus=0;break;case15:if(buffer[i]==0xFF)status++;jpg_count=0;jpg_buf[jpg_count++]=buffer[i];break;case16:if(buffer[i]==0xD8){status++;jpg_buf[jpg_count++]=buffer[i];}else{if(buffer[i]!=0xFF)status=15;}break;case17:jpg_buf[jpg_count++]=buffer[i];if(buffer[i]==0xFF)status++;if(jpg_count>=bufSize)status=0;break;case18:jpg_buf[jpg_count++]=buffer[i];if(buffer[i]==0xD9){status=0;//jpg接收完成this.Invoke((EventHandler)delegate{fps++;image=byteArrayToImage(jpg_buf,jpg_count);map=newBitmap(image);Image<Bgr,byte>img=newImage<Bgr,byte>(map);map=img.ToBitmap();img_src=newImage<Bgr,Byte>(map);img_show=screen(img_src);img_show=imageMatch(img_show,img_tem);if(System.DateTime.Now>=time.AddSeconds(1)){label2.Text=fps.ToString()+"fps";fps=0;time=System.DateTime.Now;}});}else{if(buffer[i]!=0xFF)status=17;}break;default:status=0;break;}}}}}catch(Exception){//textBox2.Text=ex.Message;if(request!=null){request.Abort();request=null;}//closeresponsestreamif(response!=null){response.Close();response=null;}//closeresponseif(stream!=null){stream.Close();stream=null;}}}}/code]

解决方案

解决方案二:
我靠,头一次看见这样读ContentLength的,response里就有啊。。。
解决方案三:
引用1楼shingoscar的回复:

我靠,头一次看见这样读ContentLength的,response里就有啊。。。

能给个大致思路吗?因为这个程序是X宝卖家给的,不是很明白

时间: 2024-10-25 12:34:34

c#读取视频流提高帧数的问题的相关文章

php读取flash文件高宽帧数背景颜色的方法

  本文实例讲述了php读取flash文件高宽帧数背景颜色的方法.分享给大家供大家参考. 具体实现方法如下: 代码如下: /* 示例: $file = '/data/ad_files/5/5.swf'; $flash = new flash(); $flash = $flash->getswfinfo($file); echo " 文件的宽高是:".$flash["width"].":".$info["height"];

mfc-关于MFC读取视频帧数问题

问题描述 关于MFC读取视频帧数问题 除了cvSetCaptureProperty(按照网上教程乱帧问题也一直没解决),或者for循环逐帧,还有其他办法吗? 解决方案 用directshow,不用OPENCV

php读取flash文件高宽帧数背景颜色代码

php教程读取flash文件高宽帧数背景颜色代码 <?php /* 示例:   $file = '/data/ad_files/5/5.swf';   $flash = new flash();   $flash = $flash->getswfinfo($file);   echo " 文件的宽高是:".$flash["width"].":".$info["height"];   echo " 文件版本

电脑帧数很低怎么办

一般情况电脑配置没有达到要求可能会造成电脑玩哟写高配置游戏出现卡屏幕或者游戏界面跟不上的情况,所有首先需要保证电脑配置必须完全支持游戏的运行才可以的.比如一般玩魔兽世界.CF游戏显卡还是集成的显卡的话一般就支持运行不了的哦.唯一的解决方法就是更换加强配置了. 如果电脑配置达到的了要求还是出现帧数很低的情况的话,那解决方法如下: 电脑常识 1.首先对电脑不要进行超频的操作,保存系统推荐的稳定运行,然后尝试将电脑元件cpu.内存和主板总线频率在内的可调节元件参数降低一个档次,一般在购买电脑的主板说明

wallpaper engine帧数怎么设置?

wallpaper engine帧数怎么设置?   笔者的设置 效果一览 如果你的配置(显卡)还可以,10-25是不错的,神机可以无视一切开60帧.

暗黑3电脑卡,帧数过低怎么办

玩暗黑3时电脑卡,帧数过低怎么办?本为大家总结了时下暗黑3卡帧数.帧数过低的全部解决方式,希望可以帮到大家. 电脑常识   其他更多方式 1.确保开启你的独显.屏幕右下角可以看 2.确保电源选项是高性能.供电不足会导致性能下降 3.确保散热选择强散热.温度过高会导致降频 4.查看驱动是否更新.最好先备份,新驱动可能不稳定,可以使用驱动精灵等软件. 5.如果还是有问题请试试看修改暴雪硬件识别等级 修改兼容性 6.硬盘参数修改

解决Fraps在win7或vista下无法显示帧数的问题

本人自从Vista升到Win7之后就没有正常使用过Fraps,无法在游戏中显示帧数,用了很多版本都不行,在网上也没有找到解决方法 前两天刚刚装了正式版的Win7,64位的,持侥幸心理安装了Fraps,运行PES 2009测试了一下,可以正常显示,但是第二天开机之后又不行了,不管什么游戏都不行. 遂自己研究,偶然情况下发现,使用管理员身份运行游戏之后就可以正常显示帧数了(方法不用教吧?右键单击快捷方式,然后点"以管理员身份运行"),希望能帮上那些Vista和Win7系统下无法正常使用Fr

采用AMD双显卡交火、叠加机型对于游戏帧数的影响

使用AMD显卡交火技术的机型,在正常运行大型3D游戏过程中会遇到卡顿的现象. 原因分析: 此类现象出现的原因是游戏对于AMD Dual Graphcis双显卡共同工作技术不兼容导致. 解决方案: 首先,请右击桌面任意空白位置,选择"显示卡属性"选项,打开AMD显卡控制台,如下图: 请点击"首选项"按钮 打开"首选项"菜单,如下图,将视图模式改为"高级视图"; 第二步,请右击左侧的功能栏中的"性能"选项卡,找

java gif 帧数-java如何获取gif帧或者区分静态gif和动态gif

问题描述 java如何获取gif帧或者区分静态gif和动态gif java语音怎么获取gif图的帧数,或者有什么第三方jar可以做到? 另外程序如何区分静态的gif和动态的gif