Node JS 部分视频流到 safari

问题描述

我正在尝试使用 node.js 作为后端将视频直接流式传输到浏览器。我希望视频从特定时间开始流式传输,也希望它部分流式传输,因为它是一个非常大的文件。现在我正在用 fluent-ffmpeg 做这个,就像这样:

const ffmpeg = require('fluent-ffmpeg');

app.get('/clock/',(req,res) => {
  const videoPath = 'video.mp4'; 
  const Now = new Date();

  ffmpeg(videoPath)
    .videoCodec('libx264')
    .withAudioCodec('aac')
    .setStartTime(`${(Now.getHours() - 10) % 24}:${Now.getMinutes() - 1}:${Now.getSeconds()}`)
    .format('mp4')
    .outputoptions(['-frag_duration 100','-movflags frag_keyframe+faststart','-pix_fmt yuv420p'])
    .on('end',() => {
      console.log("File has been converted succesfully");
    })
    .on('error',(err) => {
      if (err.message.toLowerCase().includes('output stream closed')) return;
      console.log('An error occoured',err);
    })
    .pipe(res,{ end: true });
});

这将适用于 Chrome,但 Safari 只是不想流式传输它。 我知道它在 Safari 上不起作用的原因是 Safari 需要范围标题。因此,我尝试这样做,但是:

  1. 我无法让它与 fluent-ffmpeg 一起使用。
  2. 当我尝试以“正常”方式执行此操作时,没有 fluent-ffmpeg,它需要在播放之前加载整个视频文件

视频不需要在特定的时间戳开始。这会很好,但如果不可能,我有一个解决方法:)

所以我的问题是:如何让上面的代码与 Safari 一起使用。如果这是不可能的:我如何编写不需要完全加载的内容,然后才能在 Safari 浏览器中播放。部分视频流。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...