OTT 的快速频道切换(FCC)

news/2024/11/26 0:32:20/

     FCC(Fast Channel Change)快速频道切换是一种由FCC服务器下发特制的以I帧为起始的单播节目流来提升频道切换时间的方法, 通过在网络中部署FCC服务,可以回避等待I帧时间与IGMP交互时间,提升I帧传输时间,从而提高频道切换速度。

     整个互联网电视频道切换时间可概括为以下几个组成部分:

  1. 红外等待时间:遥控器发出红外信号到STB发出IGMP LEAVE之间的时间。
  2. IGMP过程:发出IGMP LEAVE到收到第一个组播UDP包的时间。取决于组播频道离开、加入时延,以及机顶盒在离开、加入操作间等待的时间。
  3. 等待I帧时间:从第一个组播包到第一个包含I帧的组播包。
  4. I帧传输时间:第一个完整的I帧传输完成的时间。
  5. 解码时间:包括Buffer缓存时间以及解码出第一帧图像的时间

基于FCC的频道切换过程可大致分为三个阶段:

1.FCC服务端加入到每个频道的组播组中,缓存从头端通过组播方式发送下来的每个频道的视频信息。

2.当STB发起频道切换时,首先向FCC服务端发送请求信息,FCC服务端将缓存的最新的频道信息以单播方式1.3倍快速推送给STB。快推的单播流直接以I帧为起始,不需要机顶盒等待I帧。

3.STB加入到新频道的组播组中,FCC服务端停止单播推送

 sh加入频道流程:

  1. 用户通过遥控器发起频道切换红外请求后,STB发送IGMP LEAVE消息;
  2. STB向FCC Server以RTCP消息的形式发起FCC请求消息;
  3. FCC Server向STB回FCC请求响应消息;
  4. FCC Server从Cache中的某个I帧开始向STB以快发速率发单播流;
  5. FCC Server判断组播和单播已经同步,发送同步通知消息,通知STB加入组播;
  6. STB加入组播,当收到第一个组播包时,通知FCC Server已经收到组播流,发送结束消息,并告知第一个组播包序号;
  7. FCC Server继续发单播流,直到到达STB收到的第一个组播包序号

 离开频道流程

  1. 在接收完最后一个单播UDP包(即已经完全过度到组播)之后离开频道。此时,按普通非FCC的频道切换流程,直接向接入设备发IGMP LEAVE,离开组播即可。
  2. 已经发出IGMP JOIN且单播尚未结束之时,离开频道。此时,机顶盒须向FCC服务端发结束消息结束单播,并向接入设备发IGMP LEAVE离开组播。
  3. 在收到同步消息之前,离开频道。此时,机顶盒须向FCC服务端发结束消息结束单播

FCC服务端有两种不同的发流方式

  1. 开始时以1.3倍速率快发单播流,与组播同步后变为线速转发(1倍)所收到的组播流;这种方式下,单播流与组播流共存时间段内存在短时间内超过用户物理带宽。共存时间长短与组播加入时延有关,如果共存时间过长会造成丢包。
  2. 开始时以1.3倍速率快发单播流,与组播同步后降速为0.N倍速率发组播流;这种方式下,不会超出物理带宽,FCC单播流服务时间较长。另外,如果组播加入时延较长,会造成单播流与组播流无法平滑衔接过渡。

消息格式定义

业务交互过程中涉及的RTCP消息格式依照RFC 4585定义,具体如下:

    0                   1                   2                   3

    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   |V=2|P|   FMT   |       PT      |          length               |

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   |                  SSRC of packet sender                        |

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   |                  SSRC of media source                         |

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   :            Feedback Control Information (FCI)                 :

   :                                                               :

其中,各个字段的意义和规范要求如下:

  1. V=2(2bits,RTP版本)
  2. P=0(1bit,padding)
  3. FMT(5bits,Feedback message type反馈消息类型)=2、3、4、5

0:    unassigned

1:    Generic NACK

2-30:  unassigned

31:   reserved

  1. PT=205(8bits,Payload type 负载类型,205:传输层反馈消息)
  2. Length(16bits 长度)
  3. SSRC of packet sender(32bits发包者的SSRC)填0
  4. SSRC of media source(32bits媒体源的SSRC)填请求频道的组播IP地址

FCI:不定长,根据不同的消息具体定义

FCC请求消息

方向:STB—〉FCC服务端

FMT=2

FCI定义:

 0                   1                   2                   3

 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 |   Version    |                  Reserved                       |

 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 |       FCC Client Port        |      Multicast Port             |

 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 |                  Multicast  Address                            |  

 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 |                                                                |

 |                            STBID                               |

 |                                                                |

 |                                                                |

 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  1. Version:8bits,版本号,初始版本全0;
  2. Reserved:24bits,保留字段;
  3. Multicast Address:32bits,目标频道的组播地址;
  4. MulticastPort:16bits,目标频道的组播端口;
  5. FCC Client Port:16bits,接受FCC单播流的客户端UDP端口号; 不填则服务端默认接收流的端口为本RTCP消息使用的端口号-1;

STB ID:128bits,32位16进制数的机顶盒ID。(统计管理用途)

FCC请求响应消息

方向: FCC服务端—〉STB

FMT=3

