Sign up
Login
New
Trending
Archive
English
English
Sign up
Login
New Paste
Add Image
./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","/// <reference no-default-lib=\"true\" />\n/// <reference lib=\"esnext\" />\n/// <reference lib=\"webworker\" />\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');
Settings
Title :
[Optional]
Paste Folder :
[Optional]
Select
Syntax :
[Optional]
Select
Markup
CSS
JavaScript
Bash
C
C#
C++
Java
JSON
Lua
Plaintext
C-like
ABAP
ActionScript
Ada
Apache Configuration
APL
AppleScript
Arduino
ARFF
AsciiDoc
6502 Assembly
ASP.NET (C#)
AutoHotKey
AutoIt
Basic
Batch
Bison
Brainfuck
Bro
CoffeeScript
Clojure
Crystal
Content-Security-Policy
CSS Extras
D
Dart
Diff
Django/Jinja2
Docker
Eiffel
Elixir
Elm
ERB
Erlang
F#
Flow
Fortran
GEDCOM
Gherkin
Git
GLSL
GameMaker Language
Go
GraphQL
Groovy
Haml
Handlebars
Haskell
Haxe
HTTP
HTTP Public-Key-Pins
HTTP Strict-Transport-Security
IchigoJam
Icon
Inform 7
INI
IO
J
Jolie
Julia
Keyman
Kotlin
LaTeX
Less
Liquid
Lisp
LiveScript
LOLCODE
Makefile
Markdown
Markup templating
MATLAB
MEL
Mizar
Monkey
N4JS
NASM
nginx
Nim
Nix
NSIS
Objective-C
OCaml
OpenCL
Oz
PARI/GP
Parser
Pascal
Perl
PHP
PHP Extras
PL/SQL
PowerShell
Processing
Prolog
.properties
Protocol Buffers
Pug
Puppet
Pure
Python
Q (kdb+ database)
Qore
R
React JSX
React TSX
Ren'py
Reason
reST (reStructuredText)
Rip
Roboconf
Ruby
Rust
SAS
Sass (Sass)
Sass (Scss)
Scala
Scheme
Smalltalk
Smarty
SQL
Soy (Closure Template)
Stylus
Swift
TAP
Tcl
Textile
Template Toolkit 2
Twig
TypeScript
VB.Net
Velocity
Verilog
VHDL
vim
Visual Basic
WebAssembly
Wiki markup
Xeora
Xojo (REALbasic)
XQuery
YAML
HTML
Expiration :
[Optional]
Never
Self Destroy
10 Minutes
1 Hour
1 Day
1 Week
2 Weeks
1 Month
6 Months
1 Year
Status :
[Optional]
Public
Unlisted
Private (members only)
Password :
[Optional]
Description:
[Optional]
Tags:
[Optional]
Encrypt Paste
(
?
)
Create Paste
You are currently not logged in, this means you can not edit or delete anything you paste.
Sign Up
or
Login
Site Languages
×
English