./commands/anime.js: const ffmpegCmd = isAnimated
./commands/anime.js: ? `ffmpeg -y -i "${input}" -vf "scale=512:512:force_original_aspect_ratio=decrease,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=#00000000,fps=15" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 60 -compression_level 6 "${output}"`
./commands/anime.js: : `ffmpeg -y -i "${input}" -vf "scale=512:512:force_original_aspect_ratio=decrease,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=#00000000" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 75 -compression_level 6 "${output}"`;
./commands/anime.js: exec(ffmpegCmd, (err) => (err ? reject(err) : resolve()));
./commands/attp.js: // Robust escaping for ffmpeg drawtext
./commands/attp.js: const ff = spawn('ffmpeg', args);
./commands/attp.js: reject(new Error(Buffer.concat(errors).toString() || `ffmpeg exited with code ${code}`));
./commands/attp.js: const ff = spawn('ffmpeg', args);
./commands/attp.js: reject(new Error(Buffer.concat(errors).toString() || `ffmpeg exited with code ${code}`));
./commands/emojimix.js: // Convert to WebP using ffmpeg with proper path escaping
./commands/emojimix.js: const ffmpegCommand = `ffmpeg -i "${tempFile}" -vf "scale=512:512:force_original_aspect_ratio=decrease,format=rgba,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=#00000000" "${outputFile}"`;
./commands/emojimix.js: exec(ffmpegCommand, (error) => {
./commands/igs.js: let ffmpegCommand;
./commands/igs.js: ffmpegCommand = `ffmpeg -y -i "${tempInput}" -t 2 -vf "crop=min(iw\\,ih):min(iw\\,ih),scale=512:512,fps=8" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 30 -compression_level 6 -b:v 100k -max_muxing_queue_size 1024 "${tempOutput}"`;
./commands/igs.js: ffmpegCommand = `ffmpeg -y -i "${tempInput}" -t 3 -vf "crop=min(iw\\,ih):min(iw\\,ih),scale=512:512,fps=12" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 50 -compression_level 6 -b:v 150k -max_muxing_queue_size 1024 "${tempOutput}"`;
./commands/igs.js: ffmpegCommand = `ffmpeg -y -i "${tempInput}" -t 2 -vf "scale=512:512:force_original_aspect_ratio=decrease,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=#00000000,fps=8" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 35 -compression_level 6 -b:v 100k -max_muxing_queue_size 1024 "${tempOutput}"`;
./commands/igs.js: ffmpegCommand = `ffmpeg -y -i "${tempInput}" -t 3 -vf "scale=512:512:force_original_aspect_ratio=decrease,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=#00000000,fps=12" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 45 -compression_level 6 -b:v 150k -max_muxing_queue_size 1024 "${tempOutput}"`;
./commands/igs.js: ffmpegCommand = `ffmpeg -y -i "${tempInput}" -vf "${vf}" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 75 -compression_level 6 "${tempOutput}"`;
./commands/igs.js: exec(ffmpegCommand, (error, _stdout, _stderr) => {
./commands/igs.js: ? `ffmpeg -y -i "${tempInput}" -t 2 -vf "crop=min(iw\\,ih):min(iw\\,ih),scale=512:512,fps=8" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 30 -compression_level 6 -b:v 100k -max_muxing_queue_size 1024 "${tempOutput2}"`
./commands/igs.js: : `ffmpeg -y -i "${tempInput}" -t 2 -vf "scale=512:512:force_original_aspect_ratio=decrease,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=#00000000,fps=8" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 35 -compression_level 6 -b:v 100k -max_muxing_queue_size 1024 "${tempOutput2}"`;
./commands/igs.js: const cmdSmall = `ffmpeg -y -i "${tempInput}" ${isAnimated ? '-t 2' : ''} -vf "${vfSmall}" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality ${isAnimated ? 28 : 65} -compression_level 6 -b:v 80k -max_muxing_queue_size 1024 "${tempOutput3}"`;
./commands/igs.js: const cmd = `ffmpeg -y -i "${tempInput}" ${isVideo ? '-t 2' : ''} -vf "${vf}" -c:v libwebp -preset default -loop 0 -pix_fmt yuva420p -quality 25 -compression_level 6 -b:v 60k "${tempOutput}"`;
./commands/sticker-alt.js: // Convert to WebP using ffmpeg
./commands/sticker-alt.js: ? `ffmpeg -i "${tempInput}" -vf "scale='min(320,iw)':min'(320,ih)':force_original_aspect_ratio=decrease" "${tempOutput}"`
./commands/sticker-alt.js: : `ffmpeg -i "${tempInput}" -vf "scale='min(320,iw)':min'(320,ih)':force_original_aspect_ratio=decrease" -c:v libwebp -preset default -loop 0 -vsync 0 -t 6 "${tempOutput}"`;
./commands/sticker.js: // Convert to WebP using ffmpeg with optimized settings for animated/non-animated
./commands/sticker.js: const ffmpegCommand = isAnimated
./commands/sticker.js: ? `ffmpeg -i "${tempInput}" -vf "scale=512:512:force_original_aspect_ratio=decrease,fps=15,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=#00000000" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 75 -compression_level 6 "${tempOutput}"`
./commands/sticker.js: : `ffmpeg -i "${tempInput}" -vf "scale=512:512:force_original_aspect_ratio=decrease,format=rgba,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=#00000000" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 75 -compression_level 6 "${tempOutput}"`;
./commands/sticker.js: exec(ffmpegCommand, (error) => {
./commands/sticker.js: ? `ffmpeg -y -i "${tempInput}" -t 2 -vf "scale=512:512:force_original_aspect_ratio=decrease,fps=8,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=#00000000" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 30 -compression_level 6 -b:v 100k -max_muxing_queue_size 1024 "${tempOutput2}"`
./commands/sticker.js: : `ffmpeg -y -i "${tempInput}" -t 3 -vf "scale=512:512:force_original_aspect_ratio=decrease,fps=12,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=#00000000" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 45 -compression_level 6 -b:v 150k -max_muxing_queue_size 1024 "${tempOutput2}"`;
./commands/sticker.js: ? `ffmpeg -y -i "${tempInput}" -t 2 -vf "scale=512:512:force_original_aspect_ratio=decrease,fps=8,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=#00000000" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 30 -compression_level 6 -b:v 100k -max_muxing_queue_size 1024 "${tempOutput2}"`
./commands/sticker.js: : `ffmpeg -y -i "${tempInput}" -t 3 -vf "scale=512:512:force_original_aspect_ratio=decrease,fps=12,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=#00000000" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 45 -compression_level 6 -b:v 150k -max_muxing_queue_size 1024 "${tempOutput2}"`;
./commands/sticker.js: const smallCmd = `ffmpeg -y -i "${tempInput}" -t 2 -vf "scale=320:320:force_original_aspect_ratio=decrease,fps=8,pad=320:320:(ow-iw)/2:(oh-ih)/2:color=#00000000" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 30 -compression_level 6 -b:v 80k -max_muxing_queue_size 1024 "${tempOutput3}"`;
./commands/stickercrop.js: // Convert to WebP using ffmpeg with crop to square
./commands/stickercrop.js: let ffmpegCommand;
./commands/stickercrop.js: ffmpegCommand = `ffmpeg -i "${tempInput}" -t 2 -vf "crop=min(iw\\,ih):min(iw\\,ih),scale=512:512,fps=8" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 30 -compression_level 6 -b:v 100k -max_muxing_queue_size 1024 "${tempOutput}"`;
./commands/stickercrop.js: ffmpegCommand = `ffmpeg -i "${tempInput}" -t 3 -vf "crop=min(iw\\,ih):min(iw\\,ih),scale=512:512,fps=12" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 50 -compression_level 6 -b:v 150k -max_muxing_queue_size 1024 "${tempOutput}"`;
./commands/stickercrop.js: ffmpegCommand = `ffmpeg -i "${tempInput}" -vf "crop=min(iw\\,ih):min(iw\\,ih),scale=512:512,format=rgba" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 75 -compression_level 6 "${tempOutput}"`;
./commands/stickercrop.js: exec(ffmpegCommand, (error, stdout, stderr) => {
./commands/stickercrop.js: let ffmpegCommand;
./commands/stickercrop.js: ffmpegCommand = `ffmpeg -y -i "${tempInput}" -t 2 -vf "crop=min(iw\\,ih):min(iw\\,ih),scale=512:512,fps=8" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 30 -compression_level 6 -b:v 100k -max_muxing_queue_size 1024 "${tempOutput}"`;
./commands/stickercrop.js: ffmpegCommand = `ffmpeg -y -i "${tempInput}" -t 3 -vf "crop=min(iw\\,ih):min(iw\\,ih),scale=512:512,fps=12" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 50 -compression_level 6 -b:v 150k -max_muxing_queue_size 1024 "${tempOutput}"`;
./commands/stickercrop.js: ffmpegCommand = `ffmpeg -y -i "${tempInput}" -vf "crop=min(iw\\,ih):min(iw\\,ih),scale=512:512,format=rgba" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 75 -compression_level 6 "${tempOutput}"`;
./commands/stickercrop.js: exec(ffmpegCommand, (error) => {
./commands/stickertelegram.js: // Convert to WebP using ffmpeg with optimized settings
./commands/stickertelegram.js: const ffmpegCommand = isAnimated
./commands/stickertelegram.js: ? `ffmpeg -i "${tempInput}" -vf "scale=512:512:force_original_aspect_ratio=decrease,fps=15,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=#00000000" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 75 -compression_level 6 "${tempOutput}"`
./commands/stickertelegram.js: : `ffmpeg -i "${tempInput}" -vf "scale=512:512:force_original_aspect_ratio=decrease,format=rgba,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=#00000000" -c:v libwebp -preset default -loop 0 -vsync 0 -pix_fmt yuva420p -quality 75 -compression_level 6 "${tempOutput}"`;
./commands/stickertelegram.js: exec(ffmpegCommand, (error) => {
./lib/converter.js:function ffmpeg(buffer, args = [], ext = '', ext2 = '') {
./lib/converter.js: spawn('ffmpeg', [
./lib/converter.js: return ffmpeg(buffer, [
./lib/converter.js: return ffmpeg(buffer, [
./lib/converter.js: return ffmpeg(buffer, [
./lib/converter.js: ffmpeg,
./lib/exif.js:const ff = require('fluent-ffmpeg')
./lib/myfunc2.js:const ffmpeg = require('fluent-ffmpeg')
./lib/myfunc2.js: `ffmpeg -i ./XeonMedia/trash/${filename}.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" ./XeonMedia/trash/${filename}.mp4`
./lib/sticker.js:const ffmpeg = require('fluent-ffmpeg')
./lib/sticker.js: let ff = spawn('ffmpeg', [
./lib/sticker.js: return await ffmpeg(img, [
./lib/sticker.js: * Convert using fluent-ffmpeg
./lib/sticker.js: let Fffmpeg = /video/i.test(type.mime) ? fluent_ffmpeg(tmp).inputFormat(type.ext) : fluent_ffmpeg(tmp).input(tmp)
./lib/sticker.js: Fffmpeg
./lib/sticker.js: ffmpeg: true,
./lib/sticker.js: ffmpegWebp: true,
./lib/ytdl2.js:const ffmpeg = require('fluent-ffmpeg')
./lib/ytdl2.js: ffmpeg(stream)
./lib/ytdl2.js: ffmpeg(stream)
./lib/ytdl2.js: ffmpeg(stream)
./package.json: "@ffmpeg/ffmpeg": "^0.12.15",
./node_modules/@ffmpeg/types/package.json: "name": "@ffmpeg/types",
./node_modules/@ffmpeg/types/package.json: "description": "ffmpeg.wasm types",
./node_modules/@ffmpeg/types/package.json: "url": "git+https://github.com/ffmpegwasm/ffmpeg.wasm.git"
./node_modules/@ffmpeg/types/package.json: "ffmpeg",
./node_modules/@ffmpeg/types/package.json: "url": "https://github.com/ffmpegwasm/ffmpeg.wasm/issues"
./node_modules/@ffmpeg/types/package.json: "homepage": "https://github.com/ffmpegwasm/ffmpeg.wasm#readme",
./node_modules/@ffmpeg/types/types/index.d.ts: * FFmpeg core module, an object to interact with ffmpeg.
./node_modules/@ffmpeg/types/types/index.d.ts: /** return code of the ffmpeg exec, error when ret != 0 */
./node_modules/@ffmpeg/ffmpeg/dist/umd/814.ffmpeg.js:!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.FFmpegWASM=t():e.FFmpegWASM=t()}(self,(()=>(()=>{var e={454:e=>{function t(e){return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}))}t.keys=()=>[],t.resolve=t,t.id=454,e.exports=t}},t={};function r(o){var s=t[o];if(void 0!==s)return s.exports;var a=t[o]={exports:{}};return e[o](a,a.exports,r),a.exports}return r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";const e="https://unpkg.com/@ffmpeg/core@0.12.9/dist/umd/ffmpeg-core.js";var t;!function(e){e.LOAD="LOAD",e.EXEC="EXEC",e.FFPROBE="FFPROBE",e.WRITE_FILE="WRITE_FILE",e.READ_FILE="READ_FILE",e.DELETE_FILE="DELETE_FILE",e.RENAME="RENAME",e.CREATE_DIR="CREATE_DIR",e.LIST_DIR="LIST_DIR",e.DELETE_DIR="DELETE_DIR",e.ERROR="ERROR",e.DOWNLOAD="DOWNLOAD",e.PROGRESS="PROGRESS",e.LOG="LOG",e.MOUNT="MOUNT",e.UNMOUNT="UNMOUNT"}(t||(t={}));const o=new Error("unknown message type"),s=new Error("ffmpeg is not loaded, call `await ffmpeg.load()` first"),a=(new Error("called FFmpeg.terminate()"),new Error("failed to import ffmpeg-core.js"));let n;self.onmessage=async({data:{id:E,type:c,data:i}})=>{const p=[];let f;try{if(c!==t.LOAD&&!n)throw s;switch(c){case t.LOAD:f=await(async({coreURL:o,wasmURL:s,workerURL:E})=>{const c=!n;try{o||(o=e),importScripts(o)}catch{if(o&&o!==e||(o=e.replace("/umd/","/esm/")),self.createFFmpegCore=(await r(454)(o)).default,!self.createFFmpegCore)throw a}const i=o,p=s||o.replace(/.js$/g,".wasm"),f=E||o.replace(/.js$/g,".worker.js");return n=await self.createFFmpegCore({mainScriptUrlOrBlob:`${i}#${btoa(JSON.stringify({wasmURL:p,workerURL:f}))}`}),n.setLogger((e=>self.postMessage({type:t.LOG,data:e}))),n.setProgress((e=>self.postMessage({type:t.PROGRESS,data:e}))),c})(i);break;case t.EXEC:f=(({args:e,timeout:t=-1})=>{n.setTimeout(t),n.exec(...e);const r=n.ret;return n.reset(),r})(i);break;case t.FFPROBE:f=(({args:e,timeout:t=-1})=>{n.setTimeout(t),n.ffprobe(...e);const r=n.ret;return n.reset(),r})(i);break;case t.WRITE_FILE:f=(({path:e,data:t})=>(n.FS.writeFile(e,t),!0))(i);break;case t.READ_FILE:f=(({path:e,encoding:t})=>n.FS.readFile(e,{encoding:t}))(i);break;case t.DELETE_FILE:f=(({path:e})=>(n.FS.unlink(e),!0))(i);break;case t.RENAME:f=(({oldPath:e,newPath:t})=>(n.FS.rename(e,t),!0))(i);break;case t.CREATE_DIR:f=(({path:e})=>(n.FS.mkdir(e),!0))(i);break;case t.LIST_DIR:f=(({path:e})=>{const t=n.FS.readdir(e),r=[];for(const o of t){const t=n.FS.stat(`${e}/${o}`),s=n.FS.isDir(t.mode);r.push({name:o,isDir:s})}return r})(i);break;case t.DELETE_DIR:f=(({path:e})=>(n.FS.rmdir(e),!0))(i);break;case t.MOUNT:f=(({fsType:e,options:t,mountPoint:r})=>{const o=e,s=n.FS.filesystems[o];return!!s&&(n.FS.mount(s,t,r),!0)})(i);break;case t.UNMOUNT:f=(({mountPoint:e})=>(n.FS.unmount(e),!0))(i);break;default:throw o}}catch(e){return void self.postMessage({id:E,type:t.ERROR,data:e.toString()})}f instanceof Uint8Array&&p.push(f.buffer),self.postMessage({id:E,type:c,data:f},p)}})(),{}})()));
./node_modules/@ffmpeg/ffmpeg/dist/umd/814.ffmpeg.js://# sourceMappingURL=814.ffmpeg.js.map
./node_modules/@ffmpeg/ffmpeg/dist/umd/ffmpeg.js:!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.FFmpegWASM=t():e.FFmpegWASM=t()}(self,(()=>(()=>{"use strict";var e={m:{},d:(t,s)=>{for(var r in s)e.o(s,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:s[r]})},u:e=>e+".ffmpeg.js"};e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),e.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var t;e.g.importScripts&&(t=e.g.location+"");var s=e.g.document;if(!t&&s&&(s.currentScript&&(t=s.currentScript.src),!t)){var r=s.getElementsByTagName("script");if(r.length)for(var a=r.length-1;a>-1&&!t;)t=r[a--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t})(),e.b=document.baseURI||self.location.href;var t,s={};e.r(s),e.d(s,{FFFSType:()=>n,FFmpeg:()=>i}),function(e){e.LOAD="LOAD",e.EXEC="EXEC",e.FFPROBE="FFPROBE",e.WRITE_FILE="WRITE_FILE",e.READ_FILE="READ_FILE",e.DELETE_FILE="DELETE_FILE",e.RENAME="RENAME",e.CREATE_DIR="CREATE_DIR",e.LIST_DIR="LIST_DIR",e.DELETE_DIR="DELETE_DIR",e.ERROR="ERROR",e.DOWNLOAD="DOWNLOAD",e.PROGRESS="PROGRESS",e.LOG="LOG",e.MOUNT="MOUNT",e.UNMOUNT="UNMOUNT"}(t||(t={}));const r=(()=>{let e=0;return()=>e++})(),a=(new Error("unknown message type"),new Error("ffmpeg is not loaded, call `await ffmpeg.load()` first")),o=new Error("called FFmpeg.terminate()");new Error("failed to import ffmpeg-core.js");class i{#e=null;#t={};#s={};#r=[];#a=[];loaded=!1;#o=()=>{this.#e&&(this.#e.onmessage=({data:{id:e,type:s,data:r}})=>{switch(s){case t.LOAD:this.loaded=!0,this.#t[e](r);break;case t.MOUNT:case t.UNMOUNT:case t.EXEC:case t.FFPROBE:case t.WRITE_FILE:case t.READ_FILE:case t.DELETE_FILE:case t.RENAME:case t.CREATE_DIR:case t.LIST_DIR:case t.DELETE_DIR:this.#t[e](r);break;case t.LOG:this.#r.forEach((e=>e(r)));break;case t.PROGRESS:this.#a.forEach((e=>e(r)));break;case t.ERROR:this.#s[e](r)}delete this.#t[e],delete this.#s[e]})};#i=({type:e,data:t},s=[],o)=>this.#e?new Promise(((a,i)=>{const n=r();this.#e&&this.#e.postMessage({id:n,type:e,data:t},s),this.#t[n]=a,this.#s[n]=i,o?.addEventListener("abort",(()=>{i(new DOMException(`Message # ${n} was aborted`,"AbortError"))}),{once:!0})})):Promise.reject(a);on(e,t){"log"===e?this.#r.push(t):"progress"===e&&this.#a.push(t)}off(e,t){"log"===e?this.#r=this.#r.filter((e=>e!==t)):"progress"===e&&(this.#a=this.#a.filter((e=>e!==t)))}load=({classWorkerURL:s,...r}={},{signal:a}={})=>(this.#e||(this.#e=s?new Worker(new URL(s,"file:///Users/focus/Projects/ffmpeg.wasm/packages/ffmpeg/dist/esm/classes.js"),{type:"module"}):new Worker(new URL(e.p+e.u(814),e.b),{type:void 0}),this.#o()),this.#i({type:t.LOAD,data:r},void 0,a));exec=(e,s=-1,{signal:r}={})=>this.#i({type:t.EXEC,data:{args:e,timeout:s}},void 0,r);ffprobe=(e,s=-1,{signal:r}={})=>this.#i({type:t.FFPROBE,data:{args:e,timeout:s}},void 0,r);terminate=()=>{const e=Object.keys(this.#s);for(const t of e)this.#s[t](o),delete this.#s[t],delete this.#t[t];this.#e&&(this.#e.terminate(),this.#e=null,this.loaded=!1)};writeFile=(e,s,{signal:r}={})=>{const a=[];return s instanceof Uint8Array&&a.push(s.buffer),this.#i({type:t.WRITE_FILE,data:{path:e,data:s}},a,r)};mount=(e,s,r)=>this.#i({type:t.MOUNT,data:{fsType:e,options:s,mountPoint:r}},[]);unmount=e=>this.#i({type:t.UNMOUNT,data:{mountPoint:e}},[]);readFile=(e,s="binary",{signal:r}={})=>this.#i({type:t.READ_FILE,data:{path:e,encoding:s}},void 0,r);deleteFile=(e,{signal:s}={})=>this.#i({type:t.DELETE_FILE,data:{path:e}},void 0,s);rename=(e,s,{signal:r}={})=>this.#i({type:t.RENAME,data:{oldPath:e,newPath:s}},void 0,r);createDir=(e,{signal:s}={})=>this.#i({type:t.CREATE_DIR,data:{path:e}},void 0,s);listDir=(e,{signal:s}={})=>this.#i({type:t.LIST_DIR,data:{path:e}},void 0,s);deleteDir=(e,{signal:s}={})=>this.#i({type:t.DELETE_DIR,data:{path:e}},void 0,s)}var n;return function(e){e.MEMFS="MEMFS",e.NODEFS="NODEFS",e.NODERAWFS="NODERAWFS",e.IDBFS="IDBFS",e.WORKERFS="WORKERFS",e.PROXYFS="PROXYFS"}(n||(n={})),s})()));
./node_modules/@ffmpeg/ffmpeg/dist/umd/ffmpeg.js://# sourceMappingURL=ffmpeg.js.map
./node_modules/@ffmpeg/ffmpeg/dist/umd/814.ffmpeg.js.map:{"version":3,"file":"814.ffmpeg.js","mappings":"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","sources":["webpack://FFmpegWASM/webpack/universalModuleDefinition","webpack://FFmpegWASM/./dist/esm/ lazy namespace object","webpack://FFmpegWASM/webpack/bootstrap","webpack://FFmpegWASM/webpack/runtime/hasOwnProperty shorthand","webpack://FFmpegWASM/./dist/esm/const.js","webpack://FFmpegWASM/./dist/esm/errors.js","webpack://FFmpegWASM/./dist/esm/worker.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"FFmpegWASM\"] = factory();\n\telse\n\t\troot[\"FFmpegWASM\"] = factory();\n})(self, () => {\nreturn ","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(() => {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = () => ([]);\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 454;\nmodule.exports = webpackEmptyAsyncContext;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","export const MIME_TYPE_JAVASCRIPT = \"text/javascript\";\nexport const MIME_TYPE_WASM = \"application/wasm\";\nexport const CORE_VERSION = \"0.12.9\";\nexport const CORE_URL = `https://unpkg.com/@ffmpeg/core@${CORE_VERSION}/dist/umd/ffmpeg-core.js`;\nexport var FFMessageType;\n(function (FFMessageType) {\n FFMessageType[\"LOAD\"] = \"LOAD\";\n FFMessageType[\"EXEC\"] = \"EXEC\";\n FFMessageType[\"FFPROBE\"] = \"FFPROBE\";\n FFMessageType[\"WRITE_FILE\"] = \"WRITE_FILE\";\n FFMessageType[\"READ_FILE\"] = \"READ_FILE\";\n FFMessageType[\"DELETE_FILE\"] = \"DELETE_FILE\";\n FFMessageType[\"RENAME\"] = \"RENAME\";\n FFMessageType[\"CREATE_DIR\"] = \"CREATE_DIR\";\n FFMessageType[\"LIST_DIR\"] = \"LIST_DIR\";\n FFMessageType[\"DELETE_DIR\"] = \"DELETE_DIR\";\n FFMessageType[\"ERROR\"] = \"ERROR\";\n FFMessageType[\"DOWNLOAD\"] = \"DOWNLOAD\";\n FFMessageType[\"PROGRESS\"] = \"PROGRESS\";\n FFMessageType[\"LOG\"] = \"LOG\";\n FFMessageType[\"MOUNT\"] = \"MOUNT\";\n FFMessageType[\"UNMOUNT\"] = \"UNMOUNT\";\n})(FFMessageType || (FFMessageType = {}));\n","export const ERROR_UNKNOWN_MESSAGE_TYPE = new Error(\"unknown message type\");\nexport const ERROR_NOT_LOADED = new Error(\"ffmpeg is not loaded, call `await ffmpeg.load()` first\");\nexport const ERROR_TERMINATED = new Error(\"called FFmpeg.terminate()\");\nexport const ERROR_IMPORT_FAILURE = new Error(\"failed to import ffmpeg-core.js\");\n","/// \n/// \n/// \nimport { CORE_URL, FFMessageType } from \"./const.js\";\nimport { ERROR_UNKNOWN_MESSAGE_TYPE, ERROR_NOT_LOADED, ERROR_IMPORT_FAILURE, } from \"./errors.js\";\nlet ffmpeg;\nconst load = async ({ coreURL: _coreURL, wasmURL: _wasmURL, workerURL: _workerURL, }) => {\n const first = !ffmpeg;\n try {\n if (!_coreURL)\n _coreURL = CORE_URL;\n // when web worker type is `classic`.\n importScripts(_coreURL);\n }\n catch {\n if (!_coreURL || _coreURL === CORE_URL)\n _coreURL = CORE_URL.replace('/umd/', '/esm/');\n // when web worker type is `module`.\n self.createFFmpegCore = (await import(\n /* @vite-ignore */ _coreURL)).default;\n if (!self.createFFmpegCore) {\n throw ERROR_IMPORT_FAILURE;\n }\n }\n const coreURL = _coreURL;\n const wasmURL = _wasmURL ? _wasmURL : _coreURL.replace(/.js$/g, \".wasm\");\n const workerURL = _workerURL\n ? _workerURL\n : _coreURL.replace(/.js$/g, \".worker.js\");\n ffmpeg = await self.createFFmpegCore({\n // Fix `Overload resolution failed.` when using multi-threaded ffmpeg-core.\n // Encoded wasmURL and workerURL in the URL as a hack to fix locateFile issue.\n mainScriptUrlOrBlob: `${coreURL}#${btoa(JSON.stringify({ wasmURL, workerURL }))}`,\n });\n ffmpeg.setLogger((data) => self.postMessage({ type: FFMessageType.LOG, data }));\n ffmpeg.setProgress((data) => self.postMessage({\n type: FFMessageType.PROGRESS,\n data,\n }));\n return first;\n};\nconst exec = ({ args, timeout = -1 }) => {\n ffmpeg.setTimeout(timeout);\n ffmpeg.exec(...args);\n const ret = ffmpeg.ret;\n ffmpeg.reset();\n return ret;\n};\nconst ffprobe = ({ args, timeout = -1 }) => {\n ffmpeg.setTimeout(timeout);\n ffmpeg.ffprobe(...args);\n const ret = ffmpeg.ret;\n ffmpeg.reset();\n return ret;\n};\nconst writeFile = ({ path, data }) => {\n ffmpeg.FS.writeFile(path, data);\n return true;\n};\nconst readFile = ({ path, encoding }) => ffmpeg.FS.readFile(path, { encoding });\n// TODO: check if deletion works.\nconst deleteFile = ({ path }) => {\n ffmpeg.FS.unlink(path);\n return true;\n};\nconst rename = ({ oldPath, newPath }) => {\n ffmpeg.FS.rename(oldPath, newPath);\n return true;\n};\n// TODO: check if creation works.\nconst createDir = ({ path }) => {\n ffmpeg.FS.mkdir(path);\n return true;\n};\nconst listDir = ({ path }) => {\n const names = ffmpeg.FS.readdir(path);\n const nodes = [];\n for (const name of names) {\n const stat = ffmpeg.FS.stat(`${path}/${name}`);\n const isDir = ffmpeg.FS.isDir(stat.mode);\n nodes.push({ name, isDir });\n }\n return nodes;\n};\n// TODO: check if deletion works.\nconst deleteDir = ({ path }) => {\n ffmpeg.FS.rmdir(path);\n return true;\n};\nconst mount = ({ fsType, options, mountPoint }) => {\n const str = fsType;\n const fs = ffmpeg.FS.filesystems[str];\n if (!fs)\n return false;\n ffmpeg.FS.mount(fs, options, mountPoint);\n return true;\n};\nconst unmount = ({ mountPoint }) => {\n ffmpeg.FS.unmount(mountPoint);\n return true;\n};\nself.onmessage = async ({ data: { id, type, data: _data }, }) => {\n const trans = [];\n let data;\n try {\n if (type !== FFMessageType.LOAD && !ffmpeg)\n throw ERROR_NOT_LOADED; // eslint-disable-line\n switch (type) {\n case FFMessageType.LOAD:\n data = await load(_data);\n break;\n case FFMessageType.EXEC:\n data = exec(_data);\n break;\n case FFMessageType.FFPROBE:\n data = ffprobe(_data);\n break;\n case FFMessageType.WRITE_FILE:\n data = writeFile(_data);\n break;\n case FFMessageType.READ_FILE:\n data = readFile(_data);\n break;\n case FFMessageType.DELETE_FILE:\n data = deleteFile(_data);\n break;\n case FFMessageType.RENAME:\n data = rename(_data);\n break;\n case FFMessageType.CREATE_DIR:\n data = createDir(_data);\n break;\n case FFMessageType.LIST_DIR:\n data = listDir(_data);\n break;\n case FFMessageType.DELETE_DIR:\n data = deleteDir(_data);\n break;\n case FFMessageType.MOUNT:\n data = mount(_data);\n break;\n case FFMessageType.UNMOUNT:\n data = unmount(_data);\n break;\n default:\n throw ERROR_UNKNOWN_MESSAGE_TYPE;\n }\n }\n catch (e) {\n self.postMessage({\n id,\n type: FFMessageType.ERROR,\n data: e.toString(),\n });\n return;\n }\n if (data instanceof Uint8Array) {\n trans.push(data.buffer);\n }\n self.postMessage({ id, type, data }, trans);\n};\n"],"names":["root","factory","exports","module","define","amd","self","webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","id","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","o","obj","prop","Object","prototype","hasOwnProperty","call","CORE_URL","FFMessageType","ERROR_UNKNOWN_MESSAGE_TYPE","ERROR_NOT_LOADED","ERROR_IMPORT_FAILURE","ffmpeg","onmessage","async","data","type","_data","trans","LOAD","coreURL","_coreURL","wasmURL","_wasmURL","workerURL","_workerURL","first","importScripts","replace","createFFmpegCore","default","mainScriptUrlOrBlob","btoa","JSON","stringify","setLogger","postMessage","LOG","setProgress","PROGRESS","load","EXEC","args","timeout","setTimeout","exec","ret","reset","FFPROBE","ffprobe","WRITE_FILE","path","FS","writeFile","READ_FILE","encoding","readFile","DELETE_FILE","unlink","deleteFile","RENAME","oldPath","newPath","rename","CREATE_DIR","mkdir","createDir","LIST_DIR","names","readdir","nodes","name","stat","isDir","mode","push","listDir","DELETE_DIR","rmdir","deleteDir","MOUNT","fsType","options","mountPoint","str","fs","filesystems","mount","UNMOUNT","unmount","ERROR","toString","Uint8Array","buffer"],"sourceRoot":""}
./node_modules/@ffmpeg/ffmpeg/dist/umd/ffmpeg.js.map:{"version":3,"file":"ffmpeg.js","mappings":"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","sources":["webpack://FFmpegWASM/webpack/universalModuleDefinition","webpack://FFmpegWASM/webpack/bootstrap","webpack://FFmpegWASM/webpack/runtime/define property getters","webpack://FFmpegWASM/webpack/runtime/get javascript chunk filename","webpack://FFmpegWASM/webpack/runtime/global","webpack://FFmpegWASM/webpack/runtime/hasOwnProperty shorthand","webpack://FFmpegWASM/webpack/runtime/make namespace object","webpack://FFmpegWASM/webpack/runtime/publicPath","webpack://FFmpegWASM/webpack/runtime/jsonp chunk loading","webpack://FFmpegWASM/./dist/esm/const.js","webpack://FFmpegWASM/./dist/esm/utils.js","webpack://FFmpegWASM/./dist/esm/errors.js","webpack://FFmpegWASM/./dist/esm/classes.js","webpack://FFmpegWASM/./dist/esm/types.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"FFmpegWASM\"] = factory();\n\telse\n\t\troot[\"FFmpegWASM\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".ffmpeg.js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// no jsonp function","export const MIME_TYPE_JAVASCRIPT = \"text/javascript\";\nexport const MIME_TYPE_WASM = \"application/wasm\";\nexport const CORE_VERSION = \"0.12.9\";\nexport const CORE_URL = `https://unpkg.com/@ffmpeg/core@${CORE_VERSION}/dist/umd/ffmpeg-core.js`;\nexport var FFMessageType;\n(function (FFMessageType) {\n FFMessageType[\"LOAD\"] = \"LOAD\";\n FFMessageType[\"EXEC\"] = \"EXEC\";\n FFMessageType[\"FFPROBE\"] = \"FFPROBE\";\n FFMessageType[\"WRITE_FILE\"] = \"WRITE_FILE\";\n FFMessageType[\"READ_FILE\"] = \"READ_FILE\";\n FFMessageType[\"DELETE_FILE\"] = \"DELETE_FILE\";\n FFMessageType[\"RENAME\"] = \"RENAME\";\n FFMessageType[\"CREATE_DIR\"] = \"CREATE_DIR\";\n FFMessageType[\"LIST_DIR\"] = \"LIST_DIR\";\n FFMessageType[\"DELETE_DIR\"] = \"DELETE_DIR\";\n FFMessageType[\"ERROR\"] = \"ERROR\";\n FFMessageType[\"DOWNLOAD\"] = \"DOWNLOAD\";\n FFMessageType[\"PROGRESS\"] = \"PROGRESS\";\n FFMessageType[\"LOG\"] = \"LOG\";\n FFMessageType[\"MOUNT\"] = \"MOUNT\";\n FFMessageType[\"UNMOUNT\"] = \"UNMOUNT\";\n})(FFMessageType || (FFMessageType = {}));\n","/**\n * Generate an unique message ID.\n */\nexport const getMessageID = (() => {\n let messageID = 0;\n return () => messageID++;\n})();\n","export const ERROR_UNKNOWN_MESSAGE_TYPE = new Error(\"unknown message type\");\nexport const ERROR_NOT_LOADED = new Error(\"ffmpeg is not loaded, call `await ffmpeg.load()` first\");\nexport const ERROR_TERMINATED = new Error(\"called FFmpeg.terminate()\");\nexport const ERROR_IMPORT_FAILURE = new Error(\"failed to import ffmpeg-core.js\");\n","import { FFMessageType } from \"./const.js\";\nimport { getMessageID } from \"./utils.js\";\nimport { ERROR_TERMINATED, ERROR_NOT_LOADED } from \"./errors.js\";\n/**\n * Provides APIs to interact with ffmpeg web worker.\n *\n * @example\n * ```ts\n * const ffmpeg = new FFmpeg();\n * ```\n */\nexport class FFmpeg {\n #worker = null;\n /**\n * #resolves and #rejects tracks Promise resolves and rejects to\n * be called when we receive message from web worker.\n */\n #resolves = {};\n #rejects = {};\n #logEventCallbacks = [];\n #progressEventCallbacks = [];\n loaded = false;\n /**\n * register worker message event handlers.\n */\n #registerHandlers = () => {\n if (this.#worker) {\n this.#worker.onmessage = ({ data: { id, type, data }, }) => {\n switch (type) {\n case FFMessageType.LOAD:\n this.loaded = true;\n this.#resolves[id](data);\n break;\n case FFMessageType.MOUNT:\n case FFMessageType.UNMOUNT:\n case FFMessageType.EXEC:\n case FFMessageType.FFPROBE:\n case FFMessageType.WRITE_FILE:\n case FFMessageType.READ_FILE:\n case FFMessageType.DELETE_FILE:\n case FFMessageType.RENAME:\n case FFMessageType.CREATE_DIR:\n case FFMessageType.LIST_DIR:\n case FFMessageType.DELETE_DIR:\n this.#resolves[id](data);\n break;\n case FFMessageType.LOG:\n this.#logEventCallbacks.forEach((f) => f(data));\n break;\n case FFMessageType.PROGRESS:\n this.#progressEventCallbacks.forEach((f) => f(data));\n break;\n case FFMessageType.ERROR:\n this.#rejects[id](data);\n break;\n }\n delete this.#resolves[id];\n delete this.#rejects[id];\n };\n }\n };\n /**\n * Generic function to send messages to web worker.\n */\n #send = ({ type, data }, trans = [], signal) => {\n if (!this.#worker) {\n return Promise.reject(ERROR_NOT_LOADED);\n }\n return new Promise((resolve, reject) => {\n const id = getMessageID();\n this.#worker && this.#worker.postMessage({ id, type, data }, trans);\n this.#resolves[id] = resolve;\n this.#rejects[id] = reject;\n signal?.addEventListener(\"abort\", () => {\n reject(new DOMException(`Message # ${id} was aborted`, \"AbortError\"));\n }, { once: true });\n });\n };\n on(event, callback) {\n if (event === \"log\") {\n this.#logEventCallbacks.push(callback);\n }\n else if (event === \"progress\") {\n this.#progressEventCallbacks.push(callback);\n }\n }\n off(event, callback) {\n if (event === \"log\") {\n this.#logEventCallbacks = this.#logEventCallbacks.filter((f) => f !== callback);\n }\n else if (event === \"progress\") {\n this.#progressEventCallbacks = this.#progressEventCallbacks.filter((f) => f !== callback);\n }\n }\n /**\n * Loads ffmpeg-core inside web worker. It is required to call this method first\n * as it initializes WebAssembly and other essential variables.\n *\n * @category FFmpeg\n * @returns `true` if ffmpeg core is loaded for the first time.\n */\n load = ({ classWorkerURL, ...config } = {}, { signal } = {}) => {\n if (!this.#worker) {\n this.#worker = classWorkerURL ?\n new Worker(new URL(classWorkerURL, import.meta.url), {\n type: \"module\",\n }) :\n // We need to duplicated the code here to enable webpack\n // to bundle worekr.js here.\n new Worker(new URL(\"./worker.js\", import.meta.url), {\n type: \"module\",\n });\n this.#registerHandlers();\n }\n return this.#send({\n type: FFMessageType.LOAD,\n data: config,\n }, undefined, signal);\n };\n /**\n * Execute ffmpeg command.\n *\n * @remarks\n * To avoid common I/O issues, [\"-nostdin\", \"-y\"] are prepended to the args\n * by default.\n *\n * @example\n * ```ts\n * const ffmpeg = new FFmpeg();\n * await ffmpeg.load();\n * await ffmpeg.writeFile(\"video.avi\", ...);\n * // ffmpeg -i video.avi video.mp4\n * await ffmpeg.exec([\"-i\", \"video.avi\", \"video.mp4\"]);\n * const data = ffmpeg.readFile(\"video.mp4\");\n * ```\n *\n * @returns `0` if no error, `!= 0` if timeout (1) or error.\n * @category FFmpeg\n */\n exec = (\n /** ffmpeg command line args */\n args, \n /**\n * milliseconds to wait before stopping the command execution.\n *\n * @defaultValue -1\n */\n timeout = -1, { signal } = {}) => this.#send({\n type: FFMessageType.EXEC,\n data: { args, timeout },\n }, undefined, signal);\n /**\n * Execute ffprobe command.\n *\n * @example\n * ```ts\n * const ffmpeg = new FFmpeg();\n * await ffmpeg.load();\n * await ffmpeg.writeFile(\"video.avi\", ...);\n * // Getting duration of a video in seconds: ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 video.avi -o output.txt\n * await ffmpeg.ffprobe([\"-v\", \"error\", \"-show_entries\", \"format=duration\", \"-of\", \"default=noprint_wrappers=1:nokey=1\", \"video.avi\", \"-o\", \"output.txt\"]);\n * const data = ffmpeg.readFile(\"output.txt\");\n * ```\n *\n * @returns `0` if no error, `!= 0` if timeout (1) or error.\n * @category FFmpeg\n */\n ffprobe = (\n /** ffprobe command line args */\n args, \n /**\n * milliseconds to wait before stopping the command execution.\n *\n * @defaultValue -1\n */\n timeout = -1, { signal } = {}) => this.#send({\n type: FFMessageType.FFPROBE,\n data: { args, timeout },\n }, undefined, signal);\n /**\n * Terminate all ongoing API calls and terminate web worker.\n * `FFmpeg.load()` must be called again before calling any other APIs.\n *\n * @category FFmpeg\n */\n terminate = () => {\n const ids = Object.keys(this.#rejects);\n // rejects all incomplete Promises.\n for (const id of ids) {\n this.#rejects[id](ERROR_TERMINATED);\n delete this.#rejects[id];\n delete this.#resolves[id];\n }\n if (this.#worker) {\n this.#worker.terminate();\n this.#worker = null;\n this.loaded = false;\n }\n };\n /**\n * Write data to ffmpeg.wasm.\n *\n * @example\n * ```ts\n * const ffmpeg = new FFmpeg();\n * await ffmpeg.load();\n * await ffmpeg.writeFile(\"video.avi\", await fetchFile(\"../video.avi\"));\n * await ffmpeg.writeFile(\"text.txt\", \"hello world\");\n * ```\n *\n * @category File System\n */\n writeFile = (path, data, { signal } = {}) => {\n const trans = [];\n if (data instanceof Uint8Array) {\n trans.push(data.buffer);\n }\n return this.#send({\n type: FFMessageType.WRITE_FILE,\n data: { path, data },\n }, trans, signal);\n };\n mount = (fsType, options, mountPoint) => {\n const trans = [];\n return this.#send({\n type: FFMessageType.MOUNT,\n data: { fsType, options, mountPoint },\n }, trans);\n };\n unmount = (mountPoint) => {\n const trans = [];\n return this.#send({\n type: FFMessageType.UNMOUNT,\n data: { mountPoint },\n }, trans);\n };\n /**\n * Read data from ffmpeg.wasm.\n *\n * @example\n * ```ts\n * const ffmpeg = new FFmpeg();\n * await ffmpeg.load();\n * const data = await ffmpeg.readFile(\"video.mp4\");\n * ```\n *\n * @category File System\n */\n readFile = (path, \n /**\n * File content encoding, supports two encodings:\n * - utf8: read file as text file, return data in string type.\n * - binary: read file as binary file, return data in Uint8Array type.\n *\n * @defaultValue binary\n */\n encoding = \"binary\", { signal } = {}) => this.#send({\n type: FFMessageType.READ_FILE,\n data: { path, encoding },\n }, undefined, signal);\n /**\n * Delete a file.\n *\n * @category File System\n */\n deleteFile = (path, { signal } = {}) => this.#send({\n type: FFMessageType.DELETE_FILE,\n data: { path },\n }, undefined, signal);\n /**\n * Rename a file or directory.\n *\n * @category File System\n */\n rename = (oldPath, newPath, { signal } = {}) => this.#send({\n type: FFMessageType.RENAME,\n data: { oldPath, newPath },\n }, undefined, signal);\n /**\n * Create a directory.\n *\n * @category File System\n */\n createDir = (path, { signal } = {}) => this.#send({\n type: FFMessageType.CREATE_DIR,\n data: { path },\n }, undefined, signal);\n /**\n * List directory contents.\n *\n * @category File System\n */\n listDir = (path, { signal } = {}) => this.#send({\n type: FFMessageType.LIST_DIR,\n data: { path },\n }, undefined, signal);\n /**\n * Delete an empty directory.\n *\n * @category File System\n */\n deleteDir = (path, { signal } = {}) => this.#send({\n type: FFMessageType.DELETE_DIR,\n data: { path },\n }, undefined, signal);\n}\n","export var FFFSType;\n(function (FFFSType) {\n FFFSType[\"MEMFS\"] = \"MEMFS\";\n FFFSType[\"NODEFS\"] = \"NODEFS\";\n FFFSType[\"NODERAWFS\"] = \"NODERAWFS\";\n FFFSType[\"IDBFS\"] = \"IDBFS\";\n FFFSType[\"WORKERFS\"] = \"WORKERFS\";\n FFFSType[\"PROXYFS\"] = \"PROXYFS\";\n})(FFFSType || (FFFSType = {}));\n"],"names":["root","factory","exports","module","define","amd","self","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","chunkId","g","globalThis","this","Function","e","window","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","scriptUrl","importScripts","location","document","currentScript","src","scripts","getElementsByTagName","length","i","Error","replace","p","b","baseURI","href","FFMessageType","getMessageID","messageID","ERROR_NOT_LOADED","ERROR_TERMINATED","FFmpeg","loaded","onmessage","data","id","type","LOAD","MOUNT","UNMOUNT","EXEC","FFPROBE","WRITE_FILE","READ_FILE","DELETE_FILE","RENAME","CREATE_DIR","LIST_DIR","DELETE_DIR","LOG","forEach","f","PROGRESS","ERROR","trans","signal","Promise","resolve","reject","postMessage","addEventListener","DOMException","once","on","event","callback","push","off","filter","load","classWorkerURL","config","Worker","URL","undefined","exec","args","timeout","ffprobe","terminate","ids","keys","writeFile","path","Uint8Array","buffer","mount","fsType","options","mountPoint","unmount","readFile","encoding","deleteFile","rename","oldPath","newPath","createDir","listDir","deleteDir","FFFSType"],"sourceRoot":""}
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * Provides APIs to interact with ffmpeg web worker.
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * const ffmpeg = new FFmpeg();
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * Loads ffmpeg-core inside web worker. It is required to call this method first
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * @returns `true` if ffmpeg core is loaded for the first time.
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * Execute ffmpeg command.
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * const ffmpeg = new FFmpeg();
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * await ffmpeg.load();
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * await ffmpeg.writeFile("video.avi", ...);
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * // ffmpeg -i video.avi video.mp4
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * await ffmpeg.exec(["-i", "video.avi", "video.mp4"]);
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * const data = ffmpeg.readFile("video.mp4");
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: /** ffmpeg command line args */
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * const ffmpeg = new FFmpeg();
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * await ffmpeg.load();
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * await ffmpeg.writeFile("video.avi", ...);
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * await ffmpeg.ffprobe(["-v", "error", "-show_entries", "format=duration", "-of", "default=noprint_wrappers=1:nokey=1", "video.avi", "-o", "output.txt"]);
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * const data = ffmpeg.readFile("output.txt");
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * Write data to ffmpeg.wasm.
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * const ffmpeg = new FFmpeg();
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * await ffmpeg.load();
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * await ffmpeg.writeFile("video.avi", await fetchFile("../video.avi"));
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * await ffmpeg.writeFile("text.txt", "hello world");
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * Read data from ffmpeg.wasm.
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * const ffmpeg = new FFmpeg();
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * await ffmpeg.load();
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js: * const data = await ffmpeg.readFile("video.mp4");
./node_modules/@ffmpeg/ffmpeg/dist/esm/const.js:export const CORE_URL = `https://unpkg.com/@ffmpeg/core@${CORE_VERSION}/dist/umd/ffmpeg-core.js`;
./node_modules/@ffmpeg/ffmpeg/dist/esm/errors.js:export const ERROR_NOT_LOADED = new Error("ffmpeg is not loaded, call `await ffmpeg.load()` first");
./node_modules/@ffmpeg/ffmpeg/dist/esm/errors.js:export const ERROR_IMPORT_FAILURE = new Error("failed to import ffmpeg-core.js");
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js:let ffmpeg;
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: const first = !ffmpeg;
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: ffmpeg = await self.createFFmpegCore({
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: // Fix `Overload resolution failed.` when using multi-threaded ffmpeg-core.
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: ffmpeg.setLogger((data) => self.postMessage({ type: FFMessageType.LOG, data }));
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: ffmpeg.setProgress((data) => self.postMessage({
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: ffmpeg.setTimeout(timeout);
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: ffmpeg.exec(...args);
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: const ret = ffmpeg.ret;
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: ffmpeg.reset();
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: ffmpeg.setTimeout(timeout);
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: ffmpeg.ffprobe(...args);
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: const ret = ffmpeg.ret;
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: ffmpeg.reset();
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: ffmpeg.FS.writeFile(path, data);
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js:const readFile = ({ path, encoding }) => ffmpeg.FS.readFile(path, { encoding });
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: ffmpeg.FS.unlink(path);
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: ffmpeg.FS.rename(oldPath, newPath);
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: ffmpeg.FS.mkdir(path);
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: const names = ffmpeg.FS.readdir(path);
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: const stat = ffmpeg.FS.stat(`${path}/${name}`);
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: const isDir = ffmpeg.FS.isDir(stat.mode);
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: ffmpeg.FS.rmdir(path);
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: const fs = ffmpeg.FS.filesystems[str];
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: ffmpeg.FS.mount(fs, options, mountPoint);
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: ffmpeg.FS.unmount(mountPoint);
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js: if (type !== FFMessageType.LOAD && !ffmpeg)
./node_modules/@ffmpeg/ffmpeg/dist/esm/empty.mjs: throw new Error("ffmpeg.wasm does not support nodejs");
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * Provides APIs to interact with ffmpeg web worker.
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * const ffmpeg = new FFmpeg();
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * Listen to log or prgress events from `ffmpeg.exec()`.
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * ffmpeg.on("log", ({ type, message }) => {
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * ffmpeg.on("progress", ({ progress, time }) => {
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * Unlisten to log or progress events from `ffmpeg.exec()`.
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * Loads ffmpeg-core inside web worker. It is required to call this method first
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * @returns `true` if ffmpeg core is loaded for the first time.
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * Execute ffmpeg command.
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * const ffmpeg = new FFmpeg();
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * await ffmpeg.load();
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * await ffmpeg.writeFile("video.avi", ...);
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * // ffmpeg -i video.avi video.mp4
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * await ffmpeg.exec(["-i", "video.avi", "video.mp4"]);
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * const data = ffmpeg.readFile("video.mp4");
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * const ffmpeg = new FFmpeg();
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * await ffmpeg.load();
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * await ffmpeg.writeFile("video.avi", ...);
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * await ffmpeg.ffprobe(["-v", "error", "-show_entries", "format=duration", "-of", "default=noprint_wrappers=1:nokey=1", "video.avi", "-o", "output.txt"]);
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * const data = ffmpeg.readFile("output.txt");
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * Write data to ffmpeg.wasm.
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * const ffmpeg = new FFmpeg();
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * await ffmpeg.load();
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * await ffmpeg.writeFile("video.avi", await fetchFile("../video.avi"));
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * await ffmpeg.writeFile("text.txt", "hello world");
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * Read data from ffmpeg.wasm.
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * const ffmpeg = new FFmpeg();
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * await ffmpeg.load();
./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.d.ts: * const data = await ffmpeg.readFile("video.mp4");
./node_modules/@ffmpeg/ffmpeg/dist/esm/types.d.ts: * ffmpeg-core loading configuration.
./node_modules/@ffmpeg/ffmpeg/dist/esm/types.d.ts: * `ffmpeg-core.js` URL.
./node_modules/@ffmpeg/ffmpeg/dist/esm/types.d.ts: * @defaultValue `https://unpkg.com/@ffmpeg/core@${CORE_VERSION}/dist/umd/ffmpeg-core.js`;
./node_modules/@ffmpeg/ffmpeg/dist/esm/types.d.ts: * `ffmpeg-core.wasm` URL.
./node_modules/@ffmpeg/ffmpeg/dist/esm/types.d.ts: * @defaultValue `https://unpkg.com/@ffmpeg/core@${CORE_VERSION}/dist/umd/ffmpeg-core.wasm`;
./node_modules/@ffmpeg/ffmpeg/dist/esm/types.d.ts: * `ffmpeg-core.worker.js` URL. This worker is spawned when using multithread version of ffmpeg-core.
./node_modules/@ffmpeg/ffmpeg/dist/esm/types.d.ts: * @ref: https://ffmpegwasm.netlify.app/docs/overview#architecture
./node_modules/@ffmpeg/ffmpeg/dist/esm/types.d.ts: * @defaultValue `https://unpkg.com/@ffmpeg/core-mt@${CORE_VERSION}/dist/umd/ffmpeg-core.worker.js`;
./node_modules/@ffmpeg/ffmpeg/dist/esm/types.d.ts: * `ffmpeg.worker.js` URL. This worker is spawned when FFmpeg.load() is called, it is an essential worker and usually you don't need to update this config.
./node_modules/@ffmpeg/ffmpeg/dist/esm/types.d.ts: * @ref: https://ffmpegwasm.netlify.app/docs/overview#architecture
./node_modules/@ffmpeg/ffmpeg/dist/esm/worker.d.ts:import type { FFmpegCoreModuleFactory } from "@ffmpeg/types";
./node_modules/@ffmpeg/ffmpeg/package.json: "name": "@ffmpeg/ffmpeg",
./node_modules/@ffmpeg/ffmpeg/package.json: "main": "./dist/umd/ffmpeg.js",
./node_modules/@ffmpeg/ffmpeg/package.json: "require": "./dist/umd/ffmpeg.js"
./node_modules/@ffmpeg/ffmpeg/package.json: "types/ffmpeg.d.ts"
./node_modules/@ffmpeg/ffmpeg/package.json: "url": "git+https://github.com/ffmpegwasm/ffmpeg.wasm.git"
./node_modules/@ffmpeg/ffmpeg/package.json: "ffmpeg",
./node_modules/@ffmpeg/ffmpeg/package.json: "url": "https://github.com/ffmpegwasm/ffmpeg.wasm/issues"
./node_modules/@ffmpeg/ffmpeg/package.json: "homepage": "https://github.com/ffmpegwasm/ffmpeg.wasm#readme",
./node_modules/@ffmpeg/ffmpeg/package.json: "@ffmpeg/types": "^0.12.4"
./node_modules/@whiskeysockets/baileys/lib/Utils/messages-media.js: const cmd = `ffmpeg -ss ${time} -i ${path} -y -vf scale=${size.width}:-1 -vframes 1 -f image2 ${destPath}`;
./node_modules/@whiskeysockets/baileys/README.md:- To audio message work in all devices you need to convert with some tool like `ffmpeg` with this flags:
./node_modules/@whiskeysockets/baileys/README.md: ffmpeg -i input.mp4 -avoid_negative_ts make_zero -ac 1 output.ogg
./node_modules/@whiskeysockets/baileys/README.md:- Thumbnails for videos can also be generated automatically, though, you need to have `ffmpeg` installed on your system.
./node_modules/ytdl-core/README.md:Typically 1080p or better videos do not have audio encoded with it. The audio must be downloaded separately and merged via an encoding library. `ffmpeg` is the most widely used tool, with many [Node.js modules available](https://www.npmjs.com/search?q=ffmpeg). Use the `format` objects returned from `ytdl.getInfo` to download specific streams to combine to fit your needs. Look at [example/ffmpeg.js](example/ffmpeg.js) for an example on doing this.
./node_modules/.package-lock.json: "node_modules/@ffmpeg/ffmpeg": {
./node_modules/.package-lock.json: "resolved": "https://registry.npmjs.org/@ffmpeg/ffmpeg/-/ffmpeg-0.12.15.tgz",
./node_modules/.package-lock.json: "@ffmpeg/types": "^0.12.4"
./node_modules/.package-lock.json: "node_modules/@ffmpeg/types": {
./node_modules/.package-lock.json: "resolved": "https://registry.npmjs.org/@ffmpeg/types/-/types-0.12.4.tgz",
./package-lock.json: "@ffmpeg/ffmpeg": "^0.12.15",
./package-lock.json: "node_modules/@ffmpeg/ffmpeg": {
./package-lock.json: "resolved": "https://registry.npmjs.org/@ffmpeg/ffmpeg/-/ffmpeg-0.12.15.tgz",
./package-lock.json: "@ffmpeg/types": "^0.12.4"
./package-lock.json: "node_modules/@ffmpeg/types": {
./package-lock.json: "resolved": "https://registry.npmjs.org/@ffmpeg/types/-/types-0.12.4.tgz",
./main.js:// const ffmpeg = require('fluent-ffmpeg');