OTT 的快速频道切换(FCC)
FCC(Fast Channel Change)快速频道切换是一种由FCC服务器下发特制的以I帧为起始的单播节目流来提升频道切换时间的方法, 通过在网络中部署FCC服务,可以回避等待I帧时间与IGMP交互时间,提升I帧传输时间,从而提高频道切换速度。
整个互联网电视频道切换时间可概括为以下几个组成部分:
- 红外等待时间:遥控器发出红外信号到STB发出IGMP LEAVE之间的时间。
- IGMP过程:发出IGMP LEAVE到收到第一个组播UDP包的时间。取决于组播频道离开、加入时延,以及机顶盒在离开、加入操作间等待的时间。
- 等待I帧时间:从第一个组播包到第一个包含I帧的组播包。
- I帧传输时间:第一个完整的I帧传输完成的时间。
- 解码时间:包括Buffer缓存时间以及解码出第一帧图像的时间
基于FCC的频道切换过程可大致分为三个阶段:
1.FCC服务端加入到每个频道的组播组中,缓存从头端通过组播方式发送下来的每个频道的视频信息。
2.当STB发起频道切换时,首先向FCC服务端发送请求信息,FCC服务端将缓存的最新的频道信息以单播方式1.3倍快速推送给STB。快推的单播流直接以I帧为起始,不需要机顶盒等待I帧。
3.STB加入到新频道的组播组中,FCC服务端停止单播推送
sh加入频道流程:
- 用户通过遥控器发起频道切换红外请求后,STB发送IGMP LEAVE消息;
- STB向FCC Server以RTCP消息的形式发起FCC请求消息;
- FCC Server向STB回FCC请求响应消息;
- FCC Server从Cache中的某个I帧开始向STB以快发速率发单播流;
- FCC Server判断组播和单播已经同步,发送同步通知消息,通知STB加入组播;
- STB加入组播,当收到第一个组播包时,通知FCC Server已经收到组播流,发送结束消息,并告知第一个组播包序号;
- FCC Server继续发单播流,直到到达STB收到的第一个组播包序号
离开频道流程
- 在接收完最后一个单播UDP包(即已经完全过度到组播)之后离开频道。此时,按普通非FCC的频道切换流程,直接向接入设备发IGMP LEAVE,离开组播即可。
- 已经发出IGMP JOIN且单播尚未结束之时,离开频道。此时,机顶盒须向FCC服务端发结束消息结束单播,并向接入设备发IGMP LEAVE离开组播。
- 在收到同步消息之前,离开频道。此时,机顶盒须向FCC服务端发结束消息结束单播
FCC服务端有两种不同的发流方式
- 开始时以1.3倍速率快发单播流,与组播同步后变为线速转发(1倍)所收到的组播流;这种方式下,单播流与组播流共存时间段内存在短时间内超过用户物理带宽。共存时间长短与组播加入时延有关,如果共存时间过长会造成丢包。
- 开始时以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) :
: :
其中,各个字段的意义和规范要求如下:
- V=2(2bits,RTP版本)
- P=0(1bit,padding)
- FMT(5bits,Feedback message type反馈消息类型)=2、3、4、5
0: unassigned
1: Generic NACK
2-30: unassigned
31: reserved
- PT=205(8bits,Payload type 负载类型,205:传输层反馈消息)
- Length(16bits 长度)
- SSRC of packet sender(32bits发包者的SSRC)填0
- 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 |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Version:8bits,版本号,初始版本全0;
- Reserved:24bits,保留字段;
- Multicast Address:32bits,目标频道的组播地址;
- MulticastPort:16bits,目标频道的组播端口;
- 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) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- R esult:8bits,表示FCC请求处理的结果:0成功,其他服务端因各种原因无法正常处理该请求导致失败。
- Type: 8bits,当Result取值为0时,Type表示成功类型。
- 当此字段取值为1时,表明服务端要求机顶盒立即加入组播,走普通切换;
- 当此字段取值为2时,表明机顶盒要等待FCC Server通知它加入组播(通过下文中的同步通知消息),走正常FCC切换;
- 当此字段取值为3时,表示重定向:STB需要根据消息中携带的新的FCC Server地址,再次发送FCC请求消息。(新的FCC Server的地址填写在响应中的FCC IP Address字段、FCC Signal Port字段);
当Result取值非0时,Type表示失败类型;如字段取值为1表示频道不存在;
- Speed:32bits,表示初始的发流速率,单位bps;
- Speed After Synchronization(SAS):32bits,表示同步后的发流速率,单位bps;
- FCC IP Address:32bits,发送FCC单播流的IP地址;Result取值为0且Reason-type取值为3时,表示新的FCC服务器的信令IP地址;
- FCC Signal Port:16bits,Result取值为0且Reason-type取值为2时,表示本次会话后续信令消息的服务端RTCP接收端口号,不填表示与请求消息的接收端口相同;Result取值为0且Reason-type取值为3时,表示新的FCC服务器的RTCP信令接收端口号;
- FCC Media Port:16bits,Result取值为0且Reason-type取值为2时,表示发送FCC单播流的服务端UDP端口号;
- 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Stop:8bit,终止服务标志;0:正常;1:终止服务;
- Reserved:8 bits,保留位,可填全0;
- First Multicast Packet Sequence(FMPS):16bits,收到的第一个组播包的RTP序号;当Stop为1时,此字段无意义。
OTT 的快速频道切换(FCC)相关推荐
- OTT盒子登堂入室引爆客厅入口之争
OTT盒子登堂入室引爆客厅入口之争 http://www.broadcast.hc360.com 2014年03月18日09:31 来源:中国通信网 T|T [慧聪广电网]格兰研究数据显示,2013 ...
- 从缔造到升阶,酷开网络OTT营销生态让大屏价值开疆拓土
文|曾响铃 来源|科技向令说(xiangling0815) 信息爆炸.预算吃紧的年代,广告业的竞争到了白热化的地步. 而在移动互联网.传统户外媒体激烈搏杀时,一股新兴的广告营销力量在"不经意 ...
- 贵广网络跨界转型 实现智慧城市的平台创新
云栖号案例库:[点击查看更多上云案例] 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 随着互联网媒体的强势崛起.IPTV和OTT的快速普及(2018年全国IPT ...
- IPTVOTT,未来谁更香——关于新媒股份的一点思考
首先,从基本面的角度看新媒股份应该是一个不错的公司.就是因为这个我们选择"在人群中多看了你一眼". 公司简介: 基于大屏内容播控牌照的IPTV与互联网电视为主要业务的新媒体(大屏) ...
- SUB 1G 无线射频芯片-DP4301
DP4301是一款高性能低功耗的单片集成收发机,工作频率可覆盖200M-1020MHz,支持支持 230/315/408/433/868/915频段.该芯片集成了射频接收器.射频发射器.频率综合器.G ...
- DP4301频段在470mhz~510mhz的SUB-1G集成芯片超低功耗
随着我国物联网正进入发展的快车道,ZigBee也正逐步被国内越来越多的用户接受.ZigBee技术也已在部分智能传感器场景中进行了应用.如在北京地铁9号线隧道施工过程中的考勤定位系统便采用的是ZigBe ...
- 音视频系列2:基本知识
1. 存储格式 1.1 WAV.WMV.WMA.ASF.MMS.AVI:微软全家桶 微软的东西,windows用户经常能见到. 首先是wav音频文件.WAV是微软开发的一种声音文件格式,它实际是采用R ...
- DP1101无线收发芯片_Sub-1GHz无线收发芯片
DP1101芯片是一款高性能低功耗的单片集成收发机,工作频率可覆盖470MHz~510MHz, 并兼容ISM 433MHz 频段.该芯片集成了射频接收器.射频发射器.频率综合器.GFSK 调制器.GF ...
- DP4301—SUB-1G高集成度无线收发芯片数据手册资料
DP4301-SUB-1G高集成度无线收发芯片是一款高性能低功耗的单片集成收发机,工作频率可覆盖200MHz~1000MHz,该芯片集成了射频接收器.射频发射器.频率综合器.GFSK调制器.GFSK解 ...
最新文章
- a股历史30年的大盘价_[最新]回顾A股历史上的大井喷行情
- linux yum lamp环境,linux centos yum安装LAMP环境
- java 洗牌_java数组之完美洗牌算法
- mysql 查看表的类型
- Docker swarm 笔记
- vb.net mysql存储图片_怎么让VB.NET 上传图片到SQL 数据库只保存路径,图片保存到文件...
- Java架构-JavaSE(一)之类与对象
- linux mysql 备份脚本_linux下mysql备份脚本
- Java-Anagram方法
- 2099年的flag——writeup
- 王垠:编程宗派之我见
- c语言单片机红外报警设计,超级简单单片机红外感应开关DIY设计
- CGB2108day17
- 国产 Linux 操作系统面临的困境
- oracle导出dmp文件教程
- 控制面板有u盘显示,可是计算机不显示u盘符
- 使用飞信API 发送 短信
- 三个很赞的英语学习软件
- 漂亮国站-亚马逊跨境电商平台新规定
- 解决 error while loading shared libraries: libicui18n.so.63: cannot open shared object file
热门文章
- RTSP协议的一些分析(三)——简单的rtsp服务器的实现
- C#(四十八)之StreamWriter StreamWriter使用方法及与FileStream类的区别
- 闪电网络大额通道wumbo存在漏洞,或导致通道瘫痪两周
- mysql 搭建mha_MHA快速搭建
- 【QML学习8】鼠标与触摸处理
- WebRTC GCC 拥塞控制算法(TFB-GCC)
- Oracle 12c系列(九) | 通过unplug与plug方式升级pdb数据库
- oracle登录tns串区别,tns 连接问题
- ChatGPT的字数限制是什么?如果解决字数限制
- ReportViewer 显示问题