技术参数

使用 VPS 搭建,几乎完全静态化。

注意⚠️:此页面已经过时,请查看最新的对应页面

主机状态

CDN 节点调试 URL

本站架构

本站使用了全站 CDN,其中国内是解析到国内的 UPYUN 节点,国外访问使用 CloudFront,均支持 HTTP/2,仅国外访问支持 IPv6。

其中的多媒体文件(包括但不限于图片、视频)均存放到了 Google Cloud Storage 的 Multi-Regional Asia 地区,多媒体前端使用香港 CN2 虚拟主机自带的 CDN 服务进行加速。其中国外的 CDN 节点与 Google Cloud Storage 之间开启了 Interconnect;国内的 CDN 节点经过了 UPYUN 的缓存。

视频参数

视频格式

此网站使用自己的 CDN 加速视频,使用 MP4 格式,从 2016 年开始,所有的视频还将有 WEBM 格式,并且我还会逐渐的让以前的视频也支持 WEBM。

视频质量

使用 qHD(540p)准高清(腾讯视频将其称作为超清也是醉了)。同时使用 MP4 封装的 H.264 + AAC 和 WEBM 封装的 VP9 + Vorbis,每个视频的每种格式使用近似相等的码率,通常后者画质更高一些。本站对于 30 帧的视频使用 1000kbps 的平均码率,60 帧的视频使用 1500kbps 的平均码率;音频均为单声道 64kbps 码率。通常本站的视频(无论是什么格式)在 720p 或更低分辨率下的屏幕上都显得十分清晰(例如 iPhone 6,这只是主观测试)。更高分辨率下的屏幕下若使用 MP4 格式,能看到明显的画质下降的痕迹,WEBM 有明显优势。

MP4/H.264 压缩方式

  • 视频:H.264 多通路,平均码率 1000k(对于 60 帧的,使用 1500k),540p 画质,降分辨率使用线性滤镜,多次通过
  • 音频:AAC 单声道,平均码率 64k

WEBM/VP9 压缩方式

  • 视频:libvpx-VP9,平均码率 1000k(对于 60 帧的,使用 1500k),540p 画质,两次通过
  • 音频:Vorbis 单声道,平均码率 64k

压制参数

1080p/2160p MP4/HEVC

./ffmpeg -y -i <input> -c:v libx265 -tag:v hvc1 -threads 8 output.mp4

540p 30帧 MP4/H.264

ffmpeg -y -i input -c:v libx264 -r 30000/1001 -c:a aac -preset veryslow -s 960x540 -b:v 1000k -threads 8 -pass 1 -b:a 64k -ac 1 -f mp4 /dev/null

ffmpeg -y -i input -c:v libx264 -r 30000/1001 -c:a aac -preset veryslow -s 960x540 -b:v 1000k -threads 8 -pass 2 -b:a 64k -ac 1 output.mp4

540p 60帧 MP4/H.264

ffmpeg -y -i input -c:v libx264 -r 60000/1001 -c:a aac -preset veryslow -s 960x540 -b:v 1500k -threads 8 -pass 1 -b:a 64k -ac 1 -f mp4 /dev/null

ffmpeg -y -i input -c:v libx264 -r 60000/1001 -c:a aac -preset veryslow -s 960x540 -b:v 1500k -threads 8 -pass 2 -b:a 64k -ac 1 output.mp4

540p 30帧 WEBM/VP9

ffmpeg -y -i <source> -c:v libvpx-vp9 -pass 1 -b:v 1000K -threads 8 -speed 4 -tile-columns 6 -frame-parallel 1 -b:a 64k -ac 1 -s 960x540 -g 150 -r 30000/1001 -an -f webm /dev/null

ffmpeg -y -i <source> -c:v libvpx-vp9 -pass 2 -b:v 1000K -threads 8 -speed 1 -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 -ac 1 -s 960x540 -r 30000/1001 -c:a libopus -b:a 64k -f webm out.webm

540p 60帧 WEBM/VP9

ffmpeg -y -i <source> -c:v libvpx-vp9 -pass 1 -b:v 1500K -threads 8 -speed 4 -tile-columns 6 -frame-parallel 1 -b:a 64k -ac 1 -s 960x540 -g 250 -r 60000/1001 -an -f webm /dev/null

ffmpeg -y -i <source> -c:v libvpx-vp9 -pass 2 -b:v 1500K -threads 8 -speed 1 -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 -ac 1 -s 960x540 -r 60000/1001 -c:a libopus -b:a 64k -f webm out.webm