Add ProRes codec and allow demuxing & muxing

This commit is contained in:
Vanilagy
2025-12-10 09:52:54 +01:00
parent 49af8d5435
commit 0dd53ff1f7
9 changed files with 193 additions and 34 deletions
+7 -2
View File
@@ -629,7 +629,7 @@ export const videoSampleDescription = (
u16(0x0018), // Depth
i16(0xffff), // Pre-defined
], [
VIDEO_CODEC_TO_CONFIGURATION_BOX[trackData.track.source._codec](trackData),
VIDEO_CODEC_TO_CONFIGURATION_BOX[trackData.track.source._codec]?.(trackData) ?? null,
colorSpaceIsComplete(trackData.info.decoderConfig.colorSpace) ? colr(trackData) : null,
]);
@@ -1584,15 +1584,20 @@ const videoCodecToBoxName = (codec: VideoCodec, fullCodecString: string) => {
case 'vp8': return 'vp08';
case 'vp9': return 'vp09';
case 'av1': return 'av01';
case 'prores': return fullCodecString.split('.')[1]!;
}
};
const VIDEO_CODEC_TO_CONFIGURATION_BOX: Record<VideoCodec, (trackData: IsobmffVideoTrackData) => Box | null> = {
const VIDEO_CODEC_TO_CONFIGURATION_BOX: Record<
VideoCodec,
((trackData: IsobmffVideoTrackData) => Box | null) | null
> = {
avc: avcC,
hevc: hvcC,
vp8: vpcC,
vp9: vpcC,
av1: av1C,
prores: null,
};
const audioCodecToBoxName = (codec: AudioCodec, isQuickTime: boolean): string => {