IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

如何提升视频服务质量

技术 总结 记录 生活 工作 2011-06-02 00:14:04 累计浏览 6,310 次
本机暂存

    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. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. Linux下三种常用的流量监控软件对比 (累计阅读 10,198)
  2. curl检查访问网页返回的状态码 (累计阅读 7,834)
  3. nicstat 网络流量统计利器 (累计阅读 7,438)
  4. 实时监控Android设备网络封包 (累计阅读 6,554)
  5. ssldump (累计阅读 5,297)
  6. tcpdump匹配http头 (累计阅读 3,728)
  7. dropwatch 网络协议栈丢包检查利器 (累计阅读 3,498)
  8. LINUX网站流量监测工具iftop (累计阅读 2,805)
  9. 如何从Linux系统中获取带宽、流量网络数据 (累计阅读 2,754)
  10. 调查服务器响应时间的利器 tcprstat (累计阅读 2,482)