如何使用Exoplayer在多个客户端上同步HLS和/或MPEG-DASH视频



我正在尝试保证使用DASH和/或HLS之间的多个客户端之间的同步。每个客户之间的同步必须落在40毫秒内。

实时流媒体似乎是一个明显的选择。但是,在同步的较小时间范围内真正获得的唯一方法是降低段时间。这是唯一可行的解决方案吗?是否有任何标签可以帮助我将客户保持在40毫秒之内到达现场时间?

目前,我正在使用ffmpeg编码视频和音频来实时内容。

这里有几个单独的问题:

  • 'Live Time' - 假设这是事件实际发生的实时时间,例如,在比赛中踢足球的实际时间,然后实现全部端到头的交付40毫秒内的端屏幕正在突破任何可能的交付技术的界限。当然,HLS和Dash流不会给您。

  • 您的目标可能是让每个最终用户彼此之间的最终用户不超过40ms,例如每个用户都以10秒的延迟收到广播,但对于每个用户,该延迟是相同的加上或减去40ms。这仍然是一个非常棘手的问题,因为除非您有所有设备都同步的通用时钟,否则您将依靠某些机制来发出每个设备与某些中央或分布式控制机制之间的位置的信号,40ms也没有很多时间允许小消息来回旅行,以及计算任何时间差并进行调整所需的任何处理。

同步互联网交付的媒体流并不是一个容易的问题,但是至少有一些工作可以帮助您获得一些想法 - 请参阅此处的一些示例:https://stackoverflow.com/a/51819066/3344402

最新更新