几个对视频的质量和大小影响最大的参数:帧率、码率和分辨率。
public static final int DEFAULT_VIDEO_WIDTH = 640;
public static final int DEFAULT_VIDEO_HEIGHT = 360; //分辨率
public static final int DEFAULT_VIDEO_BITRATE = 600 * 1024; // 码率默认是600 * 1024 码率600 ;720 * 1280
public static final int DEFAULT_VIDEO_FPS = 20;// 帧速率 fps
public static final int DEFAULT_VIDEO_GOP = 2;//(gop 关键帧间隔)
-- 常见编码模式(VBR/ABR/CBR),码率控制:
1.VBR(Variable Bitrate)动态比特率 也就是没有固定的比特率,压缩软件在压缩时根据音频数据即时确定使用什么比特率,这是以质量为前提兼顾文件大小的方式,推荐编码模式
2.ABR(Average Bitrate)平均比特率 是VBR的一种插值参数。LAME针对CBR不佳的文件体积比和VBR生成文件大小不定的特点独创了这种编码模式。ABR在指定的文件大小内,以每50帧(30帧约1秒)为一段,低频和不敏感频率使用相对低的流量,高频和大动态表现时使用高流量,可以做为VBR和CBR的一种折衷选择。
3.CBR(Constant Bitrate),常数比特率 指文件从头到尾都是一种位速率。相对于VBR和ABR来讲,它压缩出来的文件体积很大,而且音质相对于VBR和ABR不会有明显的提高。
GOP说白了就是两个I帧之间的间隔.比较说GOP为120,如果是720p 60的话,那就是2s一次I帧.gop一般设置为帧率的2倍。
> 视频分辨率
视频分辨率是各类显示器屏幕比例的常用设置,常见的屏幕比例其实只有三种:4:3、16:9和16:10,再加上一个特殊的5:4 18:9。我们常说的视频多少乘多少,严格来说不是分辨率,而是视频的宽和高像素值。
习惯上我们说的分辨率是指图像的高/宽像素值,严格意义上的分辨率是指单位长度内的有效像素值ppi。差别就在这里。图像的高/宽像素值的确和尺寸无关,但单位长度内的有效像素值ppi(每英寸像素Pixel per inch)和尺寸就有关了,显然尺寸越大ppi越小。
CIF是常用的标准化图像格式(Common Intermediate Format),在H.323协议簇中,规定了视频采集设备的标准采集分辨率,CIF = 352×288像素;
QCIF全称Quarter common intermediate format,QCIF也是常用的标准化图像格式,在H.323中,规定QCIF = 176×144像素。
sub-QCIF 128×96 64 48;
QCIF 176×144 88 72;
CIF 352×288 176 144;
4CIF 704×576 352 288(即我们经常说的D1);
16CIF 1408×1152 704 576
-- 监控行业
目前监控行业中主要使用Qcif(176×144)、CIF(352×288)、HALF D1(704×288)、D1(704×576)等几种分辨率。
做闭路电视监控系统这一行久了,大家都以为D1是硬盘录像机显示、录像、回放的分辨率,实际上不是的,D1是数字电视系统显示格式的标准,共分为以下5种规格:
D1:480i格式(525i):720×480(水平480线,隔行扫描),和NTSC模拟电视清晰度相同,行频为15.25kHz,相当于我们所说的4CIF(720×576)
D2:480P格式(525p):720×480(水平480线,逐行扫描),较D1隔行扫描要清晰不少,和逐行扫描DVD规格相同,行频为31.5kHz
D3:1080i格式(1125i):1920×1080(水平1080线,隔行扫描),高清方式采用最多的一种分辨率,分辨率为1920×1080i/60Hz,行频为33.75kHz
D4:720p格式(750p):1280×720(水平720线,逐行扫描),虽然分辨率较D3要低,但是因为逐行扫描,市面上更多人感觉相对于1080I(实际逐次540线)视觉效果更加清晰。不过个人感觉来说,在最大分辨率达到1920×1080的情况下,D3要比D4感觉更加清晰,尤其是文字表现力上,分辨率为1280×720p/60Hz,行频为45kHz
D5:1080p格式(1125p),1920×1080(水平1080线,逐行扫描),目前民用高清视频的最高标准,分辨率为1920×1080P/60Hz,行频为67.5KHZ。
其中D1 和D2标准是我们一般模拟电视的最高标准,并不能称的上高清晰,D3的1080i标准是高清晰电视的基本标准,它可以兼容720p格式,而D5的1080P只是专业上的标准。
你选择视频是1280X720的,那么图片的像素比不应该低于1280X720
-- 广播电视级别:一般来说,标清是480p,720p是高清,1080p是全高清(超清)。
标清=Standard Definition=SD,480p
NTSC制式标清:纵向480线=480i/p (640x480, 704x480, 720x480, 848x480等)
PAL制式标清:纵向576线=576i/p (720x576, 768x576, 1024x576等)
高清 = High Definition=HD=纵向720线=720p (960x720,1280x720),分辨率为1280×720p/60Hz,行频为45kHz 。
全高清 = Full High Definition=FHD=纵向1080线=1080i/p(1440x1080,1920x1080)
-- 院线电影级别:以横向像素为准(与广播电视级别以纵向像素数不同。)
2K=2048x1080;
4K=4096x2160;
8K=8192x4320;
-- 电影分享网站/小组约定俗成标准:
高清=1280x720或者1920x1080。可用720p或者1080p代表。由于电影本身可能比16:9比例更宽,故就算纵向不达720像素,只要横向达1280像素,通常仍被称为720p。所以形似1280x544这样的分辨率,也被算作720p。
-- YouTube标准:
144p, 288p, 360p, 480p, 720p(HD), 1080p(HD), 1440p(HD), 2160p(4K), 4320p(8K)
-- X酷标准:
标清=448x336,512x288 (远不足480p)
高清=576x432,672x378 (前者不足480p标准)
超清=1104x622 (远不足720p,也不足iPhone5的1136x640)
1080p=1920x1080 (足了……仅仅是分辨率足了而已)
> 视频码率
视频码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。通俗一点的理解就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件。
码率:影响体积,与体积成正比;码率越大,体积越大;码率越小,体积越小。
视频码率:cbr(固定码率)与vbr(可变码率)。
DVD分辨率一般是720*576像素,采用MPG2编码,码率为6M-10M/s;
VCD分辨率一般是352*288像素,视频采用MPEG-1压缩编码,音频采用MPEG 1/2编码,码率上,视频为1150KB/s,音频224KB/s.
视频码率,帧率和分辨率的联系与区别- http://blog.csdn.net/ameyume/article/details/7308504
wav格式码率=采样率 x 位深度 x 声道;文件大小 = 码率 x 时长
> 帧率, FPS
每秒钟视频帧数(24/25/30/48/60 FPS);
由于人类眼睛的特殊生理结构,如果所看画面之帧率高于24的时候,就会认为是连贯的,此现象称之为视觉暂留。这也就是为什么电影胶片是一格一格拍摄出来,然后快速播放的。
而对游戏,一般来说,第一人称射击游戏比较注重FPS的高低,如果FPS<30的话,游戏会显得不连贯。所以有一句有趣的话:“FPS(指FPS游戏)重在FPS(指帧率)。每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数。高的帧率可以得到更流畅、更逼真的动画。一般来说30fps就是可以接受的,但是将性能提升至60fps则可以明显提升交互感和逼真感,但是一般来说超过75fps一般就不容易察觉到有明显的流畅度提升了。如果帧率超过屏幕刷新率只会浪费图形处理的能力,因为监视器不能以这么快的速度更新,这样超过刷新率的帧率就浪费掉了。
> Android 推流--分辨率、帧率和码率三者之间的关系
1.帧率:FPS(每秒钟要多少帧画面); 以及Gop(表示多少秒一个I帧)
2.码率:编码器每秒编出的数据大小,单位是kbps,比如800kbps代表编码器每秒产生800kb(或100KB)的数据。
3.分辨率:单位英寸中所包含的像素点数, VGA:Video Graphics Array(视频图像分辨率)
4.关键帧(key frame):任何动画要表现运动或变化,至少前后要给出两个不同的关键状态,而中间状态的变化和衔接电脑可以自动完成,即表示关键状态的帧叫做关键帧。
5.过渡帧(interim frame):在两个关键帧之间,电脑自动完成过渡画面的帧叫做过渡帧。
-- 三者的对应直播质量的影响因素:
1.帧率:影响画面流畅度,与画面流畅度成正比;帧率越大,画面越流畅;帧率越小,画面越有跳动感。如果码率为变量,则帧率也会影响体积,帧率越高,每秒钟经过的画面越多,需要的码率也越高,体积也越大。帧率就是在1秒钟时间里传输的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次。
2.分辨率:影响图像大小,与图像大小成正比:分辨率越高,图像越大;分辨率越低,图像越小。
3.清晰度:
在码率一定的情况下,分辨率与清晰度成反比关系;分辨率越高,图像越不清晰,分辨率越低,图像越清晰。
在分辨率一定的情况下,码率与清晰度成正比关系;码率越高,图像越清晰;码率越低,图像越不清晰。
通过上面关系的说明,可以大概知道好的画质是分辨率、帧率和码率三者之间的平衡,下面通过一个视频流的数据量说明来更直观的感受:
码率如果为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清晰。
> 带宽 / 码流 / 人数
带宽 / (码流 * 8) = 同时在线人数;文件大小 = 时间×码率/8;流量(kb)=观看视频时长(s)*当前视频码率(kbps)/8??
一个视频文件的大小为5.86M,播放时长为3分7秒:
1,该文件对应的码流就是
5.86 * 1024 * 1024 * 8 / (3 * 60 + 7) =262872.95657754bps
2,10M独享带宽能支撑的同时在线人数
10* 1024 * 1024 / 262872.95657754 =39.889078498294
3,支撑1000人同时在线的系统最少需要的带宽数为
262872* 1000 / (1024 * 1024) = 250.69427490234M
以一个100分钟时长的视频为例,向大家解说一下视频流量的计算方法:一般的视频网站,会把上传的视频转码成为流畅、高清、超清等几个版本,相应的他们对着不
同的码率,那么如何计算不同分辨率下的视频流量呢?
200p —— 对应的码率是256kpbs, 也就是说,一分钟需要流量1.92M, 播放完毕所需的流量是192M;
360p —— 对应的码率是512kpbs, 也就是说,一分钟需要流量3.84M, 播放完毕所需的流量是384M;
720p —— 对应的码率是1024kpbs,也就是说,一分钟需要流量7.68M, 播放完毕所需的流量是768M;
1080i—— 对应的码率是1800kpbs,也就是说,一分钟需要流量13.5M, 播放完毕所需要的流量是1.35G;
1080P——对应的码率是3500kpbs,也就是说,一分钟所需流量26.25M,播放完比所需要的流量是2.625G。