LiveVideoStackCon 2017 Day 1 专场回顾 —— 多媒体与浏览器专场
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 专场回顾 —— 多媒体与浏览器专场相关推荐
- 2017年 JavaScript 框架回顾 -- 前端框架
2019独角兽企业重金招聘Python工程师标准>>> 概述: 对于 JavaScript 社区来说,npm 的主要功能之一就是帮助开发者发掘所需的 npm Registry 中的库 ...
- 国科大学习资料--图像处理与分析--2017年期末考试回顾
国科大学习资料–图像处理与分析(王伟强)–2017年期末考试回顾 =================================================================== ...
- 【全记录】2017杭州·云栖大会阿里云服务专场
作为年度科技盛会,2017杭州·云栖大会盛大空前,消息占据了各大媒体核心版面,世界的目光再一次聚集在阿里云身上.目前阿里云已跻身全球公共云市场三甲,付费用户超100万.在这场轰轰烈烈的" ...
- [LeetCode专场复盘] AutoX 安途智行专场竞赛
[LeetCode专场复盘] AutoX 安途智行专场竞赛 一.本周周赛总结 二. AutoX-1. 网页瀑布流 1. 题目描述 2. 思路分析 3. 代码实现 三.AutoX-2. 蚂蚁王国的蜂蜜 ...
- NIPS 2017录用论文先睹为快!论文作者清华专场分享(附PPT下载)
来源:雷锋网 作者:杨文 本文长度为3500字,建议阅读8分钟 本文为你详细整理GAIR大讲堂NIPS清华专场干货内容. NIPS背景 NIPS是由连接学派(connectionist)神经网络的学者 ...
- 错过CVPR 2017?绝对不能错过GAIR大讲堂——上海交大专场开启报名
CVPR(国际计算机视觉与模式识别会议)是IEEE 举办的年度学术性会议,会议主要关注计算机视觉与模式识别等方面的技术内容.在各种学术会议统计中,CVPR 有着非常强的影响力和高排名.在美国夏威夷刚刚 ...
- 一站式机器学习平台TI-ONE是什么?——云+未来峰会开发者专场回顾
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 背景:5月23-24日,以"焕启"为主题的腾讯"云+未来"峰会在广州召开,广东省各级政府机构领导.海 ...
- TXSQL:云计算时代数据库核弹头——云+未来峰会开发者专场回顾
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 5月23-24日,以"焕启"为主题的腾讯"云+未来"峰会在广州召开,广东省各级政府机构领导.海内外业 ...
- TXSQL:云计算时代数据库核弹头——云+未来峰会开发者专场回顾 1
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 5月23-24日,以"焕启"为主题的腾讯"云+未来"峰会在广州召开,广东省各级政府机构领导.海内外业 ...
最新文章
- 【Git】本地仓库上传到github免密操作
- 如何系统性的分析一个新idea的可行性?
- python图片转文字_【收藏】图片转成文字的方法总结,python批量图片转文字信息参考源码...
- sql server规范
- Java 200+ 面试题补充 ThreadLocal 模块
- 被动声呐 相移波束形成_100天计划-DAY9-拖曳声呐
- mysql读写分离-借助中间键mycat
- 2019安全渗透类工具合集
- 去除标签_生活小常识:3m胶怎么去除
- seaborn—sns.heatmap绘制热力图
- VB进度条 游戏血条控件
- SPI协议简介—学习笔记
- 使用Resource Hacker 实现替换exe图标的
- 短信接口的功能及适用范围
- Matlab中常用的清除命令clc,clear,clf等
- python宿舍管理系统!
- Kubernetes Events介绍(下)
- 去掉电影字幕的最好方法
- 【考研经验】一个苍山的不入流的学生的考研之路
- Java.IO.InputStream-OutputStream
热门文章
- matlab isinteger,MATLAB数据类型
- ldo和dcdc功耗_ldo与dcdc区别、原理及应用详解
- python列表可以删除和修改吗_Python列表常见操作详解(获取,增加,删除,修改,排序等)...
- 服务器显示AL018是什么意思,IIS服务器80端口却已被占用的问题
- server输出几行 sql_如何将SQL Server存储过程的输出存储在.txt文件中
- 浏览器打开出现证书错误_PADI 电子潜水证书更新啦!
- Java内存模型解析
- Django模型层的多表操作(2)
- 简单的实现登录拦截及统一异常处理(自定义异常)
- ●BZOJ 3129 [Sdoi2013]方程