我正在流式传输RTMP和HLS(用于IOS和android),RTMP video.js显示正确的currentTime。根据我的currentTime应该是当流启动时,而不是当客户端开始查看流时。但是当我使用HLS流时,currentTime会在客户端启动流时返回,而不是在流启动时返回(使用来自android或ios或VLC的任何播放器的相同结果)。
在我的HLS流上使用ffprobe我得到了正确的值,即当流开始时,这让我相信我应该开始寻找客户端来寻找解决方案,但我还远未确定。 / p>
所以请帮助我找到解决这个问题的正确方向。
因为HLS本质上并没有给我正确的currentTime,但奇怪的是ffprobe给了我正确的答案?
无法在video.js代码中找到有关如何获取任何其他时间代码的任何内容。
我的服务器是否为HLS生成错误的SMTPE时间码,而ffprobe正在使用其他方式获取正确的currentTime?
无论如何,我只是好奇,我有一个解决方法,通过最初计算我将在5秒钟球场中获得的使用过的碎片,即对我的情况足够好。
感谢您提供任何帮助或意见。
BR大卫
答案 0 :(得分:0)
RTMP和HLS以不同的方式工作。 RTMP始终在流式传输,并且当您订阅流时,就订阅了正在运行的流,因此开始时间将是流开始的时间。
HLS的工作方式不同。当您订阅HLS流时,它将为您创建一个流。因此,当前时间将是HLS流启动的时间,这意味着您订阅和创建HLS流的时间。