diff --git a/market/1M带宽的服务器视频分辨率、帧率和码率应该怎么选.md b/market/1M带宽的服务器视频分辨率、帧率和码率应该怎么选.md new file mode 100644 index 0000000..3815ce3 --- /dev/null +++ b/market/1M带宽的服务器视频分辨率、帧率和码率应该怎么选.md @@ -0,0 +1,103 @@ + +# 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) diff --git a/market/README.md b/market/README.md index 8f53d5f..e6c7e86 100644 --- a/market/README.md +++ b/market/README.md @@ -9,4 +9,5 @@ ## 视频网站技术相关 -* 运营一个视频网站网络流量+服务器成本估 +* [1M带宽的服务器视频分辨率、帧率和码率应该怎么选?](./1M带宽的服务器视频分辨率、帧率和码率应该怎么选.md) +* 运营一个视频网站网络流量+服务器成本估算