Blob视频时长元数据[重复]

问题描述 投票:14回答:2

我正在编写一个在firefox中处理相机流视频的软件。

我正在生成一个带有MediaRecorder API记录的视频类型的Blob。

我正在做什么来保存blob作为本地存储中的视频使用FileSaver库:

    FileSaver.saveAs(BlobVideo,"video.mp4");

看起来视频没有任何最大持续时间,因此我无法在我在VLC中新生成的视频中的时间轴中导航。

有没有办法在blob视频上设置持续时间元数据?

javascript blob mediarecorder getusermedia mediastream
2个回答
4
投票

这个问题几乎与this other one重复。 (但由于有奖金,我们不能投票结束)

这是一个已知的chrome bug

您可以通过加载视频,将currentTime设置为某个额外值,然后读取持续时间,从浏览器本身获得此持续时间,但是您不会将其附加到文件本身,至少在错误修复之前不会。


1
投票

直到Kaiido提到的铬虫得到修复,这对我有用:

while(video.duration === Infinity) {
  await new Promise(r => setTimeout(r, 1000));
  video.currentTime = 10000000*Math.random();
}
let duration = video.duration;

听一下“durationchange”事件可能是一个更好的主意,而不是任意1秒的暂停。

© www.soinside.com 2019 - 2024. All rights reserved.