fix: support .awb and clean up, fixes #153, #92

This commit is contained in:
C4illin 2024-09-28 13:02:17 +02:00
parent d3af9688c6
commit 1c9e67fc32

View file

@ -6,6 +6,7 @@ export const properties = {
muxer: [ muxer: [
"264", "264",
"265", "265",
"266",
"302", "302",
"3dostr", "3dostr",
"3g2", "3g2",
@ -18,6 +19,7 @@ export const properties = {
"aac", "aac",
"aax", "aax",
"ac3", "ac3",
"ac4",
"ace", "ace",
"acm", "acm",
"act", "act",
@ -48,7 +50,6 @@ export const properties = {
"apng", "apng",
"aptx", "aptx",
"aptxhd", "aptxhd",
"aptx_hd",
"aqt", "aqt",
"aqtitle", "aqtitle",
"argo_asf", "argo_asf",
@ -63,10 +64,12 @@ export const properties = {
"av1", "av1",
"avc", "avc",
"avi", "avi",
"avif",
"avr", "avr",
"avs", "avs",
"avs2", "avs2",
"avs3", "avs3",
"awb",
"bcstm", "bcstm",
"bethsoftvid", "bethsoftvid",
"bfi", "bfi",
@ -75,8 +78,9 @@ export const properties = {
"bink", "bink",
"binka", "binka",
"bit", "bit",
"bmp_pipe", "bitpacked",
"bmv", "bmv",
"bonk",
"boa", "boa",
"brender_pix", "brender_pix",
"brstm", "brstm",
@ -93,7 +97,7 @@ export const properties = {
"codec2", "codec2",
"codec2raw", "codec2raw",
"concat", "concat",
"cri_pipe", "cri",
"dash", "dash",
"dat", "dat",
"data", "data",
@ -101,8 +105,9 @@ export const properties = {
"dav", "dav",
"dbm", "dbm",
"dcstr", "dcstr",
"dds_pipe", "dds",
"derf", "derf",
"dfpwm",
"dfa", "dfa",
"dhav", "dhav",
"dif", "dif",
@ -131,6 +136,8 @@ export const properties = {
"exr_pipe", "exr_pipe",
"f32be", "f32be",
"f32le", "f32le",
"ec3",
"evc",
"f4v", "f4v",
"f64be", "f64be",
"f64le", "f64le",
@ -157,13 +164,13 @@ export const properties = {
"gdv", "gdv",
"genh", "genh",
"gif", "gif",
"gif_pipe",
"gsm", "gsm",
"gxf", "gxf",
"h261", "h261",
"h263", "h263",
"h264", "h264",
"h265", "h265",
"h266",
"h26l", "h26l",
"hca", "hca",
"hcom", "hcom",
@ -180,7 +187,6 @@ export const properties = {
"ifv", "ifv",
"ilbc", "ilbc",
"image2", "image2",
"image2pipe",
"imf", "imf",
"imx", "imx",
"ingenient", "ingenient",
@ -197,21 +203,14 @@ export const properties = {
"ivr", "ivr",
"j2b", "j2b",
"j2k", "j2k",
"j2k_pipe",
"jack", "jack",
"jacosub", "jacosub",
"jpegls_pipe",
"jpeg_pipe",
"jv", "jv",
"kmsgrab", "jxl",
"kux", "kux",
"kvag", "kvag",
"lavfi", "lavfi",
"libcdio", "laf",
"libdc1394",
"libgme",
"libopenmpt",
"live_flv",
"lmlm4", "lmlm4",
"loas", "loas",
"lrc", "lrc",
@ -224,16 +223,13 @@ export const properties = {
"m4b", "m4b",
"m4v", "m4v",
"mac", "mac",
"matroska",
"mca", "mca",
"mcc", "mcc",
"mdl", "mdl",
"med", "med",
"mgsts",
"microdvd", "microdvd",
"mj2", "mj2",
"mjpeg", "mjpeg",
"mjpeg_2000",
"mjpg", "mjpg",
"mk3d", "mk3d",
"mka", "mka",
@ -257,9 +253,6 @@ export const properties = {
"mpc", "mpc",
"mpc8", "mpc8",
"mpeg", "mpeg",
"mpegts",
"mpegtsraw",
"mpegvideo",
"mpg", "mpg",
"mpjpeg", "mpjpeg",
"mpl2", "mpl2",
@ -296,26 +289,15 @@ export const properties = {
"omg", "omg",
"openal", "openal",
"oss", "oss",
"osq",
"paf", "paf",
"pam_pipe", "pdv",
"pbm_pipe",
"pcx_pipe",
"pgmyuv_pipe",
"pgm_pipe",
"pgx_pipe",
"photocd_pipe",
"pictor_pipe",
"pjs", "pjs",
"plm", "plm",
"pmp", "pmp",
"png_pipe",
"ppm", "ppm",
"ppm_pipe",
"pp_bnk",
"psd_pipe",
"psm", "psm",
"psp", "psp",
"psxstr",
"pt36", "pt36",
"ptm", "ptm",
"pulse", "pulse",
@ -323,7 +305,6 @@ export const properties = {
"pvf", "pvf",
"qcif", "qcif",
"qcp", "qcp",
"qdraw_pipe",
"r3d", "r3d",
"rawvideo", "rawvideo",
"rco", "rco",
@ -335,6 +316,7 @@ export const properties = {
"rm", "rm",
"roq", "roq",
"rpl", "rpl",
"rka",
"rsd", "rsd",
"rso", "rso",
"rt", "rt",
@ -355,6 +337,7 @@ export const properties = {
"sbc", "sbc",
"sbg", "sbg",
"scc", "scc",
"sdns",
"sdp", "sdp",
"sdr2", "sdr2",
"sds", "sds",
@ -364,10 +347,8 @@ export const properties = {
"sfx", "sfx",
"sfx2", "sfx2",
"sga", "sga",
"sgi_pipe",
"shn", "shn",
"siff", "siff",
"simbiosis_imx",
"sln", "sln",
"smi", "smi",
"smjpeg", "smjpeg",
@ -389,12 +370,8 @@ export const properties = {
"stp", "stp",
"str", "str",
"sub", "sub",
"subviewer",
"subviewer1",
"sunrast_pipe",
"sup", "sup",
"svag", "svag",
"svg_pipe",
"svs", "svs",
"sw", "sw",
"swf", "swf",
@ -404,7 +381,6 @@ export const properties = {
"thd", "thd",
"thp", "thp",
"tiertexseq", "tiertexseq",
"tiff_pipe",
"tmv", "tmv",
"truehd", "truehd",
"tta", "tta",
@ -424,6 +400,7 @@ export const properties = {
"ul", "ul",
"ult", "ult",
"umx", "umx",
"usm",
"uw", "uw",
"v", "v",
"v210", "v210",
@ -447,12 +424,13 @@ export const properties = {
"vql", "vql",
"vt", "vt",
"vtt", "vtt",
"vvc",
"w64", "w64",
"wa",
"wav", "wav",
"way",
"wc3movie", "wc3movie",
"webm", "webm",
"webm_dash_manifest",
"webp_pipe",
"webvtt", "webvtt",
"wow", "wow",
"wsaud", "wsaud",
@ -464,32 +442,31 @@ export const properties = {
"x11grab", "x11grab",
"xa", "xa",
"xbin", "xbin",
"xbm_pipe",
"xl", "xl",
"xm", "xm",
"xmd",
"xmv", "xmv",
"xpk", "xpk",
"xpm_pipe",
"xvag", "xvag",
"xwd_pipe",
"xwma", "xwma",
"y4m", "y4m",
"yop", "yop",
"yuv", "yuv",
"yuv10", "yuv10",
"yuv4mpegpipe",
], ],
}, },
to: { to: {
muxer: [ muxer: [
"264", "264",
"265", "265",
"266",
"302", "302",
"3g2", "3g2",
"3gp", "3gp",
"a64", "a64",
"aac", "aac",
"ac3", "ac3",
"ac4",
"adts", "adts",
"adx", "adx",
"afc", "afc",
@ -497,43 +474,31 @@ export const properties = {
"aifc", "aifc",
"aiff", "aiff",
"al", "al",
"alaw",
"alp",
"alsa",
"amr", "amr",
"amv", "amv",
"apm", "apm",
"apng", "apng",
"aptx", "aptx",
"aptxhd", "aptxhd",
"aptx_hd",
"argo_asf",
"asf", "asf",
"asf_stream",
"ass", "ass",
"ast", "ast",
"au", "au",
"aud",
"avi", "avi",
"avm2", "avif",
"avs", "avs",
"avs2", "avs2",
"avs3",
"bit", "bit",
"bmp", "bmp",
"c2", "c2",
"caca",
"caf", "caf",
"cavs", "cavs",
"cavsvideo",
"chk", "chk",
"chromaprint",
"codec2",
"codec2raw",
"cpk", "cpk",
"crc", "cvg",
"dash", "dfpwm",
"data",
"daud",
"dirac",
"dnxhd", "dnxhd",
"dnxhr", "dnxhr",
"dpx", "dpx",
@ -542,30 +507,16 @@ export const properties = {
"dv", "dv",
"dvd", "dvd",
"eac3", "eac3",
"ec3",
"evc",
"exr", "exr",
"f32be",
"f32le",
"f4v", "f4v",
"f64be",
"f64le",
"fbdev",
"ffmeta", "ffmeta",
"ffmetadata",
"fifo",
"fifo_test",
"filmstrip",
"film_cpk",
"fits", "fits",
"flac", "flac",
"flm", "flm",
"flv", "flv",
"framecrc",
"framehash",
"framemd5",
"g722", "g722",
"g723_1",
"g726",
"g726le",
"gif", "gif",
"gsm", "gsm",
"gxf", "gxf",
@ -573,32 +524,26 @@ export const properties = {
"h263", "h263",
"h264", "h264",
"h265", "h265",
"hash", "h266",
"hds", "hdr",
"hevc", "hevc",
"hls",
"ico", "ico",
"ilbc",
"im1", "im1",
"im24", "im24",
"im8", "im8",
"image2",
"image2pipe",
"ipod",
"ircam", "ircam",
"isma", "isma",
"ismv", "ismv",
"ivf", "ivf",
"j2c", "j2c",
"j2k", "j2k",
"jacosub",
"jls", "jls",
"jp2", "jp2",
"jpeg", "jpeg",
"jpg", "jpg",
"js", "js",
"jss", "jss",
"kvag", "jxl",
"latm", "latm",
"lbc", "lbc",
"ljpg", "ljpg",
@ -613,13 +558,9 @@ export const properties = {
"m4a", "m4a",
"m4b", "m4b",
"m4v", "m4v",
"matroska",
"md5",
"microdvd",
"mjpeg", "mjpeg",
"mjpg", "mjpg",
"mkv", "mkv",
"mkvtimestamp_v2",
"mlp", "mlp",
"mmf", "mmf",
"mov", "mov",
@ -629,26 +570,17 @@ export const properties = {
"mpa", "mpa",
"mpd", "mpd",
"mpeg", "mpeg",
"mpeg1video",
"mpeg2video",
"mpegts",
"mpg", "mpg",
"mpjpeg",
"msbc", "msbc",
"mts", "mts",
"mulaw",
"mxf", "mxf",
"mxf_d10",
"mxf_opatom",
"null",
"nut", "nut",
"obu",
"oga", "oga",
"ogg", "ogg",
"ogv", "ogv",
"oma", "oma",
"opengl",
"opus", "opus",
"oss",
"pam", "pam",
"pbm", "pbm",
"pcm", "pcm",
@ -656,14 +588,14 @@ export const properties = {
"pfm", "pfm",
"pgm", "pgm",
"pgmyuv", "pgmyuv",
"phm",
"pix", "pix",
"png", "png",
"ppm", "ppm",
"psp", "psp",
"pulse", "qoi",
"ra", "ra",
"ras", "ras",
"rawvideo",
"rco", "rco",
"rcv", "rcv",
"rgb", "rgb",
@ -671,84 +603,47 @@ export const properties = {
"roq", "roq",
"rs", "rs",
"rso", "rso",
"rtp",
"rtp_mpegts",
"rtsp",
"s16be",
"s16le",
"s24be",
"s24le",
"s32be",
"s32le",
"s8",
"sap",
"sb", "sb",
"sbc", "sbc",
"scc", "scc",
"sdl",
"sdl2",
"segment",
"sf", "sf",
"sgi", "sgi",
"singlejpeg",
"smjpeg",
"smoothstreaming",
"sndio",
"sox", "sox",
"spdif", "spdif",
"spx", "spx",
"srt", "srt",
"ssa", "ssa",
"ssegment",
"streamhash",
"stream_segment",
"sub", "sub",
"sun", "sun",
"sunras", "sunras",
"sup", "sup",
"svcd",
"sw", "sw",
"swf", "swf",
"tco", "tco",
"tee",
"tga", "tga",
"thd", "thd",
"tif", "tif",
"tiff", "tiff",
"truehd",
"ts", "ts",
"tta", "tta",
"ttml", "ttml",
"tun", "tun",
"u16be",
"u16le",
"u24be",
"u24le",
"u32be",
"u32le",
"u8",
"ub", "ub",
"ul", "ul",
"uncodedframecrc",
"uw", "uw",
"v4l2",
"vag", "vag",
"vbn",
"vc1", "vc1",
"vc1test",
"vc2", "vc2",
"vcd",
"vidc",
"video4linux2",
"vob", "vob",
"voc", "voc",
"vtt", "vtt",
"vvc",
"w64", "w64",
"wav", "wav",
"wbmp",
"webm", "webm",
"webm_chunk",
"webm_dash_manifest",
"webp", "webp",
"webvtt",
"wma", "wma",
"wmv", "wmv",
"wtv", "wtv",
@ -756,12 +651,10 @@ export const properties = {
"xbm", "xbm",
"xface", "xface",
"xml", "xml",
"xv",
"xwd", "xwd",
"y", "y",
"y4m", "y4m",
"yuv", "yuv",
"yuv4mpegpipe",
], ],
}, },
}; };
@ -774,38 +667,6 @@ export async function convert(
// biome-ignore lint/suspicious/noExplicitAny: <explanation> // biome-ignore lint/suspicious/noExplicitAny: <explanation>
options?: any, options?: any,
): Promise<string> { ): Promise<string> {
// let command = "ffmpeg";
// these are containers that can contain multiple formats
// const autoDetect = [
// "mp4",
// "mkv",
// "avi",
// "mov",
// "m4a",
// "3gp",
// "3g2",
// "mj2",
// "psp",
// "m4b",
// "ism",
// "ismv",
// "isma",
// "f4v",
// ];
// if (!(fileType in autoDetect)) {
// command += ` -f "${fileType}"`;
// }
// command += ` -i "${filePath}"`;
// if (!(convertTo in autoDetect)) {
// command += ` -f "${convertTo}"`;
// }
// command += ` "${targetPath}"`;
const command = `ffmpeg -i "${filePath}" "${targetPath}"`; const command = `ffmpeg -i "${filePath}" "${targetPath}"`;
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {