gpt4 book ai didi

live-streaming - 跨设备同步 HLS 直播

转载 作者:行者123 更新时间:2023-12-05 08:07:17 25 4
gpt4 key购买 nike

我们目前正在为我们的一个应用程序使用 ExoPlayer,它与 HQ Trivia 应用程序非常相似,我们使用 HLS 作为流媒体协议(protocol)。

由于游戏的性质,我们试图让这个流的所有观众有相同的延迟,基本上是为了让他们保持同步。

我们注意到,在当前的后端配置下,延迟大约在 6 到 10 秒之间。基于这一事实,我们假设“强制”玩家以更大的延迟(15 秒,更远离现场边缘)进行游戏是安全的,这样可以在所有设备上实现相同(恒定)的延迟。

我们使用 EXT-X-PROGRAM-DATE-TIME 标签来获取当前播放内容的服务器时间,我们还有一个带有当前时间 (NTP) 的主时钟。我们不断比较 2 个时钟以检查当前延迟。我们暂停播放器,直到它达到所需的延迟,然后我们恢复播放。

这个解决方案的问题是延迟可能会随着时间的推移变得更糟(累积延迟),我们别无选择,只能重新开始播放并在延迟变得太大(超过指定的步骤)时重做上述步骤临界点)。在重新启动播放器之前,我们还尝试稍微提高播放速度,直到达到指定的延迟。

exoPlayer 实例设置有 DefaultLoadControl、DefaultRenderersFactory、DefaultTrackSelector,媒体源使用 DefaultDataSourceFactory。

服务端配置如下:cupertinoChunkDurationTarget:2000(默认值:10000)cupertinoMaxChunkCount:31(默认值:10)cupertinoPlaylistChunkCount:15(默认值:3)

我的第一个问题是,这是否可以通过像 HLS 这样的协议(protocol)来实现?为什么玩家渐行渐远会累积越来越多的延迟?考虑到我们的具体用例,exoPlayer 实例是否有更好的设置?有没有更好的方法在所有播放设备上实现恒定的播放延迟?在尝试实现这种行为时,服务器端的参数有多重要?

我真的很感激任何形式的帮助,因为我已经走到了死胡同。 :)

谢谢!

最佳答案

唯一的解决方案是:

https://netinsight.net/product/sye/

他们的解决方案包括无漂移的帧精确同步和有状态 ABR。这可能无法使用基于 http 的协议(protocol)来完成,因此他们的解决方案是建立在 UDP 传输之上的。

关于live-streaming - 跨设备同步 HLS 直播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55162038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com