LiveVideoStackCon 2017 Day 1 专场回顾 —— 多媒体与浏览器专场

有幸参加 LiveVideoStackCon 10 月 20 日 —— 10 月 21 日在北京丽亭华苑酒店举行的音视频大会,这次大会甄选多媒体开发领域最新技术实践与应用案例,并设立了 9 大专场。这篇内容主要针对多媒体与浏览器专场,进行主要内容回顾。
上午是主题演讲环节,已有官方回顾,内容可戳这里 LiveVideoStackCon 2017 Day 1 精彩回顾

第一场:《高品质互动在线课堂开发实践》 tutorabc/和君

第一场的讲师是现任 tutorabc 前端负责人的和君,拥有 10 余年前后端研发及架构经验的他,今天主要围绕 TuborMeet + 在线云课堂在实际开发和上线运营过程中面临的问题,进行分享。

一、 WebRTC 相关

首先,他围绕 WebRTC,从内置浏览器(无需下载,无需装插件),开发成本低(简单的 JS-API 即可实现音视频通讯),开源安全,浏览器支持越来越好,Flash 将于 2020 年彻底退役等几方面介绍了为什么要使用 WebRTC。介绍了不同场景下的技术选型。如果是公开课,大班课场景,采用 WebRTC + 推流技术,支持 10000 人同时在线,支持 RTMP 与 HLS;如果是小班课场景,则采用 WebRTC 会议模式,智能服务切换。

二、优化

接着围绕在线课堂 Web 前端的特性(相较一般 SPA 交互性更强;用户的页面滞留时间长;需要尽可能的避免页面刷新;功能繁复,静态资源体积很大),提出了相应的优化:

构建时优化

  • 基于 webpack 的代码分割

    • 按业务逻辑拆分多入口
    • Code Splitting
    • 本地化语言包按需加载
  • 利用 Webpack3.0 的 Tree-shaking/Scope Hoisting 等特性的打包优化

运行时优化(RAIL 模型)

  • 响应:100ms内做出响应
  • 动画:10ms内绘出一帧
  • 空闲:最大化空闲时间
  • 加载:1000s内提供内容

记一次实际的白板性能优化案例

用户体验优化

  • 预加载/懒加载
  • 响应式布局
  • 渐进式用户提样
  • 层级管理(z-index)
  • Web 安全色、安全字体(保证在不同的终端上显示相同的字体)

四、持续交付的目的,架构图和技术点

五、前端 APM 所做的事情

  • 性能监控

    • 首屏加载:针对 TTFB、Content Download 等关键数据的采集
    • 可预期的耗时操作
  • 错误采集
    • 全量采集:"uncaught error",资源加载失败等
    • 按需采集:"caught errors"
  • 业务数据上报展示
    • 周期性上报客户端 “丢包率”,“网络延时”

Tips:

  • 对上报数据分类、分级
  • 尽量做到“无埋点”
  • 声明式埋点 替代 命令式埋点
  • 尽量做到按需采集,最小化分析时的“噪音”

六、展望及 roadmap

第二场:《基于 Intel® CS for WebRTC 构建高效可扩展的 RTC 服务》英特尔/段先德

Interoperability: Participants talk in different protocols

  • WebRTC,SIP,RTSP/RTMP,etc.
  • Various codecs.

Adaptability: Participants through different devices

  • Phones,tablets,PC,wearables,etc.
  • Domain-specific devices such as class-room systems and medical devices.

Connectivity: Participants behind complex networks

  • NAT traverse
  • Nearby access
  • Packet loss/jittering handling

Customizability: Participants accept/prefer different audio/video formats and parameters

  • Audio/video transcoding
  • Specifying video parameters
  • Multiple-view

Reliability

  • Fault of one call/conference should not impact other calls/conferences
  • Fault of media processing nodes should be detected and recovered automatically
  • Fault of access nodes should be detected and notified to impacted clients

Availability

Clustering deployment with redundancy backup

  • Scale in/out demand
  • Customizable scheduling policies

Principles in Design

  • Decouple components
  • Crash-oriented architecture
  • Unified control primitives
  • General media spreading model

Decouple Logically and Physically

  • The IO parts vs. the computation-intensive parts(IO 密集型与计算密集型分开,做更精细的 Scaling)
  • The signaling parts vs. the media parts
  • The media-access parts vs. the media-proce

Keep Crash in Mind

Control primitives on media components

  • via PRC over RabbitMQ
  • Publish, Unpublish
  • Subscribe,Unsubscribe
  • Linkup, Cutoff
  • Generate, Degenerate

The Stream Spreading Model

A scalable RTC engine

Intel Collaboration Suite for WebRTC

Case Study

  • 爱奇艺

    • Interactive show broadcasting —— 奇秀直播
    • Internet meeting —— 爱奇艺会议
  • Zealcomm PureRTC

第三场:《直播 HTML5 播放器的技术难点与架构探索》 熊猫直播/姜雨晴

一、HTML5 播放器背景

  • HTML5 Video 支持

    • Video 标签支持
    • MSE
    • Adobe 更关注 H5
    • Chrome 屏蔽 Flash
  • 校长需求
  • HTML5 优势和前景
    • 高效
    • 兼容性
    • 浏览器新技术

二、直播领域 HTML5 播放器问题

音画不同步

常见场景:户外直播是音画不同步问题发生最为频繁的版区
问题定位:户外主播手机性能寄网络问题导致上行不同步
问题改进:采用播放器对轨,进行问题同步

LPL蓝光

清洗能量槽(清缓存)

  • 什么时候清洗?
    setInterval VS 新的 gop 准备好
  • 清多少?(10秒前)
    从上一次清楚地时间点起,到当前时刻前固定秒数
  • 容易洗出什么问题?
    BufferUpdating 状态、无法回退

累计延时

旧版本内核累计严重,可以延迟出 3 - 4 分钟甚至更长
什么时候重新拉流? 卡顿 + 累计延时达到一定阈值

三、熊猫 HTML5 播放器内核构架

四、技术创新与展望

基于现在的播放器内核框架,除了解决播放器内核问题之外,还可以轻易的将微创新和新技术融入到内核当中。

第四场:《音视频通话 WebRTC 那些坑》 dotEngine/刘连响

WebRTC 是什么?

WebRTC 涉及到的模块

WebRTC client

Signaling

视频编码的选择

一些建议

LiveVideoStackCon 2017 Day 1 专场回顾 —— 多媒体与浏览器专场相关推荐

  1. 2017年 JavaScript 框架回顾 -- 前端框架

    2019独角兽企业重金招聘Python工程师标准>>> 概述: 对于 JavaScript 社区来说,npm 的主要功能之一就是帮助开发者发掘所需的 npm Registry 中的库 ...

  2. 国科大学习资料--图像处理与分析--2017年期末考试回顾

    国科大学习资料–图像处理与分析(王伟强)–2017年期末考试回顾 =================================================================== ...

  3. 【全记录】2017杭州·云栖大会阿里云服务专场

    ​​作为年度科技盛会,2017杭州·云栖大会盛大空前,消息占据了各大媒体核心版面,世界的目光再一次聚集在阿里云身上.目前阿里云已跻身全球公共云市场三甲,付费用户超100万.在这场轰轰烈烈的" ...

  4. [LeetCode专场复盘] AutoX 安途智行专场竞赛

    [LeetCode专场复盘] AutoX 安途智行专场竞赛 一.本周周赛总结 二. AutoX-1. 网页瀑布流 1. 题目描述 2. 思路分析 3. 代码实现 三.AutoX-2. 蚂蚁王国的蜂蜜 ...

  5. NIPS 2017录用论文先睹为快!论文作者清华专场分享(附PPT下载)

    来源:雷锋网 作者:杨文 本文长度为3500字,建议阅读8分钟 本文为你详细整理GAIR大讲堂NIPS清华专场干货内容. NIPS背景 NIPS是由连接学派(connectionist)神经网络的学者 ...

  6. 错过CVPR 2017?绝对不能错过GAIR大讲堂——上海交大专场开启报名

    CVPR(国际计算机视觉与模式识别会议)是IEEE 举办的年度学术性会议,会议主要关注计算机视觉与模式识别等方面的技术内容.在各种学术会议统计中,CVPR 有着非常强的影响力和高排名.在美国夏威夷刚刚 ...

  7. 一站式机器学习平台TI-ONE是什么?——云+未来峰会开发者专场回顾

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 背景:5月23-24日,以"焕启"为主题的腾讯"云+未来"峰会在广州召开,广东省各级政府机构领导.海 ...

  8. TXSQL:云计算时代数据库核弹头——云+未来峰会开发者专场回顾

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 5月23-24日,以"焕启"为主题的腾讯"云+未来"峰会在广州召开,广东省各级政府机构领导.海内外业 ...

  9. TXSQL:云计算时代数据库核弹头——云+未来峰会开发者专场回顾 1

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 5月23-24日,以"焕启"为主题的腾讯"云+未来"峰会在广州召开,广东省各级政府机构领导.海内外业 ...

最新文章

  1. 【Git】本地仓库上传到github免密操作
  2. 如何系统性的分析一个新idea的可行性?
  3. python图片转文字_【收藏】图片转成文字的方法总结,python批量图片转文字信息参考源码...
  4. sql server规范
  5. Java 200+ 面试题补充 ThreadLocal 模块
  6. 被动声呐 相移波束形成_100天计划-DAY9-拖曳声呐
  7. mysql读写分离-借助中间键mycat
  8. 2019安全渗透类工具合集
  9. 去除标签_生活小常识:3m胶怎么去除
  10. seaborn—sns.heatmap绘制热力图
  11. VB进度条 游戏血条控件
  12. SPI协议简介—学习笔记
  13. 使用Resource Hacker 实现替换exe图标的
  14. 短信接口的功能及适用范围
  15. Matlab中常用的清除命令clc,clear,clf等
  16. python宿舍管理系统!
  17. Kubernetes Events介绍(下)
  18. 去掉电影字幕的最好方法
  19. 【考研经验】一个苍山的不入流的学生的考研之路
  20. Java.IO.InputStream-OutputStream

热门文章

  1. matlab isinteger,MATLAB数据类型
  2. ldo和dcdc功耗_ldo与dcdc区别、原理及应用详解
  3. python列表可以删除和修改吗_Python列表常见操作详解(获取,增加,删除,修改,排序等)...
  4. 服务器显示AL018是什么意思,IIS服务器80端口却已被占用的问题
  5. server输出几行 sql_如何将SQL Server存储过程的输出存储在.txt文件中
  6. 浏览器打开出现证书错误_PADI 电子潜水证书更新啦!
  7. Java内存模型解析
  8. Django模型层的多表操作(2)
  9. 简单的实现登录拦截及统一异常处理(自定义异常)
  10. ●BZOJ 3129 [Sdoi2013]方程