mirror of
https://github.com/arcodange-org/mediabunny.git
synced 2026-09-27 02:43:48 +02:00
Add packet type derivation logic, new verifyKeyPackets options, new determinePacketType method
This commit is contained in:
+4
-2
@@ -21,7 +21,7 @@
|
||||
chunked: true,
|
||||
chunkSize: 2**20
|
||||
});
|
||||
const outputFormat = new Mediabunny.WavOutputFormat({ large: true });
|
||||
const outputFormat = new Mediabunny.Mp4OutputFormat({});
|
||||
|
||||
const button = document.createElement('button');
|
||||
button.textContent = 'Cancel';
|
||||
@@ -70,6 +70,8 @@
|
||||
},
|
||||
*/
|
||||
video: {
|
||||
forceTranscode: true,
|
||||
codec: 'av1',
|
||||
//discard: true,
|
||||
//width: 1280,
|
||||
//discard: true,
|
||||
@@ -87,7 +89,7 @@
|
||||
},
|
||||
trim: {
|
||||
start: 0,
|
||||
end: 10
|
||||
end: 20
|
||||
},
|
||||
});
|
||||
console.log(conversion);
|
||||
|
||||
@@ -16,6 +16,62 @@
|
||||
source
|
||||
});
|
||||
|
||||
const videoTrack = await input.getPrimaryVideoTrack();
|
||||
const packetSink = new Mediabunny.EncodedPacketSink(videoTrack);
|
||||
const sampleSink = new Mediabunny.VideoSampleSink(videoTrack);
|
||||
|
||||
for await (const packet of packetSink.packets(undefined, undefined, {verifyType: true})) {
|
||||
const guess = packet.type;
|
||||
const real = await videoTrack.determinePacketType(packet);
|
||||
|
||||
if (guess !== real) {
|
||||
console.log(guess, real, packet);
|
||||
}
|
||||
}
|
||||
console.log("don")
|
||||
|
||||
/*
|
||||
console.time()
|
||||
for await (const packet of packetSink.packets(undefined, undefined, { verifyType: true })) {
|
||||
//console.log(packet)
|
||||
}
|
||||
console.timeEnd()
|
||||
*/
|
||||
|
||||
//console.log(await packetSink.getPacket(6.666666666666667, { verifyType: true }))
|
||||
|
||||
/*
|
||||
for await (const packet of packetSink.packets()) {
|
||||
const guess = packet.type;
|
||||
const real = await videoTrack.determinePacketType(packet);
|
||||
|
||||
if (guess !== real) {
|
||||
console.log(guess, real, packet);
|
||||
}
|
||||
}
|
||||
console.log("done")
|
||||
*/
|
||||
|
||||
/*
|
||||
const timestamp = 6.666666666666667;
|
||||
const thePacket = await packetSink.getPacket(timestamp);
|
||||
|
||||
console.log(videoTrack.codec, thePacket, await videoTrack.determinePacketType(thePacket));
|
||||
|
||||
sampleSink.getSample(thePacket.timestamp);
|
||||
*/
|
||||
|
||||
/*
|
||||
let packet = await packetSink.getFirstPacket();
|
||||
while (packet) {
|
||||
console.log(packet)
|
||||
const sample = await sampleSink.getSample(packet.timestamp);
|
||||
|
||||
packet = await packetSink.getNextKeyPacket(packet);
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
const canvas = document.createElement('canvas');
|
||||
canvas.width = 1920;
|
||||
canvas.height = 1080;
|
||||
@@ -30,6 +86,7 @@
|
||||
console.log(sample);
|
||||
|
||||
sample.draw(ctx, 1500, 500, 50, 50, 0, 0);
|
||||
*/
|
||||
|
||||
/*
|
||||
let timestamps = [];
|
||||
|
||||
Reference in New Issue
Block a user