【音视频—基础】分辨率、码率和帧率

一、分辨率:

分为显示分辨率和图像分辨率。

1.、显示分辨率(屏幕分辨率):是指平面图像的精密度,显示其所能显示的像素有多少。显示器可以显示的像素越多,画面就越精细。

2、图像分辨率:单位英寸中所包含的像素点数,图像分辨率的表达方式为:水平像素数 * 垂直像素数

二、码率:

码率也叫比特率,表示经过压缩编码后的音视频数据每秒需要经过多少个比特率来表示,即把每秒显示的图像进行压缩后的数据量。单位为kbs即千位每秒。分为CBR(固定码率)与VBR(动态码率)。

固定码率CBR:指文件从头到尾都是一种码率,这是以固定文件大小为前提的压缩方式。动态码率VBR:指没有固定的码率,压缩时根据视音频数据即时确定使用什么码率,这是以质量为前提兼顾文件大小的压缩方式。

视频分辨率、码率对应表 

大家可以看到上面的表格,是我们日常与用户沟通关于分辨率和码率问题时用得最多的。这表格,直观反映了分辨率和码率的关系,视频是否流畅,与帧率有关
视频是否清晰,与分辨率有关。文件传输网络带宽要求大小,与输出码率有关。

一般来说码率越大,处理出来的文件就越接近原始文件,但文件体积与码率是成正比的,所以几乎所有的编码格式重视的都是如何用最低的码率达到最少的失真。

现在都是一个自拍的年代,相信大家平时也经常用微信分享一些图片以及微信视频聊天,是吧?大家可以对比一下用一部iPhone和一部国产手机去拍照和视频聊天的时候,是不是清晰度不一样呢?那是因为摄像头的分辨率不同,拍出的照片显示的分辨率就不一样。然后屏幕的分辨率不一样,导致显示也有差异,因为两者之间的分辨率不同,所以导致视频和照片的清晰度不一样。从我刚刚说的例子,大家就知道了,分辨率的重要性了。
分辨率:分为显示分辨率和图像分辨率
显示分辨率(屏幕分辨率):可以理解为屏幕图像的精密度,你手机或者电脑的显示器能显示像素有多少,显示器可显示的像素越多,画面就越精细。
图像分辨率:每一英寸中所包含的像素点数,你手机摄像头像素越高,你出来的照片所含的像素越多,图像分辨率的表达方式为“水平像素数×垂直像素数。
大家都知道,动画或者视频是由多张连续的照片组合起来的,所以视频分辨率等于组合照片的分辨率。

三、帧率

帧率是指动画或视频每秒放映的画面数,单位是fps。

一帧就是一副静止的画面,连续的帧就形成动画,如电视图像、视频等。每秒帧数越多,所显示的动作就越流畅。

每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数。高的帧率可以得到更流畅、更逼真的动画。10-30fps,一般来说30fps就是可以接受。

四、分辨率、帧率、码率之间的关系

封装格式和编码的关系,就是和酒与酒瓶的关系差不多,而播放器就是开酒器。为了可以喝更好的酒,最好先了解酒是什么酒,酒瓶是什么酒瓶,怎么使用开酒器开酒瓶。码率或者可以比喻做酒的原料。对于同一个酒瓶和做同一种酒的情况下,如果原料太少,又要要求用酒把酒瓶灌满,此时只好兑水了,酒的品质就会变差了。然而,如果原料太多,又会造成原料浪费。所以要做好酒,我们就需要充足的原料。同样道理,压制一个视频,充足的码率是非常需要的。如果码率过高,画质提升不上去的同时还使视频体积过大。如果码率不足,视频容易出各种各样的问题,导致压崩。当然,码率不是画质的唯一指标,压制的时候的各种参数设置,各种滤镜也是非常重要的。如果码率给得足够高,理论上各编码的画质是一样的,不过体积完全不一样。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
前端无法直接获取视频的相关信息,需要借助一些第三方库或者后端接口来实现。以下是一种基本的思路: 1. 获取视频地址,可以使用 HTML5 的 video 标签来实现。 ```html <video src="your-video-url"></video> ``` 2. 创建一个新的 video 元素,将视频地址赋值给它,并监听它的 loadedmetadata 事件。在事件回调中可以获取到视频的基本信息,如时长等。同时,还可以通过 video 元素的 videoWidth 和 videoHeight 属性获取视频的分辨率。 ```javascript const video = document.createElement('video'); video.src = 'your-video-url'; video.addEventListener('loadedmetadata', () => { console.log('视频时长:', video.duration); console.log('视频分辨率:', video.videoWidth, 'x', video.videoHeight); }); ``` 3. 获取视频码、帧、总帧数等信息,需要使用一些第三方库,如 ffprobe.js。该库提供了一个 JavaScript 封装,可以在浏览器中轻松地获取视频的详细信息。使用方法如下: ```javascript const probe = require('ffprobe.js'); probe('your-video-url').then((info) => { console.log('视频码:', info.format.bit_rate); console.log('视频编码格式:', info.streams[0].codec_long_name); console.log('音频编码格式:', info.streams[1].codec_long_name); console.log('音频采样:', info.streams[1].sample_rate); console.log('音频采样位:', info.streams[1].bits_per_raw_sample); console.log('总帧数:', info.streams[0].nb_frames); console.log('帧:', info.streams[0].r_frame_rate); console.log('幅面:', info.streams[0].display_aspect_ratio); }).catch((error) => { console.log('获取视频信息失败:', error); }); ``` 需要注意的是,ffprobe.js 库需要在服务器端运行,无法在前端直接使用。因此,在前端获取视频信息时,需要将请求发送到服务器端,由服务器端调用 ffprobe.js 库来获取视频信息,然后将结果返回给前端。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大猩猩爱分享

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值