Documentation of filesite.io. https://filesite.io
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
4.3 KiB

2 years ago
# 1M带宽的服务器视频分辨率、帧率和码率应该怎么选
初创团队,或者个人刚开始建视频网站,
考虑到实际情况以及成本,服务器带宽可以从 **1M** 开始。
那么 **1M** 的带宽,视频准备的时候,它的**分辨率、帧率和码率应该怎么选**呢?
先说结论:
> 根据大公司的标准,1Mbps带宽应该设置视频帧率 24fps,分辨率 360p,码率 1Mbps
实际操作中,1Mbps带宽可以设置视频帧**率 24fps,分辨率480p或者540p,码率 500Kbps - 700Kbps**
都是可以在**保证视频清晰度的前提下,能顺畅地播放**的。
感兴趣的朋友欢迎仔细阅读(大致耗时 3 分钟)。
## 电脑数据存储单位Bits和Bytes
电脑存储和互联网中传输的数据通常用**位**(Bits)和**字节**(Bytes)计量。
> At the smallest scale in the computer, information is stored as bits and bytes.
* a "bit" is atomic: the smallest unit of storage
* A bit stores just a 0 or 1
* Group 8 bits together to make 1 byte
(参考下面斯坦福大学在线网址原文)
翻译:
> 电脑里的数据以**位(Bits)**和**字节(Bytes)**存储
* “位”是最小的存储单元
* 一个位只能存储 0 和 1
* 8 个位组成一个字节
## 1M 带宽最大下载速度:128KB/s
通常带宽用的单位是**位(Bits)**,用小写的 **b** 表示,例如 **1M** 带宽完整说法是:**1Mbps**;
而网络下载速度通常用的单位是**字节(Bytes)**,用大写的 **B** 表示,例如 **2M/s** 下载速度完整说法是:**2MB/s** 或者 **2MBps**
那么按上面字节跟位的关系,可以得出带宽跟下载速度之间的关系如下:
> 带宽(位) / 8 = 下载速度(字节)
常见的数据存储单位及其关系如下:
| 单位 | 数量 |
| ---- | ---- |
| bit | 1 位 |
| byte | 8 位 |
| KB | 1024B |
| MB | 1024KB |
| GB | 1024MB |
| TB | 1024GB |
从而得出 **1M** 带宽的最大下载速度为 **128KB/s** ,计算方法:
> 1Mbps / 8 = 1024Kbps / 8 = 128KBps = **128KB/s**
## 根据下载速度反推视频码率
如果你对码率和带宽的单位很熟悉,它们都是**位(Bits)**,那么很容易得出 **1Mbps** 的带宽,视频要想很顺畅地播放,码率不能超过 **1Mbps**
当然你也可以从下载速度来反推,1Mbps带宽的服务器,视频下载速度如果在 **128KB/s** 以下,就可以顺畅播放,用下载速度乘以8就得出视频的码率不能超过 **1Mbps**
## 根据码率选择帧率和分辨率
帧率可以参考谷歌推荐的常用帧率:
> Common frame rates include: 24, 25, 30, 48, 50, 60 frames per second
为了减小视频文件大小,可以取最小的 **24帧/s**
从谷歌推荐的码率及帧率表格来看(见下面参考资料),**480p** 分辨率的码率就达到 **2.5 Mbps**了,是 **1Mbps** 带宽的2.5倍了,
只能选择 **1Mbps** 码率的 **360p** 分辨率了。
实际操作中,可以**选用24帧/s和480p分辨率情况下适当调小码率**,例如:480p分辨率的视频码率调整到 **500Kbps - 600Kbps**,视频清晰度依然能接受,而且这个码率在 **1Mbps** 的带宽下是可以很顺畅地播放的。
下面是一个在 **1Mbps** 带宽服务器里存放的能顺畅播放的视频的部分信息:
> Duration: 00:04:33.07, start: 0.000000, **bitrate: 509 kb/s**
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x480 [SAR 4:3 DAR 16:9], 374 kb/s, **23.98 fps**, 23.98 tbr, 24k tbn, 47.95 tbc (default)
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
它的分辨率是 **480p**,帧率是 **23.98fps**,码率是 **509kb/s**
## 名词解释
* 分辨率 - Resolution,屏幕图像的精密度,通常表示成每英寸像素(Pixel per inch, ppi)和每英寸点(Dot per inch, dpi)
* 帧率 - Frame Rate,每一秒播放的画面数量
* 码率 - BitRate,每一秒播放的画面的数据大小,单位是位(Bits)
* ps - Per second,每秒的缩写
## 参考资料
* [Bits and Bytes web.stanford.edu(斯坦福大学)](https://web.stanford.edu/class/cs101/bits-bytes.html)
* [YouTube recommended upload encoding settings](https://support.google.com/youtube/answer/1722171?hl=en#zippy=%2Cframe-rate)