Allow muxing of avc3 into ISOBMFF (see #216)

This commit is contained in:
Vanilagy
2025-11-11 17:06:10 +01:00
parent 5b45c51d40
commit 9d477dfb14
+9 -7
View File
@@ -577,7 +577,7 @@ export const stsd = (trackData: IsobmffTrackData) => {
if (trackData.type === 'video') { if (trackData.type === 'video') {
sampleDescription = videoSampleDescription( sampleDescription = videoSampleDescription(
VIDEO_CODEC_TO_BOX_NAME[trackData.track.source._codec], videoCodecToBoxName(trackData.track.source._codec, trackData.info.decoderConfig.codec),
trackData, trackData,
); );
} else if (trackData.type === 'audio') { } else if (trackData.type === 'audio') {
@@ -1572,12 +1572,14 @@ const dataStringBoxLong = (value: string) => {
]); ]);
}; };
const VIDEO_CODEC_TO_BOX_NAME: Record<VideoCodec, string> = { const videoCodecToBoxName = (codec: VideoCodec, fullCodecString: string) => {
avc: 'avc1', switch (codec) {
hevc: 'hvc1', case 'avc': return fullCodecString.startsWith('avc3') ? 'avc3' : 'avc1';
vp8: 'vp08', case 'hevc': return 'hvc1';
vp9: 'vp09', case 'vp8': return 'vp08';
av1: 'av01', case 'vp9': return 'vp09';
case 'av1': return 'av01';
}
}; };
const VIDEO_CODEC_TO_CONFIGURATION_BOX: Record<VideoCodec, (trackData: IsobmffVideoTrackData) => Box | null> = { const VIDEO_CODEC_TO_CONFIGURATION_BOX: Record<VideoCodec, (trackData: IsobmffVideoTrackData) => Box | null> = {