Nodejs 流式传输视频(mp4)和切换音轨

Nodejs stream video (mp4) and switch audio tracks

我想通过我电脑上的 nodejs 在浏览器中播放视频。我通过 express 执行此操作并使用此代码:

https://medium.com/better-programming/video-stream-with-node-js-and-html5-320b3191a6b6(滚动到“服务器”)。

这正是我需要的,但我想更改音轨。我正在访问的 mp4 文件有多个内部音轨(多种语言)。正如您在此处看到的,您可以使用 VLC 媒体播放器更改音轨。由于 vlc 媒体播放器可以做到这一点,我会用 nodejs 实现它。

感谢帮助!

您引用了一些示例服务器代码,这些代码传送包含 .mp4 对象的流。您无法在服务器端更改语言。

但是您可以在流中使用客户端Javascriptenumerate the audio tracks

例如,此代码将德语曲目设置为 track.enabledtrue,其余曲目设置为 track.enabledfalse。这会将除德语音轨之外的所有音频静音。

const videoElement = document.getElementById('videoplayer')
for (let i = 0; i < videoElement.audioTracks.length; i++) {
  const track = videoElement.audioTracks[i]
  track.enabled = (track.language === 'de-DE')
}

但是你应该小心这个糟糕的示例代码;如果没有德语曲目,它将使整个流静音。