关于视频直播方案的一个问题: iOS 端 H5 页面, 时延很大呀, 20-40s 不等, 有什么好的解决方案吗?

2020-02-19 12:04:21 +08:00
 wzw

最近在做一个很小众的教育视频直播

Android 直接用 Aliplayer , 播放 flv 格式的流, 时延 3-6s, 还可以

但是 iOS 只能播放 m3u8, 时延很大呀, 20-40s 不等, 有什么好的解决方案吗?

目前是 H5 页面上实现的.

看看有什么好的方案, 目前查到的资料来看, 要么 APP(不擅长) 要么小程序了....

2600 次点击
所在节点    问与答
16 条回复
fgodt
2020-02-19 12:12:11 +08:00
wzw
2020-02-19 12:21:19 +08:00
@fgodt #1 这个还用不到呀,,, 还在云里雾里
Lax
2020-02-19 14:06:39 +08:00
RTMP 能做到 1s 之内,m3u8 大概 3-5s 之内就不错了
wzw
2020-02-19 14:15:55 +08:00
@Lax #3 https://help.aliyun.com/document_detail/57041.html

m3u8 大概 3-5s 之内, 不太可能吧, 我用阿里云来弄,大约 20-30s, 而且我工单问过了, 的确这样
Lax
2020-02-19 15:02:11 +08:00
@wzw
要改分片长度和时长。HLS 可以调整参数来降低延时,但是也会牺牲流畅性。如果不是内网或者优化过的网络条件下,是很难完美降低延时的。
阿里云文档里提到用的分片长度 5 秒,延时肯定在 15s 以外了。
RTMP 延时低一些,小程序的视频播放器好像也能播放 [不确定]
观看人数不多的话可以考虑用 WebRTC,延时一般都比较低
qiayue
2020-02-19 15:08:48 +08:00
jsmpeg 可以做到毫秒级别延时
wzw
2020-02-19 16:14:02 +08:00
@qiayue #6 阿里云不支持 jsmpeg 呀, 难道自己搭建? 我去了解一下 jsmpeg
yikyo
2020-02-19 17:10:32 +08:00
webrtc 有系统兼容性问题,我司用声网的产品,他们做培训的时候提出在低系统版本时使用 js 来解码,不知道现在有没有实际产品。你可以找声网的咨询一下,但估计不满足你这边的需求,他们是整套方案。
laoyu
2020-02-19 17:15:05 +08:00
是流本身有延迟还是放在 HTML 5 播放器上出现的延迟。你看下 DPlayer
pperlee
2020-02-19 17:32:42 +08:00
我不太清楚阿里云是哪个流服务器,wowza 还是其他?每个应该都有参数设置的,需要自定义一下,20s 确实比较长了,一般控制在 6s 就好,如果你想更流畅,不妨考虑 webrtc 方式。hls 方式在 chrome 上面不兼容,不是最优的。
wzw
2020-02-19 17:53:12 +08:00
@pperlee #10 目前已经设置了最低了, 请看图
https://i.loli.net/2020/02/19/5L7XSNIyaq4mitZ.png

@laoyu #9 我直接用 iina/vlc 播放器尝试, 发现时延大


@yikyo #8 声网明天去了解下, 一开始就想到 阿里云了
zhs227
2020-02-19 18:15:11 +08:00
有客户端的情况下不要尝试播 HLS,直播的 HLS 延迟会让人想吐。没有客户端的情况下,考虑微信小程序中的 RTMP 播放能力
pperlee
2020-02-19 18:26:28 +08:00
你设置的只是播放的延时,按要求设置 2s 就好,但是除了播放,还有推流响应的延时、视频帧率的运算卡顿等,都会造成延时加大,你需要各方面都均衡设置,还有推流时要保证你的网络状况良好。检查网络,降低帧率试试。
coolwind1981
2020-02-19 19:56:04 +08:00
试一试 2 秒或 1 秒一个 ts 切片(关键帧 2 秒或 1 秒一个), 总共三个索引,但不知道会不会顺畅
ajaxfunction
2020-02-19 20:36:56 +08:00
无解,我这边尝试过,只有 rtmp 推流拉流可以做到延时 4 秒以下,
H5 方案在 10 秒左右,如果观看人数多 延时会在 15 秒左右
wzw
2020-02-20 07:46:22 +08:00
@ajaxfunction #15 正在尝试 jsmpeg

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/645754

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX