按关键词阅读:
凡事皆有正反面 , 在音视频应用里为了保证流畅度 , 往往需要通过数据包缓冲区来抵抗丢包提升流畅 , 如果一味的追求低时延 , 而压缩数据包缓冲区大小 , 很可能会导致更容易出现卡顿 。 因此 , 追求低时延是合理的 , 但是不应该通过牺牲流畅来过分追求低时延 。 当然 , 有些场景确实需要更低的时延才能保证用户体验 , 譬如线上合唱 , 此时追求极致的低时延是合理的 。
3 数据白板 VS 视频白板第三个点 , 大家在做白板的过程中 , 我们实现白板有两种方式 , 一种是数据白板 , 一种是视频白板 。 大家如果有用过视频会议软件的话 , 多数视频会议软件是用视频白板的方式在做 。 当然视频白板和数据白板这两种做法其实各有优劣 , 从技术角度来说 , 视频白板和共享是类似的技术 , 通过一个方案来解决了共享和白板的问题 , 这样技术的包袱会更轻 , 维护的成本也会更低一些 。 但是我们假设在某些对于白板有强需求的这些场景 , 包括教育这个场景 , 可能视频白板的体验就没办法做到非常好 。 其实很多时候数据白板可能是一个更好的解决方法 , 数据白板带来的好处也是显而易见的 。 白板本质上其实是一个多人的轨迹同步 , 它是多人的消息的同步 , 再加上客户端的绘制 。 如果通过数据白板的方式来做的话 , 可以实现更少的数据量 , 占用的带宽也会更少 , 这样的话就可以保证自己更不容易卡顿 , 另外也可以把更多的带宽留给音视频 。 因为我们在做白板的时候 , 同时可能也会有音视频的通讯 。
另外 , 数据白板的呈现会非常高清 。 因为是矢量数据 , 所以说不管是很小的一个窗口 , 还是很大的窗口 , 即使缩放到很大 , 白板的清晰度还是非常好 。 所以在具体的实现过程当中 , 从用户体验的角度我们认为数据白板可能是一个更好的实现方式 。
4 1080P比720P体验更好吗?【奇葩说之RTC的那些事】第四个问题 , 1080P可以提供比720P更好的体验吗?这个听上去似乎也是显而易见的 , 1080P分辨率更高 , 当然比720P体验更好了 。 但是在RTC场景下 , 答案可能并没有那么显而易见 。
首先要解释一下 , 视频分辨率并不等于清晰度 , 视频清晰度取决于分辨率、码率、帧率等 , 三者对清晰度的影响大致可以参考公式Bits/(Pixel*Frame) , 简单点说 , 相同码率下 , 分辨率越高清晰度越低 , 分辨率越低清晰度越高 。 当然实际情况稍微复杂一点 , 在码率一定的情况下 , 分辨率在一定范围内取值都将是清晰的;同样地 , 在分辨率一定的情况下 , 码率在一定范围内取值都将是清晰的 。 因此 , 如果码率不够 , 1080P的清晰度很可能比720P更差 。
其次 , 对于目前的移动互联网应用来说 , 手机端的屏幕尺寸有限 , 多数情况下360P就够了 , 一般来说720P足够了 , 完全不需要1080P 。
我们在做视频会议应用时 , 有一个原则叫够用就好 , 当手机只需要720P的视频时 , 如果我们发送1080P的视频 , 需要的码率更大 , 此时并不能带来更高清的体验 , 反而会带来副作用 , 因为更高的码率会更容易出现卡顿 , 也更加消耗手机CPU 。 同理 , 如果180P就可以满足需要 , 我们就应该发送180P的视频 , 而不是720P的视频 。
我们借鉴视频会议经验支持了视频大小流 , 客户端可以按需选择大流或者小流 , 在同一个会议里 , 也支持部分人选择大流部分人选择小流 , 保证最优的视频体验 。
5 AVC VS SVC第五点是AVC vs SVC 。 我们现在主流使用的视频标准其实还是H264 。 在H264里面分为两种 , 一种就是AVC , 另外一个是SVC 。 大家知道SVC是分层编码 , 它可以提供时域、空域、质量域的分层 , 听起来是非常好的编码手段 , 因为通过分层 , 如果带宽很好或者端的设备很好 , 可以首先接收base layer , 接收到base layer之后 , 可以再接收上面的一些增强的layer 。 而通过增强的layer就可以实现更高清的画质或者更高的帧率 。 这样对于视频的分发来说 , 你的手段就会更多 。 如果接收端的带宽受限或者接收端的设备本身性能很差 , 那这个时候可能只要选择接受base layer就可以了 , 这样可以保证一个比较流畅的视频体验 。 从技术角度来说 , SVC好像是比AVC更先进的技术 , 但是实际上我们在选择的过程当中 , 这里没有标准的答案 , 只是我们在选择时需要慎重 。
比如选择AVC , 就要知道AVC的优缺点;选择SVC , 就要知道SVC的优缺点 。 SVC从技术角度来说更先进 , 可以帮助我们实现更好的视频的分发 。 但是SVC带来的一个副作用就是在编码的时候占用的资源会更多 , 可能会更耗电或者某些设备支撑起来可能CPU消耗会更高 。 所以这两个选择没有对错 , 可能要在对应的场景根据需要去选择 。
稿源:(未知)
【傻大方】网址:http://www.shadafang.com/c/111J264A2020.html
标题:奇葩说之RTC的那些事( 二 )