webcodecs-node 0.5.0 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +64 -184
- package/docs/api.md +1 -1
- package/docs/configuration.md +6 -17
- package/package.json +2 -2
- package/dist/AudioData.d.ts +0 -6
- package/dist/AudioData.d.ts.map +0 -1
- package/dist/AudioData.js +0 -6
- package/dist/AudioData.js.map +0 -1
- package/dist/AudioDecoder.d.ts +0 -6
- package/dist/AudioDecoder.d.ts.map +0 -1
- package/dist/AudioDecoder.js +0 -6
- package/dist/AudioDecoder.js.map +0 -1
- package/dist/AudioEncoder.d.ts +0 -6
- package/dist/AudioEncoder.d.ts.map +0 -1
- package/dist/AudioEncoder.js +0 -6
- package/dist/AudioEncoder.js.map +0 -1
- package/dist/EncodedAudioChunk.d.ts +0 -6
- package/dist/EncodedAudioChunk.d.ts.map +0 -1
- package/dist/EncodedAudioChunk.js +0 -6
- package/dist/EncodedAudioChunk.js.map +0 -1
- package/dist/EncodedVideoChunk.d.ts +0 -6
- package/dist/EncodedVideoChunk.d.ts.map +0 -1
- package/dist/EncodedVideoChunk.js +0 -6
- package/dist/EncodedVideoChunk.js.map +0 -1
- package/dist/FFmpegProcess.d.ts +0 -6
- package/dist/FFmpegProcess.d.ts.map +0 -1
- package/dist/FFmpegProcess.js +0 -6
- package/dist/FFmpegProcess.js.map +0 -1
- package/dist/HardwareAcceleration.d.ts +0 -6
- package/dist/HardwareAcceleration.d.ts.map +0 -1
- package/dist/HardwareAcceleration.js +0 -6
- package/dist/HardwareAcceleration.js.map +0 -1
- package/dist/ImageDecoder.d.ts +0 -6
- package/dist/ImageDecoder.d.ts.map +0 -1
- package/dist/ImageDecoder.js +0 -6
- package/dist/ImageDecoder.js.map +0 -1
- package/dist/Logger.d.ts +0 -6
- package/dist/Logger.d.ts.map +0 -1
- package/dist/Logger.js +0 -6
- package/dist/Logger.js.map +0 -1
- package/dist/MediaCapabilities.d.ts +0 -9
- package/dist/MediaCapabilities.d.ts.map +0 -1
- package/dist/MediaCapabilities.js +0 -8
- package/dist/MediaCapabilities.js.map +0 -1
- package/dist/VideoDecoder.d.ts +0 -6
- package/dist/VideoDecoder.d.ts.map +0 -1
- package/dist/VideoDecoder.js +0 -6
- package/dist/VideoDecoder.js.map +0 -1
- package/dist/VideoEncoder.d.ts +0 -6
- package/dist/VideoEncoder.d.ts.map +0 -1
- package/dist/VideoEncoder.js +0 -6
- package/dist/VideoEncoder.js.map +0 -1
- package/dist/VideoFrame.d.ts +0 -10
- package/dist/VideoFrame.d.ts.map +0 -1
- package/dist/VideoFrame.js +0 -9
- package/dist/VideoFrame.js.map +0 -1
- package/dist/__tests__/AudioData.test.d.ts +0 -5
- package/dist/__tests__/AudioData.test.d.ts.map +0 -1
- package/dist/__tests__/AudioData.test.js +0 -180
- package/dist/__tests__/AudioData.test.js.map +0 -1
- package/dist/__tests__/AudioDecoder.test.d.ts +0 -5
- package/dist/__tests__/AudioDecoder.test.d.ts.map +0 -1
- package/dist/__tests__/AudioDecoder.test.js +0 -733
- package/dist/__tests__/AudioDecoder.test.js.map +0 -1
- package/dist/__tests__/AudioEncoder.test.d.ts +0 -5
- package/dist/__tests__/AudioEncoder.test.d.ts.map +0 -1
- package/dist/__tests__/AudioEncoder.test.js +0 -247
- package/dist/__tests__/AudioEncoder.test.js.map +0 -1
- package/dist/__tests__/EncodedChunks.test.d.ts +0 -5
- package/dist/__tests__/EncodedChunks.test.d.ts.map +0 -1
- package/dist/__tests__/EncodedChunks.test.js +0 -100
- package/dist/__tests__/EncodedChunks.test.js.map +0 -1
- package/dist/__tests__/HardwareAcceleration.test.d.ts +0 -5
- package/dist/__tests__/HardwareAcceleration.test.d.ts.map +0 -1
- package/dist/__tests__/HardwareAcceleration.test.js +0 -85
- package/dist/__tests__/HardwareAcceleration.test.js.map +0 -1
- package/dist/__tests__/ImageDecoder.test.d.ts +0 -5
- package/dist/__tests__/ImageDecoder.test.d.ts.map +0 -1
- package/dist/__tests__/ImageDecoder.test.js +0 -558
- package/dist/__tests__/ImageDecoder.test.js.map +0 -1
- package/dist/__tests__/ImageDecoder.wpt.test.d.ts +0 -8
- package/dist/__tests__/ImageDecoder.wpt.test.d.ts.map +0 -1
- package/dist/__tests__/ImageDecoder.wpt.test.js +0 -135
- package/dist/__tests__/ImageDecoder.wpt.test.js.map +0 -1
- package/dist/__tests__/MediaCapabilities.test.d.ts +0 -5
- package/dist/__tests__/MediaCapabilities.test.d.ts.map +0 -1
- package/dist/__tests__/MediaCapabilities.test.js +0 -346
- package/dist/__tests__/MediaCapabilities.test.js.map +0 -1
- package/dist/__tests__/NodeAvDecoder.test.d.ts +0 -2
- package/dist/__tests__/NodeAvDecoder.test.d.ts.map +0 -1
- package/dist/__tests__/NodeAvDecoder.test.js +0 -206
- package/dist/__tests__/NodeAvDecoder.test.js.map +0 -1
- package/dist/__tests__/NodeAvEncoder.test.d.ts +0 -2
- package/dist/__tests__/NodeAvEncoder.test.d.ts.map +0 -1
- package/dist/__tests__/NodeAvEncoder.test.js +0 -176
- package/dist/__tests__/NodeAvEncoder.test.js.map +0 -1
- package/dist/__tests__/VideoDecoder.test.d.ts +0 -5
- package/dist/__tests__/VideoDecoder.test.d.ts.map +0 -1
- package/dist/__tests__/VideoDecoder.test.js +0 -675
- package/dist/__tests__/VideoDecoder.test.js.map +0 -1
- package/dist/__tests__/VideoEncoder.test.d.ts +0 -5
- package/dist/__tests__/VideoEncoder.test.d.ts.map +0 -1
- package/dist/__tests__/VideoEncoder.test.js +0 -468
- package/dist/__tests__/VideoEncoder.test.js.map +0 -1
- package/dist/__tests__/VideoFrame.test.d.ts +0 -5
- package/dist/__tests__/VideoFrame.test.d.ts.map +0 -1
- package/dist/__tests__/VideoFrame.test.js +0 -246
- package/dist/__tests__/VideoFrame.test.js.map +0 -1
- package/dist/__tests__/aac-utils.test.d.ts +0 -2
- package/dist/__tests__/aac-utils.test.d.ts.map +0 -1
- package/dist/__tests__/aac-utils.test.js +0 -37
- package/dist/__tests__/aac-utils.test.js.map +0 -1
- package/dist/__tests__/avc-utils.test.d.ts +0 -2
- package/dist/__tests__/avc-utils.test.d.ts.map +0 -1
- package/dist/__tests__/avc-utils.test.js +0 -63
- package/dist/__tests__/avc-utils.test.js.map +0 -1
- package/dist/__tests__/hevc-utils.test.d.ts +0 -2
- package/dist/__tests__/hevc-utils.test.d.ts.map +0 -1
- package/dist/__tests__/hevc-utils.test.js +0 -78
- package/dist/__tests__/hevc-utils.test.js.map +0 -1
- package/dist/demos/demo-conversion.d.ts +0 -13
- package/dist/demos/demo-conversion.d.ts.map +0 -1
- package/dist/demos/demo-conversion.js +0 -301
- package/dist/demos/demo-conversion.js.map +0 -1
- package/dist/demos/demo-hwaccel-conversion.d.ts +0 -8
- package/dist/demos/demo-hwaccel-conversion.d.ts.map +0 -1
- package/dist/demos/demo-hwaccel-conversion.js +0 -161
- package/dist/demos/demo-hwaccel-conversion.js.map +0 -1
- package/dist/demos/demo-mediabunny.d.ts +0 -7
- package/dist/demos/demo-mediabunny.d.ts.map +0 -1
- package/dist/demos/demo-mediabunny.js +0 -78
- package/dist/demos/demo-mediabunny.js.map +0 -1
- package/dist/ffmpeg/FFmpegProcess.d.ts +0 -111
- package/dist/ffmpeg/FFmpegProcess.d.ts.map +0 -1
- package/dist/ffmpeg/FFmpegProcess.js +0 -543
- package/dist/ffmpeg/FFmpegProcess.js.map +0 -1
- package/dist/ffmpeg/audio-codecs.d.ts +0 -59
- package/dist/ffmpeg/audio-codecs.d.ts.map +0 -1
- package/dist/ffmpeg/audio-codecs.js +0 -99
- package/dist/ffmpeg/audio-codecs.js.map +0 -1
- package/dist/ffmpeg/formats.d.ts +0 -42
- package/dist/ffmpeg/formats.d.ts.map +0 -1
- package/dist/ffmpeg/formats.js +0 -147
- package/dist/ffmpeg/formats.js.map +0 -1
- package/dist/ffmpeg/index.d.ts +0 -10
- package/dist/ffmpeg/index.d.ts.map +0 -1
- package/dist/ffmpeg/index.js +0 -13
- package/dist/ffmpeg/index.js.map +0 -1
- package/dist/ffmpeg/parsers/annexb.d.ts +0 -88
- package/dist/ffmpeg/parsers/annexb.d.ts.map +0 -1
- package/dist/ffmpeg/parsers/annexb.js +0 -201
- package/dist/ffmpeg/parsers/annexb.js.map +0 -1
- package/dist/ffmpeg/parsers/index.d.ts +0 -6
- package/dist/ffmpeg/parsers/index.d.ts.map +0 -1
- package/dist/ffmpeg/parsers/index.js +0 -8
- package/dist/ffmpeg/parsers/index.js.map +0 -1
- package/dist/ffmpeg/parsers/ivf.d.ts +0 -54
- package/dist/ffmpeg/parsers/ivf.d.ts.map +0 -1
- package/dist/ffmpeg/parsers/ivf.js +0 -109
- package/dist/ffmpeg/parsers/ivf.js.map +0 -1
- package/dist/ffmpeg/types.d.ts +0 -85
- package/dist/ffmpeg/types.d.ts.map +0 -1
- package/dist/ffmpeg/types.js +0 -8
- package/dist/ffmpeg/types.js.map +0 -1
- package/dist/mediabunny/FFmpegAudioDecoder.d.ts +0 -24
- package/dist/mediabunny/FFmpegAudioDecoder.d.ts.map +0 -1
- package/dist/mediabunny/FFmpegAudioDecoder.js +0 -126
- package/dist/mediabunny/FFmpegAudioDecoder.js.map +0 -1
- package/dist/mediabunny/FFmpegAudioEncoder.d.ts +0 -44
- package/dist/mediabunny/FFmpegAudioEncoder.d.ts.map +0 -1
- package/dist/mediabunny/FFmpegAudioEncoder.js +0 -221
- package/dist/mediabunny/FFmpegAudioEncoder.js.map +0 -1
- package/dist/mediabunny/FFmpegVideoDecoder.d.ts +0 -25
- package/dist/mediabunny/FFmpegVideoDecoder.d.ts.map +0 -1
- package/dist/mediabunny/FFmpegVideoDecoder.js +0 -122
- package/dist/mediabunny/FFmpegVideoDecoder.js.map +0 -1
- package/dist/mediabunny/FFmpegVideoEncoder.d.ts +0 -49
- package/dist/mediabunny/FFmpegVideoEncoder.d.ts.map +0 -1
- package/dist/mediabunny/FFmpegVideoEncoder.js +0 -264
- package/dist/mediabunny/FFmpegVideoEncoder.js.map +0 -1
- package/dist/mediabunny/index.d.ts +0 -21
- package/dist/mediabunny/index.d.ts.map +0 -1
- package/dist/mediabunny/index.js +0 -33
- package/dist/mediabunny/index.js.map +0 -1
- package/dist/types.d.ts +0 -6
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -6
- package/dist/types.js.map +0 -1
|
@@ -1,264 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mediabunny VideoEncoder adapter using node-av backend
|
|
3
|
-
*
|
|
4
|
-
* Implements Mediabunny's CustomVideoEncoder interface using node-av native bindings
|
|
5
|
-
* (which wrap FFmpeg's libav* libraries). Supports hardware acceleration via VAAPI,
|
|
6
|
-
* NVENC, QSV, VideoToolbox.
|
|
7
|
-
*/
|
|
8
|
-
import { CustomVideoEncoder, EncodedPacket, } from 'mediabunny';
|
|
9
|
-
import { NodeAvVideoEncoder } from '../node-av/NodeAvVideoEncoder.js';
|
|
10
|
-
import { extractAvcParameterSetsFromAnnexB, buildAvcDecoderConfig, convertAnnexBToAvcc, } from '../utils/avc.js';
|
|
11
|
-
import { extractHevcParameterSetsFromAnnexB, buildHvccDecoderConfig, convertAnnexBToHvcc, } from '../utils/hevc.js';
|
|
12
|
-
// Map Mediabunny codec to internal codec name
|
|
13
|
-
const CODEC_NAME_MAP = {
|
|
14
|
-
avc: 'h264',
|
|
15
|
-
hevc: 'hevc',
|
|
16
|
-
vp8: 'vp8',
|
|
17
|
-
vp9: 'vp9',
|
|
18
|
-
av1: 'av1',
|
|
19
|
-
};
|
|
20
|
-
export class FFmpegVideoEncoder extends CustomVideoEncoder {
|
|
21
|
-
backend = null;
|
|
22
|
-
frameIndex = 0;
|
|
23
|
-
codecDescription = null;
|
|
24
|
-
metadataEmitted = false;
|
|
25
|
-
bitstreamFormat = 'annexb';
|
|
26
|
-
useAnnexB = false;
|
|
27
|
-
resolveFlush = null;
|
|
28
|
-
pendingPackets = [];
|
|
29
|
-
static supports(codec, _config) {
|
|
30
|
-
return codec in CODEC_NAME_MAP;
|
|
31
|
-
}
|
|
32
|
-
async init() {
|
|
33
|
-
// Determine bitstream format from config
|
|
34
|
-
const configExt = this.config;
|
|
35
|
-
this.useAnnexB = this.codec === 'avc' || this.codec === 'hevc';
|
|
36
|
-
if (this.codec === 'avc' && configExt.avc?.format === 'avc') {
|
|
37
|
-
this.bitstreamFormat = 'mp4';
|
|
38
|
-
}
|
|
39
|
-
else if (this.codec === 'hevc' && configExt.hevc?.format === 'hevc') {
|
|
40
|
-
this.bitstreamFormat = 'mp4';
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
this.bitstreamFormat = 'annexb';
|
|
44
|
-
}
|
|
45
|
-
// Hardware acceleration preference from config
|
|
46
|
-
const hwPref = this.config.hardwareAcceleration;
|
|
47
|
-
// Create node-av backend
|
|
48
|
-
this.backend = new NodeAvVideoEncoder();
|
|
49
|
-
const codecName = CODEC_NAME_MAP[this.codec];
|
|
50
|
-
this.backend.startEncoder({
|
|
51
|
-
codec: codecName,
|
|
52
|
-
width: this.config.width,
|
|
53
|
-
height: this.config.height,
|
|
54
|
-
framerate: this.config.framerate ?? 30,
|
|
55
|
-
bitrate: this.config.bitrate,
|
|
56
|
-
inputPixelFormat: 'rgba',
|
|
57
|
-
});
|
|
58
|
-
// Set hardware acceleration preference on backend config
|
|
59
|
-
if (hwPref) {
|
|
60
|
-
this.backend.config.hardwareAcceleration = hwPref;
|
|
61
|
-
}
|
|
62
|
-
// Listen for encoded frames
|
|
63
|
-
this.backend.on('encodedFrame', (frame) => {
|
|
64
|
-
this.pendingPackets.push(frame);
|
|
65
|
-
this.processPackets();
|
|
66
|
-
});
|
|
67
|
-
this.backend.on('error', (err) => {
|
|
68
|
-
console.error('[FFmpegVideoEncoder] Backend error:', err.message);
|
|
69
|
-
});
|
|
70
|
-
this.backend.on('close', () => {
|
|
71
|
-
// Process any remaining packets
|
|
72
|
-
this.processPackets();
|
|
73
|
-
if (this.resolveFlush) {
|
|
74
|
-
this.resolveFlush();
|
|
75
|
-
this.resolveFlush = null;
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
async encode(videoSample, _options) {
|
|
80
|
-
if (!this.backend?.isHealthy) {
|
|
81
|
-
throw new Error('Encoder not initialized');
|
|
82
|
-
}
|
|
83
|
-
// Get raw RGBA data from VideoSample
|
|
84
|
-
const frameData = await this.getFrameData(videoSample);
|
|
85
|
-
this.backend.write(frameData);
|
|
86
|
-
}
|
|
87
|
-
async flush() {
|
|
88
|
-
return new Promise((resolve) => {
|
|
89
|
-
this.resolveFlush = resolve;
|
|
90
|
-
if (this.backend) {
|
|
91
|
-
this.backend.end();
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
resolve();
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
async close() {
|
|
99
|
-
if (this.backend) {
|
|
100
|
-
this.backend.kill();
|
|
101
|
-
this.backend = null;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
processPackets() {
|
|
105
|
-
while (this.pendingPackets.length > 0) {
|
|
106
|
-
const packet = this.pendingPackets.shift();
|
|
107
|
-
this.emitPacket(packet.data, packet.timestamp, packet.keyFrame);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Extract raw RGBA pixel data from VideoSample
|
|
112
|
-
*/
|
|
113
|
-
async getFrameData(sample) {
|
|
114
|
-
const width = sample.codedWidth;
|
|
115
|
-
const height = sample.codedHeight;
|
|
116
|
-
const size = width * height * 4; // RGBA
|
|
117
|
-
// VideoSample stores data in _data which can be:
|
|
118
|
-
// - VideoFrame (browser)
|
|
119
|
-
// - Uint8Array (raw data)
|
|
120
|
-
// - OffscreenCanvas (canvas fallback)
|
|
121
|
-
const sampleData = sample._data;
|
|
122
|
-
// If _data is already a Uint8Array, use it directly
|
|
123
|
-
if (sampleData instanceof Uint8Array) {
|
|
124
|
-
return Buffer.from(sampleData);
|
|
125
|
-
}
|
|
126
|
-
// Try to use copyTo if available (works for VideoFrame and VideoSample)
|
|
127
|
-
if (typeof sample.copyTo === 'function') {
|
|
128
|
-
const buffer = new Uint8Array(size);
|
|
129
|
-
await sample.copyTo(buffer);
|
|
130
|
-
return Buffer.from(buffer);
|
|
131
|
-
}
|
|
132
|
-
// If it's a VideoFrame, use its copyTo method
|
|
133
|
-
if (sampleData && typeof sampleData.copyTo === 'function') {
|
|
134
|
-
const buffer = new Uint8Array(size);
|
|
135
|
-
await sampleData.copyTo(buffer);
|
|
136
|
-
return Buffer.from(buffer);
|
|
137
|
-
}
|
|
138
|
-
throw new Error('Cannot extract frame data from VideoSample');
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Find all Annex B start codes in buffer
|
|
142
|
-
*/
|
|
143
|
-
findStartCodes(buf) {
|
|
144
|
-
const codes = [];
|
|
145
|
-
let i = 0;
|
|
146
|
-
while (i < buf.length - 2) {
|
|
147
|
-
if (buf[i] === 0 && buf[i + 1] === 0) {
|
|
148
|
-
if (buf[i + 2] === 1) {
|
|
149
|
-
codes.push({ pos: i, len: 3 });
|
|
150
|
-
i += 3;
|
|
151
|
-
}
|
|
152
|
-
else if (buf[i + 2] === 0 && i + 3 < buf.length && buf[i + 3] === 1) {
|
|
153
|
-
codes.push({ pos: i, len: 4 });
|
|
154
|
-
i += 4;
|
|
155
|
-
}
|
|
156
|
-
else {
|
|
157
|
-
i++;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
i++;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
return codes;
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Get NAL unit type from first byte after start code
|
|
168
|
-
*/
|
|
169
|
-
getNalType(firstByte) {
|
|
170
|
-
if (this.codec === 'avc') {
|
|
171
|
-
return firstByte & 0x1f;
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
return (firstByte >> 1) & 0x3f;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Emit an encoded packet via Mediabunny callback
|
|
179
|
-
*/
|
|
180
|
-
emitPacket(data, timestamp, isKey) {
|
|
181
|
-
const framerate = this.config.framerate ?? 30;
|
|
182
|
-
const timestampSeconds = timestamp / framerate;
|
|
183
|
-
const durationSeconds = 1 / framerate;
|
|
184
|
-
let payload = data;
|
|
185
|
-
if (this.useAnnexB && this.bitstreamFormat === 'mp4') {
|
|
186
|
-
payload = this.convertAnnexBFrame(data);
|
|
187
|
-
}
|
|
188
|
-
const packet = new EncodedPacket(new Uint8Array(payload), isKey ? 'key' : 'delta', timestampSeconds, durationSeconds);
|
|
189
|
-
// Build metadata with decoder config (required by Mediabunny)
|
|
190
|
-
// Only emit full metadata on first packet or keyframes
|
|
191
|
-
let meta;
|
|
192
|
-
if (!this.metadataEmitted || isKey) {
|
|
193
|
-
// Extract codec description from first keyframe for AVC/HEVC
|
|
194
|
-
if (isKey && this.useAnnexB && !this.codecDescription) {
|
|
195
|
-
this.codecDescription = this.buildCodecDescription(data);
|
|
196
|
-
}
|
|
197
|
-
meta = {
|
|
198
|
-
decoderConfig: {
|
|
199
|
-
codec: this.getCodecString(),
|
|
200
|
-
codedWidth: this.config.width,
|
|
201
|
-
codedHeight: this.config.height,
|
|
202
|
-
description: this.codecDescription ?? undefined,
|
|
203
|
-
},
|
|
204
|
-
};
|
|
205
|
-
this.metadataEmitted = true;
|
|
206
|
-
}
|
|
207
|
-
this.frameIndex++;
|
|
208
|
-
this.onPacket(packet, meta);
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Get codec string for the output format
|
|
212
|
-
*/
|
|
213
|
-
getCodecString() {
|
|
214
|
-
switch (this.codec) {
|
|
215
|
-
case 'avc':
|
|
216
|
-
// AVC codec string: avc1.PPCCLL (profile, constraints, level)
|
|
217
|
-
// Default to High profile, level 4.0
|
|
218
|
-
return 'avc1.640028';
|
|
219
|
-
case 'hevc':
|
|
220
|
-
// HEVC codec string
|
|
221
|
-
return 'hev1.1.6.L93.B0';
|
|
222
|
-
case 'vp8':
|
|
223
|
-
return 'vp8';
|
|
224
|
-
case 'vp9':
|
|
225
|
-
// VP9 codec string: vp09.PP.LL.DD (profile, level, bit depth)
|
|
226
|
-
return 'vp09.00.10.08';
|
|
227
|
-
case 'av1':
|
|
228
|
-
// AV1 codec string
|
|
229
|
-
return 'av01.0.01M.08';
|
|
230
|
-
default:
|
|
231
|
-
return this.codec;
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
buildCodecDescription(data) {
|
|
235
|
-
if (!this.useAnnexB) {
|
|
236
|
-
return null;
|
|
237
|
-
}
|
|
238
|
-
const view = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
|
|
239
|
-
if (this.codec === 'avc') {
|
|
240
|
-
const { sps, pps } = extractAvcParameterSetsFromAnnexB(view);
|
|
241
|
-
if (sps.length && pps.length) {
|
|
242
|
-
return buildAvcDecoderConfig(sps, pps);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
else if (this.codec === 'hevc') {
|
|
246
|
-
const { vps, sps, pps } = extractHevcParameterSetsFromAnnexB(view);
|
|
247
|
-
if (sps.length && pps.length) {
|
|
248
|
-
return buildHvccDecoderConfig(vps, sps, pps);
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
return null;
|
|
252
|
-
}
|
|
253
|
-
convertAnnexBFrame(data) {
|
|
254
|
-
const view = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
|
|
255
|
-
if (this.codec === 'avc') {
|
|
256
|
-
return convertAnnexBToAvcc(view);
|
|
257
|
-
}
|
|
258
|
-
if (this.codec === 'hevc') {
|
|
259
|
-
return convertAnnexBToHvcc(view);
|
|
260
|
-
}
|
|
261
|
-
return data;
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
//# sourceMappingURL=FFmpegVideoEncoder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FFmpegVideoEncoder.js","sourceRoot":"","sources":["../../src/mediabunny/FFmpegVideoEncoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mediabunny FFmpeg Backend
|
|
3
|
-
*
|
|
4
|
-
* Provides FFmpeg-backed video and audio encoder/decoder implementations
|
|
5
|
-
* for use with Mediabunny in Node.js environments.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* import { registerFFmpegCoders } from './mediabunny';
|
|
9
|
-
* registerFFmpegCoders();
|
|
10
|
-
* // Now Mediabunny will use FFmpeg for encoding/decoding
|
|
11
|
-
*/
|
|
12
|
-
export { FFmpegVideoEncoder } from './FFmpegVideoEncoder.js';
|
|
13
|
-
export { FFmpegVideoDecoder } from './FFmpegVideoDecoder.js';
|
|
14
|
-
export { FFmpegAudioEncoder } from './FFmpegAudioEncoder.js';
|
|
15
|
-
export { FFmpegAudioDecoder } from './FFmpegAudioDecoder.js';
|
|
16
|
-
/**
|
|
17
|
-
* Register FFmpeg-backed encoders and decoders with Mediabunny.
|
|
18
|
-
* Call this once at startup before using Mediabunny.
|
|
19
|
-
*/
|
|
20
|
-
export declare function registerFFmpegCoders(): void;
|
|
21
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mediabunny/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAQ3C"}
|
package/dist/mediabunny/index.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mediabunny FFmpeg Backend
|
|
3
|
-
*
|
|
4
|
-
* Provides FFmpeg-backed video and audio encoder/decoder implementations
|
|
5
|
-
* for use with Mediabunny in Node.js environments.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* import { registerFFmpegCoders } from './mediabunny';
|
|
9
|
-
* registerFFmpegCoders();
|
|
10
|
-
* // Now Mediabunny will use FFmpeg for encoding/decoding
|
|
11
|
-
*/
|
|
12
|
-
import { registerEncoder, registerDecoder } from 'mediabunny';
|
|
13
|
-
import { FFmpegVideoEncoder } from './FFmpegVideoEncoder.js';
|
|
14
|
-
import { FFmpegVideoDecoder } from './FFmpegVideoDecoder.js';
|
|
15
|
-
import { FFmpegAudioEncoder } from './FFmpegAudioEncoder.js';
|
|
16
|
-
import { FFmpegAudioDecoder } from './FFmpegAudioDecoder.js';
|
|
17
|
-
export { FFmpegVideoEncoder } from './FFmpegVideoEncoder.js';
|
|
18
|
-
export { FFmpegVideoDecoder } from './FFmpegVideoDecoder.js';
|
|
19
|
-
export { FFmpegAudioEncoder } from './FFmpegAudioEncoder.js';
|
|
20
|
-
export { FFmpegAudioDecoder } from './FFmpegAudioDecoder.js';
|
|
21
|
-
/**
|
|
22
|
-
* Register FFmpeg-backed encoders and decoders with Mediabunny.
|
|
23
|
-
* Call this once at startup before using Mediabunny.
|
|
24
|
-
*/
|
|
25
|
-
export function registerFFmpegCoders() {
|
|
26
|
-
// Video coders
|
|
27
|
-
registerEncoder(FFmpegVideoEncoder);
|
|
28
|
-
registerDecoder(FFmpegVideoDecoder);
|
|
29
|
-
// Audio coders
|
|
30
|
-
registerEncoder(FFmpegAudioEncoder);
|
|
31
|
-
registerDecoder(FFmpegAudioDecoder);
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mediabunny/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,eAAe;IACf,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACpC,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAEpC,eAAe;IACf,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACpC,eAAe,CAAC,kBAAkB,CAAC,CAAC;AACtC,CAAC"}
|
package/dist/types.d.ts
DELETED
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,kBAAkB,CAAC"}
|
package/dist/types.js
DELETED
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,kBAAkB,CAAC"}
|