IT技术博客大学习 共学习 共进步

如何提升视频服务质量

技术 总结 记录 生活 工作 2011-06-02 00:14:04 浏览 6,201 次

    1:智能IP调度

    IP库提供了IP地址(段)同地理、ISP、结构等信息映射关系的一组数据。通过用户端的IP和IP库进行比较更加精准的定位用户.从统计的数据来看10%的用户下载速分率小于100KByte/s.对于实际的IP调度可能要根据用户实际的网络情况进行不断的调整.

    2:码率大小

    码率就是数据传输时单位时间传送的数据位数,一般用单位是kbps即千位每秒.

    码率分为固定码率和可变码率.码率和清晰度是成正比的.提升码率对于视频容量和带宽都具有较大影响,而对于用户来说,需要考虑用户下行带宽和下载速率.没有想到一个方法来统计一个码率为500的视频文件,下载速率需要达到多少.从网宿得到的反馈是740kbps的用户可能查看视频没有问题.

    对于初始化下载的视频一般采用预加载视频的方式,而对于拖动的用户,一般其都有心理承受能力.

    一般针对大码率的视频下载做的优化包括:

    (1)预加载.

    (2)视频开始和结尾采用低码率的文件.

    (3)根据用户实际情况选择不同码率的文件.未来快速的能够切换不同码率的文件,视频PID一定要设计好,按照我们领导的意思应该是.

    视频PID:表示视频的编号(可能基于数据库存储),通过这编号能够知道是什么用户上传的,当然还可以扩展很多信息,简单的来说通过PID能够知道很多视频相关信息(不同码率的文件同一个PID).

    视频Fid:表示文件存储的信息,比如视频文件后缀,如何区分不同码率.存储方式是怎么设计的(应对扩容和变化).通过PID能够快速换算出Fid.

    3:限速

    从视频CDN发展来看,限速已经成了标准模块.从我个人的理解来看,限速主要解决高峰带宽的成本问题,次要看能够减少高峰期间待遇单机的压力.今天和一个同事也聊了下,针对Squid的delay_pool模块有如下的一些收获:

    (1)delay_pool模块限制其实是假限制,不是平均的控制速率而做到限速的.而是通过计数器方式进行控制的.

    (2)对于Cache Miss的情况是不做限制的.这个设计是比较让我奇怪的,squid一般作为正向代理(局域网用户直接面对代理服务器).而为了减少某个内网用户直接占用代理服务器的下载带宽(链接外网)才出现了这个模块.

    而我们将Squid作为反向代理(面对的用户是互联网用户)使用,它假设内网带宽传输不成问题,所以才如此设计这个模块.

    4:带宽

    毫无疑问视频业务就是一个网络I/O的重应用,其实我们一直陷入一个误区,极大化提升单机性能的原因无非就是尽量的跑满带宽(在磁盘负载一定的情况下),另外单机优化就是减少成本.而调度无非是合理利用资源.进行负载均衡.

    5:CDN

    解决网络层的问题,解决服务更近的问题.

建议继续学习

  1. HTTP Live Streaming (HLS) 不错的视频直播技术 (阅读 6,841)
  2. HTML5视频的那些事儿 (阅读 3,602)
  3. 姐要的视频广告 (阅读 3,560)
  4. 浅析视频搜索中的清晰度识别过程 (阅读 3,423)
  5. 说起版权保护 (阅读 3,320)
  6. 视频站收录浅析 (阅读 2,721)
  7. 视频的容器与格式 (阅读 2,202)