我正在编写一款软件,可以在Firefox中操作摄像头流视频。
我使用MediaRecorder API记录视频类型,并生成一个Blob。
为了将Blob保存为本地存储的视频,我使用了FileSaver库:
FileSaver.saveAs(BlobVideo,"video.mp4");
视频似乎没有最大时长,因此我无法在例如VLC中导航新生成的视频的时间轴。
是否有办法在Blob视频上设置持续时间元数据?
我正在编写一款软件,可以在Firefox中操作摄像头流视频。
我使用MediaRecorder API记录视频类型,并生成一个Blob。
为了将Blob保存为本地存储的视频,我使用了FileSaver库:
FileSaver.saveAs(BlobVideo,"video.mp4");
视频似乎没有最大时长,因此我无法在例如VLC中导航新生成的视频的时间轴。
是否有办法在Blob视频上设置持续时间元数据?
在 Kaiido 提到的 Chrome bug 被修复之前,这个方法对我有用:
while(video.duration === Infinity) {
await new Promise(r => setTimeout(r, 1000));
video.currentTime = 10000000*Math.random();
}
let duration = video.duration;
然而,更好的做法是监听“durationchange”事件,而不是设置任意1秒的暂停。