Android TV上OTT PWA应用开发的播放器选择:video.js vs exoplayer

跨平台 OTT PWA 应用开发,最方便的当然是选用 video.js 库。但是既然是安卓平台,exoplayer 看起来总是最稳妥的选择

介绍

Exoplayer 是 Android media3 的一个实现,以前是独立出来的,现在已经合并到 androidx.media3 中了。
Video.js 则是一个 js 库,给它一个 video dom 元素,它会把一系列操作挂上去,并提供一个 manager 来管理,从而获取 video 的状态和给 video 发送命令
二者都是老牌的播放器,video.js 从 2010 年就有了,使用它的产品很多,exoplayer 更不用说,google 开发维护的,因此都具有很高的流行程度和稳定性

功能

ExoplayerVideo.js
DASH / HLS√ (with videojs-contrib-dash、videojs-contrib-hls plugin)
H.264(AVC) / H.265(HEVC)H.264√,H.265 仅在 IE 和 Safari 上 √,Chromium×
AAC / HE-AAC / AC3 / EAC-3 / AC4AAC HE-AAC AC4√,AC3 EAC3 需要 FFmpeg 库AAC HE-AAC EAC-3√ AC3× AC4 无数据,大概率 ×
Widevine / PlayReadyWidevine(CBCS, CENC) on fmp4、PlayReady(CENC) on fmp4√ CMAF×,PlayReady 仅在 Android TV 上 √√ (with videojs-contrib-eme plugin)
TTML / SMPTE-TT / WebVTTWebVTT√ 其他 ×
SSAI√ (with videojs-contrib-ads plugin)

数据源:

  • https://developer.android.com/media/media3/exoplayer/supported-formats?hl=en
  • https://developer.android.com/media/media3/exoplayer/drm?hl=en
  • https://developer.android.com/media/media3/exoplayer/hls
  • https://developer.android.com/media/media3/exoplayer/dash AC4:
  • https://github.com/google/ExoPlayer/pull/5303
  • https://videojs.com/html5-video-support/
  • https://github.com/videojs/video.js/issues/7206
  • https://videojs.com/guides/text-tracks/

首先看比较基础的功能,dash 和 hls。video.js 可以通过插件进行支持,exoplayer 本来就支持
视频编码,由于 Chrome 不支持 H.265 视频编码,导致 video.js 也不支持
现在Chrome是支持的,H.265 [Google Chrome only and only where supported by the underlying OS]
音频编码,video.js 也受制于 chrome
drm,video.js 也是有插件,exoplayer 原生支持
字幕方面,Exoplayer 支持情况较好,video.js 只支持 webvtt
ad,主要是 SSAI,video.js 用插件可以,exoplayer 也可以

性能

使用 video.js 和 exoplayer 分别构建一个仅包含一个 player 的 app,测试其 GPU,CPU,Memory,视频流加载时间,multi video 情况五项,结果我把具体数据隐去了,只说结论:

  1. GPU 方面,二者总体帧率差别不大,不过 exoplayer 大部分时间能稳在红线(30 帧)以下,video.js 则在 30 帧徘徊,大部分时间在红线往上
  2. CPU 方面,平均值和最高点,video.js 都是 exoplayer 的两倍左右
  3. 内存占用方面,video.js 也差不多是 exoplayer 的两倍
  4. 视频流加载时间,其实两个都有点慢,video.js 比 exoplayer 更慢一点
  5. multi video,用四个 exoplayer 播放四路视频流没什么问题,但是 video.js 就不行了,完全播不出来第二个
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值