微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

流式传输不同语言的 mp4 视频 (ExpressJs)

如何解决流式传输不同语言的 mp4 视频 (ExpressJs)

我使用以下代码来流式传输视频(仅在我的本地网络中)。在我的 mp4 文件中有几个不同语言的音轨。是否可以选择特定的音轨进行流式传输?例如,您在 URL 中指定一种语言作为查询参数,并且流式视频具有选定的音轨。

示例 1:
网址:“localhost/video?lang=en”
视频:英文音轨

示例 2:
网址:“localhost/video?lang=de”
视频:德语音轨

也许您可以使用 ffmpeg (https://www.npmjs.com/package/ffmpeg) 删除流中所有不需要的音轨?

工作 expressjs 代码/示例: https://betterprogramming.pub/video-stream-with-node-js-and-html5-320b3191a6b6 (https://gist.github.com/BetterProgramming/3bf5d66b0285a2690de684d46c4cabb4#file-app-get-js)

解决方法

似乎有一些简单的方法可以做到:

  1. 设计您的 express api 来处理查询参数,例如 ?lang=%lang%
  2. 使用 HTMLMediaElement.audioTracks 选择您需要的曲目。

不幸的是,HTMLMediaElement.audioTracks 的 API 在浏览器中没有丰富的支持,因此解决您问题的最佳和明确的方法是以您需要的所有语言导出和上传您的视频,并在当前语言上发送带有当前音轨的文件在查询参数中定义,如下所示:

app.get('%YOUR_API_ENDPOINT%',function(req,res) {
    const lang =req.params.lang        
    res.sendFile(path.join(__dirname + `/my_file_${lang}.mp4`));
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。