我尝试在网络浏览器中播放视频,原始视频带有两个或更多音频流,每一个都是不同的语言。我想让用户选择切换他们正在收听的音频曲目。
我试着用
audioTracks
在视频元素上,尽管大多数浏览器都支持它,至少在Firefox和Chrome中,我并不认为它是有效的(在Firefox中,它只显示第一个音轨,而元数据是错误的,在Chrome中,当你静音主音轨时,视频就会暂停,你必须寻找视频才能真正播放继续播放)。
我试着用
ffmpeg
单独保存单个音频曲目并尝试与视频同步播放(设置
audio.currentTime = video.currentTime
play
,
playing
,
pause
seeked
,
stalled
<audio>
连接到的元素
GainNode
使用
Web Audio API
1
0
其余的)。这似乎在Chrome中运行得很完美,但是Firefox到处都是,甚至在同步了
currentTime
属性实际音频关闭一秒钟或更长时间。
我看到其他人抱怨MP3关闭时间的类似问题,但我使用的是AAC。在这些情况下,解决方案是不使用可变比特率的音频,但这似乎并没有改善它(
ffmpeg -i video.mkv -map 0:a:0 -acodec aac -b:a 128k track-0.aac
)
有什么好的策略吗?如果我可以避免的话,我不希望每个音轨都有重复的视频文件。