rtmp - 流式处理 HLS 时,videojs 的 currentTime 不正确

标签 rtmp video.js http-live-streaming duration

我正在流式传输 RTMP 和 HLS(适用于 IOS 和 android),RTMP video.js 显示正确的 currentTime。根据我的说法 currentTime 应该是流开始的时间,而不是客户端开始查看流的时间。但是,当我使用 HLS 流时,currentTime 在客户端启动流时返回,而不是在流启动时返回(使用来自 android 或 ios 或 VLC 的任何播放器的结果相同)。

在我的 HLS 流上使用 ffprobe 我得到了正确的值,即流开始时,这让我相信我应该开始查看客户端以找到解决方案,但我不确定。

所以请帮助我找到正确的方向来解决这个问题。

即本质上是 HLS 没有给我正确的 currentTime,但奇怪的是 ffprobe 给了我正确的答案?

在 video.js 代码中找不到关于如何获取任何其他时间代码的任何内容。

是我的服务器为 HLS 生成了错误的 SMTPE 时间码,而 ffprobe 正在使用其他方式获取正确的 currentTime 吗?

无论如何,我只是好奇,我有一个解决方法,通过最初计算使用过的碎片,我至少会在 5 秒内获得,即对我的情况来说足够好。

感谢您的任何帮助或输入。

BR大卫

最佳答案

RTMP 和 HLS 以不同的方式工作。
RTMP 始终是流式传输的,当您订阅流时,您订阅了正在运行的流,因此开始时间将是流开始的时间。

HLS 的工作方式不同。当您订阅 HLS 流时,它会为您创建一个流。因此,当前时间将是 HLS 流开始的时间,这意味着您订阅并创建 HLS 流的时间。

关于rtmp - 流式处理 HLS 时,videojs 的 currentTime 不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24198319/

相关文章:

ios - 如何捕获 iOS 摄像头并发布 RTMP 直播流?

audio - 在音频 session 中查找当前发言人

android - RTMP自适应码率算法

ios - 在 iOS 中从 HLS 下载特​​定分辨率

xcode - 您可以使用 HLS 从 HTTPS 服务器流式传输吗?

node.js - 如何在将数据添加到nodejs中的文件后立即从音频文件中读取数据作为缓冲区?

linux - rtmpdump 通过命令行检查状态

javascript - bigVideo.js 在加载视频之前在屏幕上显示文本

ffmpeg - 使用 video.js 播放直播

javascript - 如何包含框架?