初创团队,或者个人刚开始建视频网站, 考虑到实际情况以及成本,服务器带宽可以从 1M 开始。
那么 1M 的带宽,视频准备的时候,它的分辨率、帧率和码率应该怎么选呢?
先说结论:
根据大公司的标准,1Mbps带宽应该设置视频帧率 24fps,分辨率 360p,码率 1Mbps
实际操作中,1Mbps带宽可以设置视频帧率 24fps,分辨率480p或者540p,码率 500Kbps - 700Kbps
都是可以在保证视频清晰度的前提下,能顺畅地播放的。
感兴趣的朋友欢迎仔细阅读(大致耗时 3 分钟)。
电脑存储和互联网中传输的数据通常用位(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 个位组成一个字节
通常带宽用的单位是位(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。
For the default 16:9 aspect ratio, encode at these resolutions: