今天需要设置Flex中的Camera组件的一些属性,后来发现清晰度不是很高,于是捣鼓了上午半天,设置了很多的参数,竟然发现手册上就是有现成的一些设置方法,郁闷!不过我还是专门设置了几个有用和必要的属性,为自己的程序中应用,其实很简单!

以此为例:
Camera.setMode(320,240,15);

就是要设置一个宽320、高240、播放速率是15fps,他的带宽消耗:

(320*240*15)/1000000 = 1.2(Mbps) = 1152000(Bps)//1000000是1024*1024的取舍写法也即:1000*1000而获得的;

关于所消耗的带宽,换成我们能看懂的带宽计算就是:

320*240*15/8000 = 144K/s (也即每秒144K)//由此可见,画面的尺寸和播放率的播放效果是跟带宽有一定的关系的~

接下来可以这样设置视频的质量:
由于在设置的时候function setQuality(bandwidth:int, quality:int)使用的单位是不一样的,bandwidth使用的是kbps,而不是Bps,要转换(8 bits =1 byte ),所以要转换一下1152000/8 = 144000 (kbps) ,
接下来要设置播放的质量时候必须这样设置

Camera.setQuality(144000,85);// (85为常规的视频质量,最好就采用这个数值)

接下来就是设置传输的视频关键帧了,可以根据实际的带宽情况来设置,记住:关键帧数值越小带宽使用率越大,反之关键帧数值越大带宽使用率越小。值 例如:1 表示每一帧都是关键帧,那么就是每帧都要传输出去,就会加大带宽的使用了,依此类推。可接受值为 1 至 48。对于画面质量要求不高的话,可以设置到48;对于质量要求很高的话,最好设置到5-10左右;

Camera.setKeyFrameInterval(48);

对于摄像头来说,最佳的成像比例是4:3,所以最好是将所成像的比例按照这个最小比例设置!

下面是网络摄像头和数字视频摄像头内置的典型设置:

160 x 120
176 x 144
320 x 240
360 x 240
352 x 288
640 x 480

本地视频捕捉分辨率一般都设置为4:3(宽和高)的比例。虽然没有操作比例的必要,当你入门它不是一个坏的想法。用4:3的比例,您能够优化你的摄像头看到的东西。

一些Flex的Camera的常规设定:

打开摄像头:
Camera camera = Camera.getCamera();

//将摄像头的捕获模式设置为最符合指定要求的本机模式.
camera.setMode(240,180,15);

//指定进行完整传输而不由视频压缩算法进行插值处理的视频帧(称为关键帧)。camera.setKeyFrameInterval(60);

//设置每秒的最大带宽或当前输出视频输入信号所需的画面质量
camera.setQuality(144,85 );
Video video = new Video(camera.width*2, camera.height*2);

//正在捕获视频数据的 Camera 对象
video.attachCamera(camera);

关闭摄像头:

//如果 getCamera() 返回 null,则表明摄像头正由另一个应用程序使用,或者系统上没有安装摄像头。
camera = Camera.getCamera(null);
camera = null;

//正在捕获视频数据的 Camera 对象。 若要切断与该 Video 对象的连接,请传递 null
video.attachCamera(null);

来自:http://www.360doc.com/content/13/0306/23/8006573_269764953.shtml

