【问题标题】:Low latency RTMP playback with video.js使用 video.js 进行低延迟 RTMP 播放
【发布时间】:2019-06-12 09:34:30
【问题描述】:

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

查看较旧的 videojs 版本,似乎从未合并某些允许指定要传递给 swf 对象的 flashvars 的代码。在较新的 video.js 版本中,可以使用 videojs-flash 插件播放 flash 视频,并且该插件似乎在播放器选项中支持 flashVars,并且此 vars 被传递给 swf 对象。

有人使用过这个功能吗?我如何为 videojs 对象提供 flashVars 选项。

这是我目前尝试过的代码:

var player = videojs('my-video', {
 autoplay: true,
 muted: true,
 preload: "auto",
 sources: [{
    type: "rtmp/flv",
 }],
 flashVars: {
    buffertime: 0
 }
});

【问题讨论】:

    标签: video.js rtmp


    【解决方案1】:

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

    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 的路径。

    这显着减少了延迟,但根据我的经验,延迟可能因连接而异。

    【讨论】:

      猜你喜欢
      • 2017-03-23
      • 1970-01-01
      • 2021-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      • 2020-10-11
      相关资源
      最近更新 更多