Metamuxer -> Mediabunny

This commit is contained in:
Vanilagy
2025-06-16 15:55:38 +02:00
parent 99f813c938
commit f675966004
17 changed files with 126 additions and 126 deletions
+6 -6
View File
@@ -12,11 +12,11 @@ const umdConfig = {
format: 'iife',
// The following are hacks to basically make this an UMD module. No native support for that in esbuild as of today
globalName: 'Metamuxer',
globalName: 'Mediabunny',
footer: {
js:
`if (typeof module === "object" && typeof module.exports === "object") Object.assign(module.exports, Metamuxer)`,
`if (typeof module === "object" && typeof module.exports === "object") Object.assign(module.exports, Mediabunny)`,
},
};
@@ -27,20 +27,20 @@ const esmConfig = {
const ctxUmd = await esbuild.context({
...umdConfig,
outfile: 'dist/metamuxer.js',
outfile: 'dist/mediabunny.js',
});
const ctxEsm = await esbuild.context({
...esmConfig,
outfile: 'dist/metamuxer.mjs',
outfile: 'dist/mediabunny.mjs',
});
const ctxUmdMinified = await esbuild.context({
...umdConfig,
outfile: 'dist/metamuxer.min.js',
outfile: 'dist/mediabunny.min.js',
minify: true,
});
const ctxEsmMinified = await esbuild.context({
...esmConfig,
outfile: 'dist/metamuxer.min.mjs',
outfile: 'dist/mediabunny.min.mjs',
minify: true,
});
+11 -11
View File
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<script src="../dist/metamuxer.js"></script>
<script src="../dist/mediabunny.js"></script>
<script type="module">
const fileInput = document.createElement('input');
@@ -14,26 +14,26 @@
fileInput.addEventListener('change', async () => {
const file = fileInput.files[0];
const source = new Metamuxer.BlobSource(file);
const target = new Metamuxer.BufferTarget() ?? new Metamuxer.StreamTarget(new WritableStream({
const source = new Mediabunny.BlobSource(file);
const target = new Mediabunny.BufferTarget() ?? new Mediabunny.StreamTarget(new WritableStream({
write: console.log
}), {
chunked: true,
chunkSize: 2**20
});
const outputFormat = new Metamuxer.MovOutputFormat();
const outputFormat = new Mediabunny.MovOutputFormat();
const button = document.createElement('button');
button.textContent = 'Cancel';
button.onclick = () => conversion.cancel();
document.body.append(button);
const conversion = await Metamuxer.Conversion.init({
input: new Metamuxer.Input({
formats: Metamuxer.ALL_FORMATS,
const conversion = await Mediabunny.Conversion.init({
input: new Mediabunny.Input({
formats: Mediabunny.ALL_FORMATS,
source
}),
output: new Metamuxer.Output({
output: new Mediabunny.Output({
format: outputFormat,
target
}),
@@ -47,15 +47,15 @@
/*
video: {
discard: true,
bitrate: Metamuxer.QUALITY_VERY_HIGH,
//bitrate: Metamuxer.QUALITY_VERY_HIGH
bitrate: Mediabunny.QUALITY_VERY_HIGH,
//bitrate: Mediabunny.QUALITY_VERY_HIGH
codec: 'av1',
//width: 800,
//fit: 'fill',
//rotate: 90,
},
audio: {
bitrate: Metamuxer.QUALITY_HIGH,
bitrate: Mediabunny.QUALITY_HIGH,
codec: 'aac',
},
*/
+59 -59
View File
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<script src="../dist/metamuxer.js"></script>
<script src="../dist/mediabunny.js"></script>
<script type="module">
const fileInput = document.createElement('input');
@@ -9,16 +9,16 @@
fileInput.addEventListener('change', async () => {
const file = fileInput.files[0];
const source = new Metamuxer.BlobSource(file);
const source = new Mediabunny.BlobSource(file);
const input = new Metamuxer.Input({
formats: Metamuxer.ALL_FORMATS,
const input = new Mediabunny.Input({
formats: Mediabunny.ALL_FORMATS,
source
});
const videoTrack = await input.getPrimaryVideoTrack();
const sink = new Metamuxer.EncodedPacketSink(videoTrack);
const sink = new Mediabunny.EncodedPacketSink(videoTrack);
for await (const packet of sink.packets()) {
if (packet.timestamp >= 2) break;
console.log(packet);
@@ -26,7 +26,7 @@
/*
let timestamps = [];
const packetSink = new Metamuxer.EncodedPacketSink(videoTrack);
const packetSink = new Mediabunny.EncodedPacketSink(videoTrack);
for await (const packet of packetSink.packets()) {
if (packet.timestamp >= 1) {
break;
@@ -83,14 +83,14 @@
//return;
/*
console.log(timestamps);
const sink = new Metamuxer.EncodedPacketSink(videoTrack);
const sink = new Mediabunny.EncodedPacketSink(videoTrack);
for await (const packet of sink.packets()) {
console.log(packet.sequenceNumber);
}
*/
/*
const sink = new Metamuxer.VideoSampleSink(videoTrack);
const sink = new Mediabunny.VideoSampleSink(videoTrack);
for await (const sample of sink.samplesAtTimestamps(timestamps)) {
console.log("wee", sample.timestamp);
sample.close();
@@ -99,7 +99,7 @@
*/
/*
const sink = new Metamuxer.CanvasSink(videoTrack, { width: 320 });
const sink = new Mediabunny.CanvasSink(videoTrack, { width: 320 });
for await (const wrappedCanvas of sink.canvasesAtTimestamps(timestamps)) {
console.log(wrappedCanvas);
}
@@ -129,15 +129,15 @@
/*
const output = new Metamuxer.Output({
format: new Metamuxer.Mp3OutputFormat(),
target: new Metamuxer.BufferTarget()
const output = new Mediabunny.Output({
format: new Mediabunny.Mp3OutputFormat(),
target: new Mediabunny.BufferTarget()
});
const audioTrack = await input.getPrimaryAudioTrack();
const sink = new Metamuxer.AudioDataSink(audioTrack);
const sink = new Mediabunny.AudioDataSink(audioTrack);
const mediaSource = new Metamuxer.AudioDataSource({
const mediaSource = new Mediabunny.AudioDataSource({
codec: 'mp3',
bitrate: 192000
});
@@ -167,31 +167,31 @@
/*
const videoTrack = await input.getPrimaryVideoTrack();
const sink = new Metamuxer.EncodedVideoSampleSink(videoTrack);
const sink = new Mediabunny.EncodedVideoSampleSink(videoTrack);
console.log(await sink.getSample(16));
console.log(await sink.getFirstSample());
*/
/*
const source = new Metamuxer.BufferSource(await file.arrayBuffer()) ?? new Metamuxer.BlobSource(file);
const source = new Mediabunny.BufferSource(await file.arrayBuffer()) ?? new Mediabunny.BlobSource(file);
const start = performance.now();
const input = new Metamuxer.Input({
formats: Metamuxer.ALL_FORMATS,
const input = new Mediabunny.Input({
formats: Mediabunny.ALL_FORMATS,
source
});
const output = new Metamuxer.Output({
format: new Metamuxer.WaveOutputFormat(),
target: new Metamuxer.BufferTarget()
const output = new Mediabunny.Output({
format: new Mediabunny.WaveOutputFormat(),
target: new Mediabunny.BufferTarget()
});
output.start();
*/
/*
const audioTrack = await input.getPrimaryAudioTrack();
const sink = new Metamuxer.EncodedAudioSampleSink(audioTrack);
const sink = new Mediabunny.EncodedAudioSampleSink(audioTrack);
let total = 0;
for await (const sample of sink.samples(undefined, undefined, { metadataOnly: true })) {
@@ -204,7 +204,7 @@
*/
/*
const sink = new Metamuxer.VideoFrameSink(videoTrack);
const sink = new Mediabunny.VideoFrameSink(videoTrack);
console.log(await videoTrack.getLanguageCode());
@@ -219,9 +219,9 @@
//console.log(await videoTrack.computeSampleStats());
//return;
const target = new Metamuxer.BufferTarget();
const output = new Metamuxer.Output({
format: new Metamuxer.WaveOutputFormat(),
const target = new Mediabunny.BufferTarget();
const output = new Mediabunny.Output({
format: new Mediabunny.WaveOutputFormat(),
target
});
@@ -230,12 +230,12 @@
const audioTrack = await input.getPrimaryAudioTrack();
const videoTrack = await input.getPrimaryVideoTrack();
const sink = new Metamuxer.EncodedAudioSampleSink(audioTrack);
const sink = new Mediabunny.EncodedAudioSampleSink(audioTrack);
const decoderConfig = await audioTrack.getDecoderConfig();
const sampleSource = new Metamuxer.EncodedAudioSampleSource(await audioTrack.getCodec());
const audioDataSource = new Metamuxer.AudioDataSource({ codec: 'pcm-s16', bitrate: 128e3 });
const videoSampleSource = new Metamuxer.EncodedVideoSampleSource(await videoTrack.getCodec());
const sampleSource = new Mediabunny.EncodedAudioSampleSource(await audioTrack.getCodec());
const audioDataSource = new Mediabunny.AudioDataSource({ codec: 'pcm-s16', bitrate: 128e3 });
const videoSampleSource = new Mediabunny.EncodedVideoSampleSource(await videoTrack.getCodec());
output.addAudioTrack(audioDataSource ?? sampleSource);
//output.addVideoTrack(videoSampleSource);
@@ -253,12 +253,12 @@
// //console.log(sample)
// await sampleSource.add(sample, { decoderConfig });
//}
for await (const { data, timestamp } of new Metamuxer.AudioDataSink(audioTrack).data()) {
for await (const { data, timestamp } of new Mediabunny.AudioDataSink(audioTrack).data()) {
//console.log("wow", data.timestamp);
//console.log(sample)
await audioDataSource.add(data);
}
//for await (const sample of new Metamuxer.EncodedVideoSampleSink(videoTrack).samples()) {
//for await (const sample of new Mediabunny.EncodedVideoSampleSink(videoTrack).samples()) {
// //console.log(sample)
// await videoSampleSource.add(sample, { decoderConfig: videoDecoderConfig });
//}
@@ -281,13 +281,13 @@
*/
/*
const input2 = new Metamuxer.Input({
formats: Metamuxer.ALL_FORMATS,
source: new Metamuxer.BufferSource(target.buffer)
const input2 = new Mediabunny.Input({
formats: Mediabunny.ALL_FORMATS,
source: new Mediabunny.BufferSource(target.buffer)
});
const videoTrack2 = await input2.getPrimaryVideoTrack();
const drain2 = new Metamuxer.EncodedVideoSampleDrain(videoTrack2);
const drain2 = new Mediabunny.EncodedVideoSampleDrain(videoTrack2);
let i = 0;
for await (const sample of drain2.samples(undefined, undefined)) {
@@ -302,13 +302,13 @@
/*
const videoTrack = await input.getPrimaryVideoTrack();
const drain = new Metamuxer.VideoFrameDrain(videoTrack);
const drain = new Mediabunny.VideoFrameDrain(videoTrack);
async function* timestamps() {
const fromTime = 0;
const toTime = await videoTrack.computeDuration();
const extractDuration = toTime - fromTime;
const drain = new Metamuxer.EncodedVideoSampleDrain(videoTrack);
const drain = new Mediabunny.EncodedVideoSampleDrain(videoTrack);
const thumbnailsNeeded = 16;
for (let i = 0; i < thumbnailsNeeded; i++) {
@@ -341,7 +341,7 @@
/*
const audioTrack = await input.getPrimaryVideoTrack();
const drain = new Metamuxer.EncodedVideoChunkDrain(audioTrack);
const drain = new Mediabunny.EncodedVideoChunkDrain(audioTrack);
for await (const chunk of drain.chunks()) {
//console.log(chunk);
@@ -352,7 +352,7 @@
/*
const drain = new Metamuxer.AudioBufferDrain(audioTrack);
const drain = new Mediabunny.AudioBufferDrain(audioTrack);
const chunks = drain.buffers()
const a = chunks.next();
@@ -364,13 +364,13 @@
/*
const videoTrack = await input.getPrimaryVideoTrack();
const drain = new Metamuxer.VideoFrameDrain(videoTrack);
const drain = new Mediabunny.VideoFrameDrain(videoTrack);
const target = new Metamuxer.ArrayBufferTarget();
const format = new Metamuxer.Mp4OutputFormat();
const output = new Metamuxer.Output({ target, format });
const target = new Mediabunny.ArrayBufferTarget();
const format = new Mediabunny.Mp4OutputFormat();
const output = new Mediabunny.Output({ target, format });
const mediaSource = new Metamuxer.VideoFrameSource({
const mediaSource = new Mediabunny.VideoFrameSource({
codec: 'av1',
bitrate: 1e6
});
@@ -398,13 +398,13 @@
/*
const videoTrack = await input.getPrimaryVideoTrack();
const drain = new Metamuxer.VideoFrameDrain(videoTrack);
const drain = new Mediabunny.VideoFrameDrain(videoTrack);
async function* timestamps() {
const fromTime = 0;
const toTime = await videoTrack.computeDuration();
const extractDuration = toTime - fromTime;
const drain = new Metamuxer.EncodedVideoChunkDrain(videoTrack);
const drain = new Mediabunny.EncodedVideoChunkDrain(videoTrack);
const thumbnailsNeeded = 16;
for (let i = 0; i < thumbnailsNeeded; i++) {
@@ -438,7 +438,7 @@
/*
const videoTrack = await input.getPrimaryVideoTrack();
const drain = new Metamuxer.VideoFrameDrain(videoTrack);
const drain = new Mediabunny.VideoFrameDrain(videoTrack);
const width = await videoTrack.getWidth();
const height = await videoTrack.getHeight();
@@ -467,7 +467,7 @@
/*
const audioTrack = await input.getPrimaryAudioTrack();
const drain = new Metamuxer.AudioBufferDrain(audioTrack);
const drain = new Mediabunny.AudioBufferDrain(audioTrack);
const context = new AudioContext();
const startTime = context.currentTime;
@@ -493,7 +493,7 @@
*/
/*
const drain = new Metamuxer.AudioDataDrain(audioTrack);
const drain = new Mediabunny.AudioDataDrain(audioTrack);
console.time()
for await (const data of drain.data()) {
@@ -504,7 +504,7 @@
/*
const drain = new Metamuxer.EncodedAudioChunkDrain(audioTrack);
const drain = new Mediabunny.EncodedAudioChunkDrain(audioTrack);
for await (const chunk of drain.chunks()) {
console.log(chunk);
@@ -517,7 +517,7 @@
/*
const videoTrack = await input.getPrimaryVideoTrack();
const drain = new Metamuxer.VideoFrameDrain(videoTrack);
const drain = new Mediabunny.VideoFrameDrain(videoTrack);
const width = await videoTrack.getWidth();
const height = await videoTrack.getHeight();
@@ -536,7 +536,7 @@
*/
/*
const drain = new Metamuxer.EncodedVideoChunkDrain(videoTrack);
const drain = new Mediabunny.EncodedVideoChunkDrain(videoTrack);
const startChunk = await drain.getFirstChunk();
for await (const chunk of drain.chunks(startChunk)) {
@@ -552,7 +552,7 @@
*/
/*
const drain = new Metamuxer.VideoFrameDrain(videoTrack);
const drain = new Mediabunny.VideoFrameDrain(videoTrack);
for await (const frame of drain.frames()) {
// ...
@@ -562,7 +562,7 @@
*/
/*
const drain = new Metamuxer.VideoFrameDrain(videoTrack);
const drain = new Mediabunny.VideoFrameDrain(videoTrack);
const width = await videoTrack.getWidth();
@@ -584,7 +584,7 @@
/*
const videoTrack = await input.getPrimaryVideoTrack();
const drain = new Metamuxer.VideoFrameDrain(videoTrack);
const drain = new Mediabunny.VideoFrameDrain(videoTrack);
for await (const frame of drain.frames(0.01)) {
console.log(frame)
@@ -597,7 +597,7 @@
*/
/*
const drain = new Metamuxer.EncodedVideoChunkDrain(videoTrack);
const drain = new Mediabunny.EncodedVideoChunkDrain(videoTrack);
const decoder = new VideoDecoder({
output: console.log,
@@ -622,7 +622,7 @@
/*
const drain = new Metamuxer.VideoFrameDrain(videoTrack);
const drain = new Mediabunny.VideoFrameDrain(videoTrack);
const frame = await drain.getKeyFrame(69);
@@ -636,7 +636,7 @@
*/
/*
const drain = new Metamuxer.EncodedVideoChunkDrain(videoTrack);
const drain = new Mediabunny.EncodedVideoChunkDrain(videoTrack);
for await (const chunk of drain.chunks()) {
console.log(chunk);
+8 -8
View File
@@ -1,6 +1,6 @@
<button>Go</button>
<script src="../dist/metamuxer.js"></script>
<script src="../dist/mediabunny.js"></script>
<script type="module">
function download(blob, filename) {
@@ -18,20 +18,20 @@
const videoTrack = stream.getVideoTracks()[0];
const audioTrack = stream.getAudioTracks()[0];
const output = new Metamuxer.Output({
target: new Metamuxer.BufferTarget(),
format: new Metamuxer.Mp4OutputFormat(),
const output = new Mediabunny.Output({
target: new Mediabunny.BufferTarget(),
format: new Mediabunny.Mp4OutputFormat(),
});
if (videoTrack) {
output.addVideoTrack(new Metamuxer.MediaStreamVideoTrackSource(videoTrack, {
output.addVideoTrack(new Mediabunny.MediaStreamVideoTrackSource(videoTrack, {
codec: 'avc',
bitrate: Metamuxer.QUALITY_MEDIUM
bitrate: Mediabunny.QUALITY_MEDIUM
}));
}
if (audioTrack) {
output.addAudioTrack(new Metamuxer.MediaStreamAudioTrackSource(audioTrack, {
output.addAudioTrack(new Mediabunny.MediaStreamAudioTrackSource(audioTrack, {
codec: 'aac',
bitrate: Metamuxer.QUALITY_MEDIUM
bitrate: Mediabunny.QUALITY_MEDIUM
}));
}
+17 -17
View File
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<script src="../dist/metamuxer.js"></script>
<script src="../dist/mediabunny.js"></script>
<script type="module">
function download(blob, filename) {
@@ -38,17 +38,17 @@
canvas.height = 720;
const context = canvas.getContext('2d');
let format = new Metamuxer.MkvOutputFormat({ streamable: false });
format = new Metamuxer.Mp4OutputFormat({ fastStart: 'fragmented' }); // new Metamuxer.MkvOutputFormat();// new Metamuxer.Mp4OutputFormat({ fastStart: false });
format = new Metamuxer.OggOutputFormat();
format = new Metamuxer.Mp4OutputFormat({ fastStart: 'fragmented', minimumFragmentDuration: 2 });
format = new Metamuxer.MkvOutputFormat({ minimumClusterDuration: 2 });
format = new Metamuxer.WavOutputFormat();
format = new Metamuxer.MkvOutputFormat();
let target = new Metamuxer.BufferTarget();
let format = new Mediabunny.MkvOutputFormat({ streamable: false });
format = new Mediabunny.Mp4OutputFormat({ fastStart: 'fragmented' }); // new Mediabunny.MkvOutputFormat();// new Mediabunny.Mp4OutputFormat({ fastStart: false });
format = new Mediabunny.OggOutputFormat();
format = new Mediabunny.Mp4OutputFormat({ fastStart: 'fragmented', minimumFragmentDuration: 2 });
format = new Mediabunny.MkvOutputFormat({ minimumClusterDuration: 2 });
format = new Mediabunny.WavOutputFormat();
format = new Mediabunny.MkvOutputFormat();
let target = new Mediabunny.BufferTarget();
/*
target = new Metamuxer.StreamTarget(new WritableStream({
target = new Mediabunny.StreamTarget(new WritableStream({
async write(chunk) {
console.log(chunk)
@@ -57,12 +57,12 @@
}), { chunked: true });
*/
let output = new Metamuxer.Output({ format, target });
let output = new Mediabunny.Output({ format, target });
/*
let sourcy = new Metamuxer.AudioBufferSource({
let sourcy = new Mediabunny.AudioBufferSource({
codec: 'pcm-s16',
bitrate: Metamuxer.QUALITY_HIGH
bitrate: Mediabunny.QUALITY_HIGH
});
output.addAudioTrack(sourcy);
@@ -86,7 +86,7 @@
*/
/*
let videoSource = new Metamuxer.EncodedVideoChunkSource('avc');
let videoSource = new Mediabunny.EncodedVideoChunkSource('avc');
output.addTrack(videoSource);
output.start();
@@ -114,16 +114,16 @@
download(new Blob([target.buffer]), 'test.mkv');
*/
let videoSource = new Metamuxer.CanvasSource(canvas, {
let videoSource = new Mediabunny.CanvasSource(canvas, {
codec: 'avc',
//fullCodecString: 'avc1.42001f',
bitrate: 1e6
});
let audioSource = new Metamuxer.AudioBufferSource({
let audioSource = new Mediabunny.AudioBufferSource({
codec: 'opus',
bitrate: 128e3,
});
let subtitleSource = new Metamuxer.TextSubtitleSource('webvtt');
let subtitleSource = new Mediabunny.TextSubtitleSource('webvtt');
output.addVideoTrack(videoSource, { languageCode: 'eng' });
output.addAudioTrack(audioSource);
+6 -6
View File
@@ -15,7 +15,7 @@
</div>
</div>
<script src="../dist/metamuxer.js"></script>
<script src="../dist/mediabunny.js"></script>
<script type="module">
const fileInput = document.querySelector('input[type="file"]');
@@ -34,10 +34,10 @@ const file = await new Promise(resolve => {
fileInput.style.display = 'none';
const audioContext = new AudioContext();
const source = new Metamuxer.BlobSource(file);
const source = new Mediabunny.BlobSource(file);
const input = new Metamuxer.Input({
formats: Metamuxer.ALL_FORMATS,
const input = new Mediabunny.Input({
formats: Mediabunny.ALL_FORMATS,
source
});
@@ -69,8 +69,8 @@ durationElement.textContent = formatSeconds(totalDuration);
playerDiv.style.display = 'flex';
const videoSink = videoTrack && new Metamuxer.CanvasSink(videoTrack, { poolSize: 2 });
const audioSink = audioTrack && new Metamuxer.AudioBufferSink(audioTrack);
const videoSink = videoTrack && new Mediabunny.CanvasSink(videoTrack, { poolSize: 2 });
const audioSink = audioTrack && new Mediabunny.AudioBufferSink(audioTrack);
let startTime = null;
let playing = false;
+1 -1
View File
@@ -43,7 +43,7 @@
</div>
<a
href="https://github.com/Vanilagy/metamuxer/tree/main/examples/file-compression"
href="https://github.com/Vanilagy/mediabunny/tree/main/examples/file-compression"
target="_blank"
class="flex items-center gap-2 fixed top-0 right-0 py-2 px-5 bg-zinc-200 dark:bg-zinc-750 hover:bg-zinc-300 dark:hover:bg-zinc-700 rounded-bl-xl"
>
+1 -1
View File
@@ -44,7 +44,7 @@
</div>
<a
href="https://github.com/Vanilagy/metamuxer/tree/main/examples/live-recording"
href="https://github.com/Vanilagy/mediabunny/tree/main/examples/live-recording"
target="_blank"
class="flex items-center gap-2 fixed top-0 right-0 py-2 px-5 bg-zinc-200 dark:bg-zinc-750 hover:bg-zinc-300 dark:hover:bg-zinc-700 rounded-bl-xl"
>
+1 -1
View File
@@ -79,7 +79,7 @@
</div>
<a
href="https://github.com/Vanilagy/metamuxer/tree/main/examples/media-player"
href="https://github.com/Vanilagy/mediabunny/tree/main/examples/media-player"
target="_blank"
class="flex items-center gap-2 fixed top-0 right-0 py-2 px-5 bg-zinc-200 dark:bg-zinc-750 hover:bg-zinc-300 dark:hover:bg-zinc-700 rounded-bl-xl"
>
+1 -1
View File
@@ -36,7 +36,7 @@
</div>
<a
href="https://github.com/Vanilagy/metamuxer/tree/main/examples/metadata-extraction"
href="https://github.com/Vanilagy/mediabunny/tree/main/examples/metadata-extraction"
target="_blank"
class="flex items-center gap-2 fixed top-0 right-0 py-2 px-5 bg-zinc-200 dark:bg-zinc-750 hover:bg-zinc-300 dark:hover:bg-zinc-700 rounded-bl-xl"
>
+1 -1
View File
@@ -50,7 +50,7 @@
</div>
<a
href="https://github.com/Vanilagy/metamuxer/tree/main/examples/procedural-generation"
href="https://github.com/Vanilagy/mediabunny/tree/main/examples/procedural-generation"
target="_blank"
class="flex items-center gap-2 fixed top-0 right-0 py-2 px-5 bg-zinc-200 dark:bg-zinc-750 hover:bg-zinc-300 dark:hover:bg-zinc-700 rounded-bl-xl"
>
+1 -1
View File
@@ -36,7 +36,7 @@
</div>
<a
href="https://github.com/Vanilagy/metamuxer/tree/main/examples/thumbnail-generation"
href="https://github.com/Vanilagy/mediabunny/tree/main/examples/thumbnail-generation"
target="_blank"
class="flex items-center gap-2 fixed top-0 right-0 py-2 px-5 bg-gray-200 dark:bg-zinc-750 hover:bg-gray-300 dark:hover:bg-zinc-700 rounded-bl-xl"
>
+2 -2
View File
@@ -1,11 +1,11 @@
{
"name": "metamuxer",
"name": "mediabunny",
"version": "0.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "metamuxer",
"name": "mediabunny",
"version": "0.1.0",
"license": "MIT",
"dependencies": {
+8 -8
View File
@@ -1,15 +1,15 @@
{
"name": "metamuxer",
"name": "mediabunny",
"version": "0.1.0",
"description": "TODO",
"type": "module",
"main": "./dist/metamuxer.js",
"module": "./dist/metamuxer.mjs",
"types": "./dist/metamuxer.d.ts",
"main": "./dist/mediabunny.js",
"module": "./dist/mediabunny.mjs",
"types": "./dist/mediabunny.d.ts",
"exports": {
"types": "./dist/metamuxer.d.ts",
"import": "./dist/metamuxer.mjs",
"require": "./dist/metamuxer.js"
"types": "./dist/mediabunny.d.ts",
"import": "./dist/mediabunny.mjs",
"require": "./dist/mediabunny.js"
},
"files": [
"README.md",
@@ -23,7 +23,7 @@
"watch": "node build.mjs --watch",
"lint": "eslint .",
"check": "tsc -p src --noEmit && tsc -p scripts --noEmit && tsc -p tsconfig.vite.json --noEmit && rm tsconfig.vite.tsbuildinfo",
"check-docblocks": "tsx scripts/check-docblocks.ts dist/metamuxer.d.ts",
"check-docblocks": "tsx scripts/check-docblocks.ts dist/mediabunny.d.ts",
"docs:dev": "vitepress dev docs",
"docs:build": "vitepress build docs && npm run examples:build",
"docs:preview": "vitepress preview docs",
+1 -1
View File
@@ -1,3 +1,3 @@
import { appendFileSync } from 'fs';
appendFileSync('dist/metamuxer.d.ts', '\nexport as namespace Metamuxer;');
appendFileSync('dist/mediabunny.d.ts', '\nexport as namespace Mediabunny;');
+1 -1
View File
@@ -6,7 +6,7 @@
"composite": true,
"noEmit": false,
"paths": {
"mediabunny": ["./dist/metamuxer.d.ts"],
"mediabunny": ["./dist/mediabunny.d.ts"],
},
},
"include": [
+1 -1
View File
@@ -20,7 +20,7 @@ const rollupInput = Object.fromEntries(
export default defineConfig({
resolve: {
alias: {
mediabunny: path.resolve(__dirname, './dist/metamuxer.mjs'),
mediabunny: path.resolve(__dirname, './dist/mediabunny.mjs'),
},
},
plugins: [