-
Notifications
You must be signed in to change notification settings - Fork 0
Encoding_CN
blycr edited this page Feb 18, 2026
·
10 revisions
MSP v0.9.0+ 引入了硬件加速转码支持,利用 GPU 编码器大幅提升转码速度并降低 CPU 占用。详见 硬件加速转码。
MSP 采用“探测感知 + 优先尝试 + 失败回退”的策略:
-
优先直连 (Try-First):
- 默认先尝试原始流直连。
- 优势:能直连时基本不占服务器 CPU,启动快、画质无损。
-
智能预判 (Probe-Aware):
- 对
AVI/WMV等高风险容器,直接预转码,避免浏览器硬失败。 - 其余格式默认先走直连,只有真实失败才自动回退转码。
- WMV 原始流会带
video/x-ms-wmv响应头,避免 MIME 识别不一致。
- 对
-
失败回退 (Fallback-Next):
- 若直连失败,先做一次同源重试(刷新
ts)。 - 仍失败且允许转码时,自动切到实时转码流。
- 若直连失败,先做一次同源重试(刷新
当浏览器无法播放时,MSP 会调用服务器上的 ffmpeg 进行实时转码。
- 服务器必须安装 FFmpeg。
-
ffmpeg命令必须在系统的 PATH 环境变量中(在终端输入ffmpeg -version能看到输出)。
- 视频: 自动转换为 H.264/AAC MP4 流。
- 音频: 自动转换为 MP3 流。
-
拖动进度条: 支持 (Smart Seeking)。
- MSP v0.8.4+ 支持在转码流中拖动进度条。拖动后,服务器会从指定时间点重新生成流。
为了获得最佳兼容性,强烈建议在 config.json 中开启转码功能:
{
"playback": {
"video": { "transcode": true },
"audio": { "transcode": true }
}
}注:开启此选项不会导致所有视频都转码。常见 MP4(H.264/AAC) 仍优先直连,仅在高风险容器或真实失败时才转码。
这取决于 MKV 内部的编码。如果内部是 H.264,通常会直连。如果内部是 H.265 且浏览器不支持,就会自动转码。
是的,实时视频转码是非常消耗 CPU 的操作。MSP 默认限制了最大 2 个并发转码任务,以防止服务器卡死。
绝大多数现代浏览器(Chrome, Edge, Firefox, Safari)原生支持的编码如下:
-
视频编码:
- H.264 (AVC): 兼容性最好,几乎所有浏览器都支持。
- VP8 / VP9: Google 推出的编码,兼容性很好。
- H.265 (HEVC): 兼容性较差。通常需要硬件支持(如较新的显卡)以及浏览器扩展。
-
音频编码:
- AAC: 兼容性最好。
- MP3: 兼容性很好。
- Opus / Vorbis: 兼容性很好。
- AC-3 (Dolby): 浏览器通常不支持。