Flex中设置Camera的视频清晰质量的最佳配合的更多相关文章

  1. Flex中如何通过设置GridLines对象的horizontalAlternateFill样式交错显示LineSeries图表背景颜色的例子

    原文 http://blog.minidx.com/2008/11/27/1652.html 接下来的例子演示了Flex中如何通过设置GridLines对象的horizontalAlternateFi ...

  2. Flex中如何利用FocusManager类的setFocus函数设置TextInput的焦点的例子

    参考:https://blog.csdn.net/liruizhuang/article/details/5876455 <?xml version="1.0" encodi ...

  3. Android使用MediaRecorder和Camera实现视频录制及播放功能整理

    转载请注明出处:http://blog.csdn.net/woshizisezise/article/details/51878566 这两天产品经理向我丢来一个新需求,需要在项目里添加一个视频录制的 ...

  4. 3D图片采集与展示(SurfaceView 自适应 Camera, 录制视频, 抽取帧)

    最近在做一个3D图片采集与展示. 主要功能为:自定义Camera(google 已经摈弃了Camera, 推荐使用Camera2,后续篇幅,我将会用Camera2取代Camera),围绕一个物体360 ...

  5. Flex中NetConnection与NetStream的关系、及浏览器并发连接数测试[转]

    最近在做一个基于BS结构的视频会议系统,决定采用开源的FluorineFx.net与Flex结合的方法进行开发,前期开发都非常顺利,包括同步白板等.但到了实时视频传输的时候,原本设计是每个客户端可以显 ...

  6. 视频主观质量评价工具:MSU Perceptual Video Quality tool

    MSU Perceptual Video Quality tool是莫斯科国立大学(Moscow State University)的Graphics and Media Lab制作的一款视频主观评价 ...

  7. Java Web 中使用ffmpeg实现视频转码、视频截图

    Java Web 中使用ffmpeg实现视频转码.视频截图 转载自:[ http://www.cnblogs.com/dennisit/archive/2013/02/16/2913287.html  ...

  8. 通过优化在UE4中实现良好性能和高质量视觉效果

    转自:http://gad.qq.com/program/translateview/7160166 译者:赵菁菁(轩语轩缘)  审校:李笑达(DDBC4747) 对于任何追求UE4性能最佳.同时又想 ...

  9. 错误:Camera录制视频(6.0错误),5.1正常,7.1正常 (java.lang.RuntimeException: start failed.at android.media.MediaRecorder.native_start(Native Method))

    Process: com.example.mycamera2, PID: 24086 java.lang.RuntimeException: start failed. at android.medi ...

随机推荐

  1. application loader上传报90158错误

    ERROR ITMS-90158:"The following URL schemes found in your app are not in the current format:[XX ...

  2. ubuntu频繁掉线 转

    好长好长时间没来百度空间了,最近闲来无事,正好弥补之前的空缺了!跟Ubuntu打交道已有很长一段时间了,期间遇到了很多问题,我把遇到的一些问题及找到的解决方案记录下来,我想这可能会对那些跟我有同样境遇 ...

  3. 关于jquery中的事件绑定bind()和live()

    live可以说是bind是方法的变种. 二者的主要区别就是live方法的作用机理是事件委托,live方法的作用机理是将事件绑定DOM的根节点上. live方法的处理机制就是把事件绑定在DOM树的根节点 ...

  4. cassandra CQL 3.0 怎样实现 dynamic column;

    1. cassandra有一个好的特点是列之间可以按照column key进行排序:这样当rowkey确定以后,对于同一个“行”的范围(range query)查找是很方便的:官方说法,每一个“行”( ...

  5. 在Hibernate中配置Hilo进行数据绑定测试时出错:org.hibernate.MappingException: Could not instantiate id generator

    在进行学习具体类单表继承时使用hilo类型时总是在调度过程中提示如下信息,无法通过.留下记录备查. 在网上找相关信息, 未解决,详细如下: org.hibernate.MappingException ...

  6. HDU 5950 矩阵快速幂

    Recursive sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  7. 判断JS是否加载完成

    在正常的加载过程中,js的加载都是同步的,也就是在加载过程中,浏览器会阻塞接下来的内容的加载.这时候我们就要用到动态加载,动态加载是异步的,如果我们在后边要用到这个动态加载的js文件里的东西,就要保证 ...

  8. JSONObject转换JSON--将Date转换为指定格式

    项目中,经常会用JSONObject插件将JavaBean或List<JavaBean>转换为JSON格式的字符串,而JavaBean的属性有时候会有java.util.Date这个类型的 ...

  9. popToViewController和dismissviewcontroller的用法

    如果我们有ABC三个controller 1.使用present从A到B.再present到C.如果我们想从C直接回到A的话.直接使用 self  dismissViewControllerAnima ...

  10. Mysql分区简述

    1. 数据量大的时候 mysql分表非常常用,但是mysql还可以分区. 2. 分区就是把同一张表放在不同的磁盘文件上, 当查询的时候首先定位是哪个分区(查询的时候一定要用到分区的key) 3. 分区 ...