Implement demo media player, add internal queue to media frame iterator, adjust audio buffer timestamps

This commit is contained in:
David Payr
2024-12-22 23:05:30 +01:00
parent 03389a6eba
commit 73373b89bf
8 changed files with 366 additions and 26 deletions
+22
View File
@@ -13,10 +13,32 @@
source
});
const videoTrack = await input.getPrimaryVideoTrack();
const drain = new Metamuxer.VideoFrameDrain(videoTrack);
const width = await videoTrack.getWidth();
const height = await videoTrack.getHeight();
const canvas = document.createElement('canvas');
canvas.width = width;
canvas.height = height;
document.body.append(canvas);
const context = canvas.getContext('2d');
// Top-level for await loop inside the event listener
for await (const frame of drain.frames()) {
context.drawImage(frame, 0, 0, width, height);
frame.close();
await new Promise(resolve => setTimeout(resolve, 1000 / 24));
}
/*
const videoTrack = await input.getPrimaryVideoTrack();
const audioTrack = await input.getPrimaryAudioTrack();;
console.log(videoTrack.computeDuration());
console.log(await audioTrack.computeDuration());
*/
/*
const audioTrack = await input.getPrimaryAudioTrack();