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
对象的流。您无法在服务器端更改语言。
但是您可以在流中使用客户端Javascript到enumerate the audio tracks。
例如,此代码将德语曲目设置为 track.enabled
至 true
,其余曲目设置为 track.enabled
至 false
。这会将除德语音轨之外的所有音频静音。
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')
}
但是你应该小心这个糟糕的示例代码;如果没有德语曲目,它将使整个流静音。
我想通过我电脑上的 nodejs 在浏览器中播放视频。我通过 express 执行此操作并使用此代码:
https://medium.com/better-programming/video-stream-with-node-js-and-html5-320b3191a6b6(滚动到“服务器”)。
这正是我需要的,但我想更改音轨。我正在访问的 mp4 文件有多个内部音轨(多种语言)。正如您在此处看到的,您可以使用 VLC 媒体播放器更改音轨。由于 vlc 媒体播放器可以做到这一点,我会用 nodejs 实现它。
感谢帮助!
您引用了一些示例服务器代码,这些代码传送包含 .mp4
对象的流。您无法在服务器端更改语言。
但是您可以在流中使用客户端Javascript到enumerate the audio tracks。
例如,此代码将德语曲目设置为 track.enabled
至 true
,其余曲目设置为 track.enabled
至 false
。这会将除德语音轨之外的所有音频静音。
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')
}
但是你应该小心这个糟糕的示例代码;如果没有德语曲目,它将使整个流静音。