FCI定义:

 0                   1                   2                   3

 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 |  Result      |     Type      |       FCC Signal Port           |   

 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 |        FCC Media Port        |           Reserved              |

 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 |                       FCC IP Address                           |

 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 |                      Valid Time                                | 

 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 |                         Speed                                  | 

 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 |            Speed After Synchronization (SAS)                   | 

 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  1. R esult:8bits,表示FCC请求处理的结果:0成功,其他服务端因各种原因无法正常处理该请求导致失败。
  2. Type: 8bits,当Result取值为0时,Type表示成功类型。
    1. 当此字段取值为1时,表明服务端要求机顶盒立即加入组播,走普通切换;
    2. 当此字段取值为2时,表明机顶盒要等待FCC Server通知它加入组播(通过下文中的同步通知消息),走正常FCC切换;
    3. 当此字段取值为3时,表示重定向:STB需要根据消息中携带的新的FCC Server地址,再次发送FCC请求消息。(新的FCC Server的地址填写在响应中的FCC IP Address字段、FCC Signal Port字段);

当Result取值非0时,Type表示失败类型;如字段取值为1表示频道不存在;

  1. Speed:32bits,表示初始的发流速率,单位bps;
  2. Speed After Synchronization(SAS):32bits,表示同步后的发流速率,单位bps;
  3. FCC IP Address:32bits,发送FCC单播流的IP地址;Result取值为0且Reason-type取值为3时,表示新的FCC服务器的信令IP地址;
  4. FCC Signal Port:16bits,Result取值为0且Reason-type取值为2时,表示本次会话后续信令消息的服务端RTCP接收端口号,不填表示与请求消息的接收端口相同;Result取值为0且Reason-type取值为3时,表示新的FCC服务器的RTCP信令接收端口号;
  5. FCC Media Port:16bits,Result取值为0且Reason-type取值为2时,表示发送FCC单播流的服务端UDP端口号;
  6. Valid Time:仅当Reason-type取值为3时有效;FCC Server有效时长,相对时间,单位为秒,表示在该时间段内FCC Server可用,过期后需要重新请求重定向。填0表示不会过期;

FCC同步通知消息

方向: FCC服务端—〉STB

FMT=4

FCI定义:FCI为空

FCC结束消息

方向:STB—〉FCC服务端

FMT=5

FCI定义:

 0                   1                   2                   3

 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 |    Stop      |  Reserved   |            FMPS                 |

 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  1. Stop:8bit,终止服务标志;0:正常;1:终止服务;
  2. Reserved:8 bits,保留位,可填全0;
  3. First Multicast Packet Sequence(FMPS):16bits,收到的第一个组播包的RTP序号;当Stop为1时,此字段无意义。 

http://www.ppmy.cn/news/504975.html

相关文章

RedisTemplate中list类型的使用

简述 记录一下操作list类型的主要方法 代码 使用springboot的单元测试进行演示 package com.bpf.RedisTempletDemo.list;import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit;import org.junit.Test; import org.junit.runner.RunWi…

计算机终端通讯380023,华为发布首款5G手机Mate20X,通讯服务商标注册属于第几类?...

华为发布首款5G手机Mate20X,通讯服务商标注册属于第几类?6月初工信部正式发放5G牌照,5G市场终于“小荷才露尖尖角”。预计到2020年,5G在我国将实现全面普及和商业化,主要涵盖4K高清、增强现实、虚拟现实、无人机等。 7…

小米手机二季度国内业绩回稳微增,雷军组织架构调整成效初显

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

5G网络通讯技术

5G网络通讯技术 通讯概念有线和无线无线电通信 5G5G的频率5G的天线5G的数据传输 通讯概念 之前对5G的概念了解的不是很透彻,在我搜索相关资料的时候看到了一篇很好的文章,让我对5G有了很深入的了解,所以我通过此文进行了一些整理&#xff0c…

生信小白的工作笔记

生信小白的工作笔记 目录 生信小白的工作笔记前言一、技术栈1. GIT1.1 download1.2 upload1.3 Q&A1. conflict2. fatal: remote origin already exists.3. fatal: unable to access ****git; Connection refused 二、 基因1. 基因的定义2. 基因特性 三、遗传学与医学1. 人类…

普化群晖改造成正常磁盘布局及打开kernel message

本文关键字:群晖显卡支持,dsm 6 console tty,打开console,让3.x linux使用graphical terminal as console,改变黑群原生磁盘布局,一种动态调整压缩镜像文件的方法。压缩0空间,及在linux上离线操作raid/llvm…

谁在真正领跑 5G:技术创新和标准

来源:云头条 5G是包括美国总统特朗普在内的所有人都在谈论的新技术。所以,每家公司自然都想谈论5G以及如何领跑这个领域。然而现实情况是,移动5G是一项涵盖甚广的无线标准,它改变了我们对蜂窝通信的认识,并前所未有地拓…

whole-genome-sequencing Data Analysis 学习笔记5 全基因组测序数据的变异位点

变异为什么是相对的? 有的变异现象是由于生殖细胞内的遗传物质的改变引起的,因而能够遗传给后代,属于可遗传的变异。 可遗传的变异有三种来源:基因突变,基因重组,染色体变异。 由于DNA分子中发生碱基对增…