- 操作系统: Linux 6.8.0-88-generic
- 网络拓扑: Sender -> Relay -> Receiver (三跳单向链路)
- 网络模拟: 使用
tc+netem在本地回环接口模拟丢包和延迟- 基础延迟: 25ms
- 丢包率: 0%, 5%, 10%, 15%
- 视频源:
ice_4cif_30fps.y4m(704x576, 30fps) - 编码参数: CBR 3000kbps
- 实验时长: 10秒/次
- 重复次数: 每组配置重复3次,取平均值
| 方案标识 | Sender冗余 (R) | Relay操作 | 理论总开销 |
|---|---|---|---|
passthrough_r01 |
0.1 (10%) | 透传 (R=0) | 1.1x |
recode_r01 |
0.1 (10%) | 重编码 (R=0.1) | 1.2x |
passthrough_r02 |
0.2 (20%) | 透传 (R=0) | 1.2x |
recode_r02 |
0.2 (20%) | 重编码 (R=0.2) | 1.4x |
| 丢包率 (%) | 模式 | 帧可解码率 (%) | 平均延迟 (ms) | P95延迟 (ms) |
|---|---|---|---|---|
| 0 | 透传 (R=0.1) | 100.0 | 50.1 | 51 |
| 重编码 (R=0.1) | 100.0 | 50.1 | 51 | |
| 透传 (R=0.2) | 100.0 | 50.1 | 51 | |
| 重编码 (R=0.2) | 100.0 | 50.1 | 51 | |
| 5 | 透传 (R=0.1) | 96.9 | 157.4 | 284 |
| 重编码 (R=0.1) | 97.6 | 158.8 | 284 | |
| 透传 (R=0.2) | 90.9 | 161.3 | 284 | |
| 重编码 (R=0.2) | 98.1 | 118.8 | 217 | |
| 10 | 透传 (R=0.1) | 71.7 | 224.9 | 351 |
| 重编码 (R=0.1) | 72.2 | 222.9 | 351 | |
| 透传 (R=0.2) | 73.6 | 213.6 | 351 | |
| 重编码 (R=0.2) | 86.8 | 172.4 | 284 | |
| 15 | 透传 (R=0.1) | 40.4 | 272.2 | 384 |
| 重编码 (R=0.1) | 37.7 | 271.4 | 384 | |
| 透传 (R=0.2) | 54.4 | 261.9 | 384 | |
| 重编码 (R=0.2) | 81.1 | 217.1 | 350 |
- 低丢包场景 (0-5%):
- 在无丢包时,所有方案均达到 100% 可靠性。
- 在 5% 丢包下,仅
recode_r02维持了接近完美 (98.1%) 的解码率,而透传方案(即使是 R=0.2)已出现明显下滑 (90.9%)。
- 高丢包场景 (10-15%):
- 随着丢包率增加,重编码优势显著扩大。
- 在 15% 极端丢包下,
recode_r02仍保持 81.1% 的高可用性,而对应的透传方案passthrough_r02跌至 54.4%,几乎不可用。 - 低冗余 (R=0.1) 的两种方案在高丢包下均表现不佳 (<41%),说明在恶劣网络下必须配合足够的冗余度,重编码才能发挥效能。
- 基准延迟: 0% 丢包时,所有方案平均延迟均为 ~50ms,表明重编码操作本身引入的计算延迟微乎其微。
- 抗抖动能力:
recode_r02在所有丢包场景下的延迟均显著低于其他方案。- 例如在 10% 丢包时,
recode_r02平均延迟为 172.4ms,比passthrough_r02(213.6ms) 低 41ms。 - P95 延迟同样证实了这一点:重编码方案的长尾延迟更低,播放更流畅。
- 重编码显著提升抗丢包能力: 在多跳网络中,Relay 节点的重编码操作能有效修复上游链路的丢包,避免错误累积。
- 高冗余重编码是恶劣网络的首选:
recode_r02(总开销 1.4x) 展现了最佳的韧性,在 15% 丢包下仍能提供基本流畅的视频服务,而透传方案已完全失效。