**帧率：**FPS（每秒钟要多少帧画面）；  以及Gop（表示多少秒一个I帧）

**码率：**编码器每秒编出的数据大小，单位是kbps，比如800kbps代表编码器每秒产生800kb（或100KB）的数据。

**分辨率：**单位英寸中所包含的像素点数； VGA：Video Graphics Array（视频图像分辨率）

**三者的对应直播质量的影响因素：**
帧率：影响画面流畅度，与画面流畅度成正比：帧率越大，画面越流畅；帧率越小，画面越有跳动感。如果码率为变量，则帧率也会影响体积，帧率越高，每秒钟经过的画面越多，需要的码率也越高，体积也越大。帧率就是在1秒钟时间里传输的图片的帧数，也可以理解为图形处理器每秒钟能够刷新几次。
分辨率：影响图像大小，与图像大小成正比：分辨率越高，图像越大；分辨率越低，图像越小。
清晰度
在码率一定的情况下，分辨率与清晰度成反比关系：分辨率越高，图像越不清晰，分辨率越低，图像越清晰。
在分辨率一定的情况下，码率与清晰度成正比关系，码率越高，图像越清晰；码率越低，图像越不清晰。

**关于一个视频流的数据量：**
		码率如果为10Mb/s，代表1秒钟有10M bit的视频数据，对于YUV422格式的1080P视频而言，一帧图像是 1920x1080x2x8/1024/1024 = 31.64Mbit，1秒钟30帧图像的话，则有949.2Mb/s，可见其数据量之大，不压缩根本无法网上传播，所以一定要经过视频压缩处理，不要以为1080P的视频就一定是高清的，清晰度还跟视频码率密切相关，对于1080P的视频而言，蓝光视频的码率是20Mb/s，一般下载的视频码率大都是10Mb/s，一些IPCamera/无人机的码率是2～8Mb/s，而很多视频网站的码率甚至低于5M/s，其实有时还不如高码率的720P清晰。

好的画质是分辨率、帧率和码率三者之间的平衡：


**码率不是越大越好**
		如果不做码率大小上的限制，那么分辨率越高，画质越细腻；帧率越高，视频也越流畅，但相应的码率也会很大，因为每秒钟需要用更多的数据来承载较高的清晰度和流畅度。这对云服务厂商而言这是好事（收入跟流量呈正比），但对您可能意味着更多的费用开支。


**帧率不要超过24**
		如果限定一个码率，比如800kbps，那么帧率越高，编码器就必须加大对单帧画面的压缩比，也就是通过降低画质来承载足够多的帧数。如果视频源来自摄像头，24FPS已经是肉眼极限，所以一般20帧的FPS就已经可以达到很好的用户体验了。


​		有些玩过3D游戏的朋友可能会说，游戏的帧率越高越流畅。这里要注意一定不要混淆场景：游戏追求高帧率的目的是为了尽可能让3D模型渲染出来的运动效果更加接近真实运动轨迹，所以帧率越高越好。 但对摄像头而言，它要采集的目标是真实世界的物体，真实世界本来就没有刷新率的说法，所以这个理论不适用。



**分辨率不盲目攀高**
		如果限定一个码率，比如800kbps，那么分辨率越高就会让编码器越 “为难" ，可以想象，它必须拆东墙补西墙，通过减少色彩信息或者引入马赛克这种“鱼目混珠”的手段来承载足够多的像素点。所以，同样的是2G的一个电影文件，1080p画质的版本可能不如720p画质的版本看起来更清晰。

如果你想显示一段在线视频或者任意的数据流比如视频或者OpenGL 场景，你可以用android中的TextureView做到。







**TextureView的兄弟SurfaceView**

应用程序的视频或者opengl内容往往是显示在一个特别的UI控件中：SurfaceView。SurfaceView的工作方式是创建一个置于应用窗口之后的新窗口。这种方式的效率非常高，因为SurfaceView窗口刷新的时候不需要重绘应用程序的窗口（android普通窗口的视图绘制机制是一层一层的，任何一个子元素或者是局部的刷新都会导致整个视图结构全部重绘一次，因此效率非常低下，不过满足普通应用界面的需求还是绰绰有余），但是SurfaceView也有一些非常不便的限制。

因为SurfaceView的内容不在应用窗口上，所以不能使用变换（平移、缩放、旋转等）。也难以放在ListView或者ScrollView中，不能使用UI控件的一些特性比如`View.setAlpha()`。

为了解决这个问题 Android 4.0中引入了TextureView。

**TextureView**

与SurfaceView相比，TextureView并没有创建一个单独的Surface用来绘制，这使得它可以像一般的View一样执行一些变换操作，设置透明度等。另外，Textureview必须在硬件加速开启的窗口中。



//camera2      音频  2

CameraCharacteristics 是描述相机设备的属性类，其中的属性都是 **固定的**，继承自 `CameraMetadata` 类。类比于旧 API 中的 `CameraInfo` 类。

包括：

曝光补偿（Exposure compensation）、

自动曝光/自动对焦/自动白平衡模式（AE / AF / AWB mode）、

自动曝光/自动白平衡锁（AE / AWB lock）、

自动对焦触发器（AF trigger）、

拍摄前自动曝光触发器（Precapture AE trigger）

、测量区域（Metering regions）、

闪光灯触发器（Flash trigger）

、曝光时间（Exposure time）、

感光度（ISO Sensitivity）、

帧间隔（Frame duration）、

镜头对焦距离（Lens focus distance）、

色彩校正矩阵（Color correction matrix）、

JPEG 元数据（JPEG metadata）、

色调映射曲线（Tonemap curve）、

裁剪区域（Crop region）、

目标 FPS 范围（Target FPS range）、拍摄意图（Capture intent）、硬件视频防抖（Video stabilization）等。