首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    接上篇-nginx-http-flv-module更新说明(二)

    最近这段时间主要在不同平台测试模块的稳定性,目前播放这一块没发现问题,由于条件限制,除了FreeBSD平台没测试过,Windows 7,Debian 7.x和macOS Sierra都测试过了,由于Nginx官方对Windows支持不太好,没用Windows平台最强大的IOCP接口(使用的select),所以导致Windows平台上运行效率不太高,表现在推流等待时间长,3s+,首屏时间很长,4s+,select本身原因限制客户端个数,默认是1024。推流等待时间和首屏时间最短的是macOS Sierra,本机上测试时基本上是秒推秒开。昨晚专门注意了一下,在macOS Sierra下编译时,SO_REUSEPORT和TCP_FASTOPEN两项都支持,前者让Nginx的每个子进程都可以listen,都有一个专门的accept队列,解决了惊群效应;后者则是在发起SYN时就已经携带实际数据,而不是握手完毕后再传输实际数据。秒推秒开可能跟这两个选项有关。但是macOS Sierra并不支持将某个进程绑定到某个CPU上,所以可能进程上下文切换会有开销,系统负载较大时可能效率不如Linux。由于macOS Sierra是公司的电脑,所以未做压力测试。我的笔记本装的是Debian 7.x,因为内核版本较低,所以macOS Sierra上支持的两个选项都不支持。测试时推流等待时间和首屏时间都介于Windows 7和macOS Sierra之间,在服务器上测试时(系统CentOS 6.4,支持SO_REUSEPORT但是不支持TCP_FASTOPEN)跟macOS Sierra上差不多,但是考虑到服务器的CPU性能强大得多,所以负载不高情况下,macOS Sierra的表现是最好的。由于macOS Sierra是从Mac OS X更新来的,而Mac OS X的底层最初是在FreeBSD基础上开发的,所以推测在FreeBSD上的表现应该也不错。

    02

    CMCD 处理实时真实数据

    CMCD(Common Media Client Data,通用媒体客户端数据)是连接用户播放器和内容分发的桥梁。CDN 每秒钟可以看见上百万个二进制信息的传递,在用户端,用户看见的是一个回放窗口里面存有最近几分钟的缓存数据可用于回放,我们想将这两种场景融合在一起,这是 CMCD 的关键点。CMCD 诞生于 Mile-High Video,我们在两年前的 Mile-High Video 会议上提议在用户请求中加入会话 ID,Dolby David 建议我们投入更多的精力将其变成一种标准。因此我们在会议结束后建立了一种原始的简单的标准,我们定义了一组结构化的键值对,将对双方都有益的媒体相关的信息从播放器传递到 CDN,通过以下三种形式:1)一组常规的头(A set of custom headers)。2)一个索引自变量(A query arg)。3)一个 JSON 对象。之所以称为常规是因为同样的数据结构可以被所有的播放器和所有的 CSDN 使用。

    02
    领券