Add audio drains & various fixes and adjustments

This commit is contained in:
David Payr
2024-12-22 15:16:44 +01:00
parent 07689fbd8d
commit 03389a6eba
13 changed files with 1223 additions and 487 deletions
+57
View File
@@ -13,6 +13,62 @@
source
});
const videoTrack = await input.getPrimaryVideoTrack();
const audioTrack = await input.getPrimaryAudioTrack();;
console.log(videoTrack.computeDuration());
console.log(await audioTrack.computeDuration());
/*
const audioTrack = await input.getPrimaryAudioTrack();
const drain = new Metamuxer.AudioBufferDrain(audioTrack);
const context = new AudioContext();
const startTime = context.currentTime;
for await (const { buffer, timestamp } of drain.buffers()) {
const node = context.createBufferSource();
node.buffer = buffer;
node.connect(context.destination);
const start = startTime + timestamp
node.start(start);
if (start > context.currentTime + 5) {
await new Promise(resolve => {
const id = setInterval(() => {
if (start < context.currentTime + 5) {
clearInterval(id);
resolve();
}
}, 100);
});
}
}
*/
/*
const drain = new Metamuxer.AudioDataDrain(audioTrack);
console.time()
for await (const data of drain.data()) {
data.close();
}
console.timeEnd()
*/
/*
const drain = new Metamuxer.EncodedAudioChunkDrain(audioTrack);
for await (const chunk of drain.chunks()) {
console.log(chunk);
if (chunk.timestamp > 1e6) {
break;
}
}
*/
/*
const videoTrack = await input.getPrimaryVideoTrack();
const drain = new Metamuxer.VideoFrameDrain(videoTrack);
const width = await videoTrack.getWidth();
@@ -30,6 +86,7 @@
context.drawImage(frame, 0, 0, width, height);
frame.close();
}
*/
/*
const drain = new Metamuxer.EncodedVideoChunkDrain(videoTrack);