首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用video.js实现低延迟RTMP播放

使用video.js实现低延迟RTMP播放
EN

Stack Overflow用户
提问于 2019-06-12 17:34:30
回答 1查看 1.4K关注 0票数 0

我正在尝试使用HTML5、vido.js和videojs-flash播放低延迟的RTMP流。目前,我可以让流以3-4秒的延迟显示,但使用ffplay播放相同的流会有亚秒级的延迟。

看一下较旧的videojs版本,一些允许指定flashvar传递给swf对象的代码似乎从未合并过。在较新的video.js版本中,可以使用videojs-flash插件来播放flash视频,该插件似乎在播放器选项中支持flashVars,并将此变量传递给swf对象。

是否有人使用过此功能?我如何为videojs对象提供flashVars选项。

这是我到目前为止尝试的代码:

代码语言:javascript
复制
var player = videojs('my-video', {
 autoplay: true,
 muted: true,
 preload: "auto",
 sources: [{
    type: "rtmp/flv",
 }],
 flashVars: {
    buffertime: 0
 }
});
EN

回答 1

Stack Overflow用户

发布于 2019-06-15 21:53:49

如果找到了我自己的问题的答案,就可以大大减少延迟。它现在不是很稳定,因为我有时会得到~1s的延迟,但可以高达3s。解决方案是使用一个打了补丁的swf,它将解释考虑到缓冲选项。现在播放器初始化变成:

代码语言:javascript
复制
var player = videojs('my-video', {
  techOrder: ['flash'],
  autoplay: true,
  sources: [{
  type: "rtmp/flv",
}],
bufferTime: 0,
flash: {
  swf: "js/video-js.swf",
  flashVars: {
    bufferTime: 0,
    autoPlay: true,
    bufferTimeMax: 0.25
  }
}
});

video-js.swf是从以下位置的补丁版本编译而来的:

https://github.com/sea-kg/video-js-swf.git

只需编译此版本并使用" swf :“flash选项提供此swf的路径即可。

这大大减少了延迟,但根据我的经验,每个连接的延迟可能会有所不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56558969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档