feat: codec compatibility object

will use later
This commit is contained in:
Maya 2026-03-01 12:52:57 +03:00
parent 1bf93d9a22
commit 1aac50a649
No known key found for this signature in database
1 changed files with 27 additions and 0 deletions

View File

@ -23,6 +23,33 @@ import { Converter, FormatInfo, type WorkerStatus } from "./converter.svelte";
import { ToastManager } from "$lib/util/toast.svelte";
import { error, log } from "$lib/util/logger";
// codec compatibility object, based on docs
// https://mediabunny.dev/guide/supported-formats-and-codecs#compatibility-table
const codecCompatibility = {
video: {
mp4: ['avc', 'hevc', 'vp8', 'vp9', 'av1'],
m4v: ['avc', 'hevc', 'vp8', 'vp9', 'av1'],
f4v: ['avc', 'hevc', 'vp8', 'vp9', 'av1'],
'3gp': ['avc', 'hevc', 'vp8', 'vp9', 'av1'],
'3g2': ['avc', 'hevc', 'vp8', 'vp9', 'av1'],
mkv: ['avc', 'hevc', 'vp8', 'vp9', 'av1'],
webm: ['vp8', 'vp9', 'av1'],
mov: ['avc', 'hevc', 'vp8', 'vp9', 'av1'],
ts: ['avc', 'hevc'],
},
audio: {
mp4: ['aac', 'opus', 'mp3', 'vorbis', 'flac', 'ac3', 'eac3', 'pcm-s16', 'pcm-s16be', 'pcm-s24', 'pcm-s24be', 'pcm-s32', 'pcm-s32be', 'pcm-f32', 'pcm-f64'],
m4v: ['aac', 'opus', 'mp3', 'vorbis', 'flac', 'ac3', 'eac3', 'pcm-s16', 'pcm-s16be', 'pcm-s24', 'pcm-s24be', 'pcm-s32', 'pcm-s32be', 'pcm-f32', 'pcm-f64'],
f4v: ['aac', 'opus', 'mp3', 'vorbis', 'flac', 'ac3', 'eac3', 'pcm-s16', 'pcm-s16be', 'pcm-s24', 'pcm-s24be', 'pcm-s32', 'pcm-s32be', 'pcm-f32', 'pcm-f64'],
'3gp': ['aac', 'opus', 'mp3', 'vorbis', 'flac', 'ac3', 'eac3', 'pcm-s16', 'pcm-s16be', 'pcm-s24', 'pcm-s24be', 'pcm-s32', 'pcm-s32be', 'pcm-f32', 'pcm-f64'],
'3g2': ['aac', 'opus', 'mp3', 'vorbis', 'flac', 'ac3', 'eac3', 'pcm-s16', 'pcm-s16be', 'pcm-s24', 'pcm-s24be', 'pcm-s32', 'pcm-s32be', 'pcm-f32', 'pcm-f64'],
mkv: ['aac', 'opus', 'mp3', 'vorbis', 'flac', 'ac3', 'eac3', 'pcm-u8', 'pcm-s16', 'pcm-s24', 'pcm-s32', 'pcm-f32', 'pcm-f64'],
webm: ['opus', 'vorbis'],
mov: ['aac', 'opus', 'mp3', 'vorbis', 'flac', 'ac3', 'eac3', 'pcm-u8', 'pcm-s8', 'pcm-s16', 'pcm-s16be', 'pcm-s24', 'pcm-s24be', 'pcm-s32', 'pcm-s32be', 'pcm-f32', 'pcm-f32be', 'pcm-f64', 'ulaw', 'alaw'],
ts: ['aac', 'mp3', 'ac3', 'eac3'],
},
} as const;
export class MediabunnyConverter extends Converter {
public name = "mediabunny";
public status: WorkerStatus = $state("ready");