最近在做一个很小众的教育视频直播
Android 直接用 Aliplayer , 播放 flv 格式的流, 时延 3-6s, 还可以
但是 iOS 只能播放 m3u8, 时延很大呀, 20-40s 不等, 有什么好的解决方案吗?
目前是 H5 页面上实现的.
看看有什么好的方案, 目前查到的资料来看, 要么 APP(不擅长) 要么小程序了....
1
fgodt 2020-02-19 12:12:11 +08:00 via Android
|
3
Lax 2020-02-19 14:06:39 +08:00
RTMP 能做到 1s 之内,m3u8 大概 3-5s 之内就不错了
|
4
wzw OP @Lax #3 https://help.aliyun.com/document_detail/57041.html
m3u8 大概 3-5s 之内, 不太可能吧, 我用阿里云来弄,大约 20-30s, 而且我工单问过了, 的确这样 |
5
Lax 2020-02-19 15:02:11 +08:00
@wzw
要改分片长度和时长。HLS 可以调整参数来降低延时,但是也会牺牲流畅性。如果不是内网或者优化过的网络条件下,是很难完美降低延时的。 阿里云文档里提到用的分片长度 5 秒,延时肯定在 15s 以外了。 RTMP 延时低一些,小程序的视频播放器好像也能播放 [不确定] 观看人数不多的话可以考虑用 WebRTC,延时一般都比较低 |
6
qiayue 2020-02-19 15:08:48 +08:00
jsmpeg 可以做到毫秒级别延时
|
8
yikyo 2020-02-19 17:10:32 +08:00
webrtc 有系统兼容性问题,我司用声网的产品,他们做培训的时候提出在低系统版本时使用 js 来解码,不知道现在有没有实际产品。你可以找声网的咨询一下,但估计不满足你这边的需求,他们是整套方案。
|
9
laoyu 2020-02-19 17:15:05 +08:00 via iPhone
是流本身有延迟还是放在 HTML 5 播放器上出现的延迟。你看下 DPlayer
|
10
pperlee 2020-02-19 17:32:42 +08:00
我不太清楚阿里云是哪个流服务器,wowza 还是其他?每个应该都有参数设置的,需要自定义一下,20s 确实比较长了,一般控制在 6s 就好,如果你想更流畅,不妨考虑 webrtc 方式。hls 方式在 chrome 上面不兼容,不是最优的。
|
11
wzw OP @pperlee #10 目前已经设置了最低了, 请看图
https://i.loli.net/2020/02/19/5L7XSNIyaq4mitZ.png @laoyu #9 我直接用 iina/vlc 播放器尝试, 发现时延大 @yikyo #8 声网明天去了解下, 一开始就想到 阿里云了 |
12
zhs227 2020-02-19 18:15:11 +08:00
有客户端的情况下不要尝试播 HLS,直播的 HLS 延迟会让人想吐。没有客户端的情况下,考虑微信小程序中的 RTMP 播放能力
|
13
pperlee 2020-02-19 18:26:28 +08:00
你设置的只是播放的延时,按要求设置 2s 就好,但是除了播放,还有推流响应的延时、视频帧率的运算卡顿等,都会造成延时加大,你需要各方面都均衡设置,还有推流时要保证你的网络状况良好。检查网络,降低帧率试试。
|
14
coolwind1981 2020-02-19 19:56:04 +08:00 via Android
试一试 2 秒或 1 秒一个 ts 切片(关键帧 2 秒或 1 秒一个), 总共三个索引,但不知道会不会顺畅
|
15
ajaxfunction 2020-02-19 20:36:56 +08:00
无解,我这边尝试过,只有 rtmp 推流拉流可以做到延时 4 秒以下,
H5 方案在 10 秒左右,如果观看人数多 延时会在 15 秒左右 |
16
wzw OP @ajaxfunction #15 正在尝试 jsmpeg
|