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

时间:2019-05-20 23:11:00

标签: ffmpeg hls mpeg-dash

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

直播似乎是一个显而易见的选择。但是,真正在较小的同步时间范围内进入的唯一方法是减少段时间。这是唯一可行的解​​决方案吗?是否有任何标签可以帮助我将客户的停留时间保持在40毫秒之内?

当前,我正在使用FFMPEG将视频和音频编码为实时内容。

1 个答案:

答案 0 :(得分:0)

这里有几个单独的问题:

  • “实况时间”-假设广播是事件实际发生的实时时间,例如足球在比赛中踢球的实际时间,然后实现从头到尾的完整交付40毫秒内的最终屏幕正在推动任何可能的传送技术的界限。当然,HLS和DASH流不会提供给您。

  • 您的目标可能是使每个最终用户与其他最终用户的差异不超过40毫秒-例如每个用户都以10秒的延迟接收广播,但是每个用户的延迟是相同的正负40毫秒。这仍然是一个棘手的问题,因为除非您将所有设备同步到某个公共时钟,否则您将依靠某种机制来发信号通知每个设备与某个中央或分布式控制机制之间的流中位置。 ,40ms并不是很多时间,即使是小消息也可以来回传播,不需要任何计算时间差和调整所需的处理。

同步互联网传送的媒体流不是一个容易的问题,但是至少可以看一些工作来帮助您获得一些想法-参见以下示例:https://stackoverflow.com/a/51819066/334402