(no title)
实时视频应用中的FEC和网络自适应
网络自适应(拥塞控制)是指根据网络的状况实时动态的去调整码率,什么时候调整主要是根据网络中的时延和丢包的情况来,当网络状况出现恶化的情况时,码率向下调,和FEC没什么关系,当要上调的时候,如果单纯依靠视频数据,很难做到精确的码率控制,不同质量的Video间,码率间隔可能会非常大,如果直接调整,会对网络造成比较大的冲击,导致拥塞。
工作流程
“Congestion Control Using FEC for Conversational Media”对用FEC探测带宽有比较详细的说明。
内部状态
FEC Probing过程中有四个状态:
1 | ^ ......... |
+ - - - - - - - - - - - - - - - - - - - - - - - -+
| +--------------------------------------------+ |
| Media Encoder/Decoder |
| +--------------------------------------------+ |
| |
| +- -- -- -- -- -- -- -+ +- -- -- -- -+ |
| Rate Control | | RTP |
| | Module | | | |
+- -- -- -- -- -- -- -+ +- -- -- -- -+
| ^ | | |
| | | Source
| | R +--------------------+ | RTP |
| T | |
| | C | | |
| P | |
| | +----------+ +----------------+ |
| F | FEC Code |<--->| FEC Module |
| | B +----------+ +----------------+ |
| | | |
| |------------------------+ | | |
| RTCP FB Repair | | Source
| | RTP | | RTP |
| | |
| +--------------------------------------------+ |
| RTP Processing Layer |
| | (Queue) | |
+--------------------------------------------+
| | |
+--------------------------------------------+
| | Transport Layer (UDP) | |
+--------------------------------------------+
| | |
+--------------------------------------------+
| | IP | |
+--------------------------------------------+
| |
| Endpoint |
+ - - - - - - - - - - - - - - - - - - - - - - - +
```
这里面有几个关键的问题:
- Video和FEC的带宽如何分配,FEC加的多了,能抗的丢包也就多,但是Video的质量会有一定影响。
- 和网络自适应的协调,丢包达到一定阈值网络自适应才会下调评估带宽,FEC则必须能修复这种情况下的丢包。
- 在有多路Video流的情况下,怎么加FEC,哪些流加,加多少。
- 如何保证这种情况下Audio的质量。m