Add util and rewrite examples (WIP)
BIN
apps/examples/assets/StarWars3.wav
Normal file
BIN
apps/examples/assets/flame.avi
Normal file
BIN
apps/examples/assets/triangle/audio.ogg
Normal file
BIN
apps/examples/assets/triangle/tmp.000.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
apps/examples/assets/triangle/tmp.001.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
apps/examples/assets/triangle/tmp.002.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
apps/examples/assets/triangle/tmp.003.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
apps/examples/assets/triangle/tmp.004.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
apps/examples/assets/triangle/tmp.005.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
apps/examples/assets/triangle/tmp.006.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
apps/examples/assets/triangle/tmp.007.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
apps/examples/assets/triangle/tmp.008.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
apps/examples/assets/triangle/tmp.009.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
apps/examples/assets/triangle/tmp.010.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
apps/examples/assets/triangle/tmp.011.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
apps/examples/assets/triangle/tmp.012.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
apps/examples/assets/triangle/tmp.013.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
apps/examples/assets/triangle/tmp.014.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
apps/examples/assets/triangle/tmp.015.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
apps/examples/assets/triangle/tmp.016.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
apps/examples/assets/triangle/tmp.017.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
apps/examples/assets/triangle/tmp.018.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
apps/examples/assets/triangle/tmp.019.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
apps/examples/assets/triangle/tmp.020.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
apps/examples/assets/triangle/tmp.021.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
apps/examples/assets/triangle/tmp.022.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
apps/examples/assets/triangle/tmp.023.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
apps/examples/assets/triangle/tmp.024.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
apps/examples/assets/triangle/tmp.025.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
apps/examples/assets/triangle/tmp.026.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
apps/examples/assets/triangle/tmp.027.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
apps/examples/assets/triangle/tmp.028.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
apps/examples/assets/triangle/tmp.029.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
apps/examples/assets/triangle/tmp.030.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
apps/examples/assets/triangle/tmp.031.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
apps/examples/assets/triangle/tmp.032.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
apps/examples/assets/triangle/tmp.033.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
apps/examples/assets/triangle/tmp.034.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
apps/examples/assets/triangle/tmp.035.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
apps/examples/assets/triangle/tmp.036.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
apps/examples/assets/triangle/tmp.037.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
apps/examples/assets/triangle/tmp.038.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
apps/examples/assets/triangle/tmp.039.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
apps/examples/assets/triangle/tmp.040.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
apps/examples/assets/triangle/tmp.041.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
apps/examples/assets/triangle/tmp.042.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
apps/examples/assets/triangle/tmp.043.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
apps/examples/assets/triangle/tmp.044.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
apps/examples/assets/triangle/tmp.045.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
apps/examples/assets/triangle/tmp.046.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
apps/examples/assets/triangle/tmp.047.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
apps/examples/assets/triangle/tmp.048.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
apps/examples/assets/triangle/tmp.049.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
apps/examples/assets/triangle/tmp.050.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
apps/examples/assets/triangle/tmp.051.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
apps/examples/assets/triangle/tmp.052.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
apps/examples/assets/triangle/tmp.053.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
apps/examples/assets/triangle/tmp.054.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
apps/examples/assets/triangle/tmp.055.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
apps/examples/assets/triangle/tmp.056.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
apps/examples/assets/triangle/tmp.057.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
apps/examples/assets/triangle/tmp.058.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
apps/examples/assets/triangle/tmp.059.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
13
apps/examples/node/concatDemuxer.js
Executable file
@@ -0,0 +1,13 @@
|
||||
const fs = require('fs');
|
||||
const { createFFmpeg, fetchFile } = require('../../src');
|
||||
|
||||
const ffmpeg = createFFmpeg({ log: true });
|
||||
|
||||
(async () => {
|
||||
await ffmpeg.load();
|
||||
ffmpeg.FS('writeFile', 'flame.avi', await fetchFile('../assets/flame.avi'));
|
||||
ffmpeg.FS('writeFile', 'concat_list.txt', 'file flame.avi\nfile flame.avi');
|
||||
await ffmpeg.run('-f', 'concat', '-safe', '0', '-i', 'concat_list.txt', 'flame.mp4');
|
||||
await fs.promises.writeFile('flame.mp4', ffmpeg.FS('readFile', 'flame.mp4'));
|
||||
process.exit(0);
|
||||
})();
|
||||
12
apps/examples/node/hstack.js
Executable file
@@ -0,0 +1,12 @@
|
||||
const fs = require('fs');
|
||||
const { createFFmpeg, fetchFile } = require('../../src');
|
||||
|
||||
const ffmpeg = createFFmpeg({ log: true });
|
||||
|
||||
(async () => {
|
||||
await ffmpeg.load();
|
||||
ffmpeg.FS('writeFile', 'flame.avi', await fetchFile('../assets/flame.avi'));
|
||||
await ffmpeg.run('-i', 'flame.avi', '-i', 'flame.avi', '-filter_complex', 'hstack', 'flame.mp4');
|
||||
await fs.promises.writeFile('flame.mp4', ffmpeg.FS('readFile', 'flame.mp4'));
|
||||
process.exit(0);
|
||||
})();
|
||||
22
apps/examples/node/image2video.js
Executable file
@@ -0,0 +1,22 @@
|
||||
const fs = require('fs');
|
||||
const { createFFmpeg, fetchFile } = require('../../src');
|
||||
|
||||
const ffmpeg = createFFmpeg({ log: true });
|
||||
|
||||
(async () => {
|
||||
await ffmpeg.load();
|
||||
ffmpeg.FS('writeFile', 'audio.ogg', await fetchFile('../assets/triangle/audio.ogg'));
|
||||
for (let i = 0; i < 60; i += 1) {
|
||||
const num = `00${i}`.slice(-3);
|
||||
ffmpeg.FS('writeFile', `tmp.${num}.png`, await fetchFile(`../assets/triangle/tmp.${num}.png`));
|
||||
}
|
||||
console.log(ffmpeg.FS('readdir', '/'));
|
||||
await ffmpeg.run('-framerate', '30', '-pattern_type', 'glob', '-i', '*.png', '-i', 'audio.ogg', '-c:a', 'copy', '-shortest', '-c:v', 'libx264', '-pix_fmt', 'yuv420p', 'out.mp4');
|
||||
await ffmpeg.FS('unlink', 'audio.ogg');
|
||||
for (let i = 0; i < 60; i += 1) {
|
||||
const num = `00${i}`.slice(-3);
|
||||
await ffmpeg.FS('unlink', `tmp.${num}.png`);
|
||||
}
|
||||
await fs.promises.writeFile('out.mp4', ffmpeg.FS('readFile', 'out.mp4'));
|
||||
process.exit(0);
|
||||
})();
|
||||
14
apps/examples/node/multiple-output.js
Executable file
@@ -0,0 +1,14 @@
|
||||
const fs = require('fs');
|
||||
const { createFFmpeg, fetchFile } = require('../../src');
|
||||
|
||||
const ffmpeg = createFFmpeg({ log: true });
|
||||
|
||||
(async () => {
|
||||
await ffmpeg.load();
|
||||
ffmpeg.FS('writeFile', 'flame.avi', await fetchFile('../assets/flame.avi'));
|
||||
await ffmpeg.run('-i', 'flame.avi', '-map', '0:v', '-r', '25', 'out_%06d.bmp');
|
||||
ffmpeg.FS('readdir', '/').filter((p) => p.endsWith('.bmp')).forEach(async (p) => {
|
||||
fs.writeFileSync(p, ffmpeg.FS('readFile', p));
|
||||
});
|
||||
process.exit(0);
|
||||
})();
|
||||
14
apps/examples/node/transcode.js
Executable file
@@ -0,0 +1,14 @@
|
||||
const fs = require('fs');
|
||||
const { createFFmpeg, fetchFile } = require('../../src');
|
||||
|
||||
const ffmpeg = createFFmpeg({
|
||||
log: true,
|
||||
});
|
||||
|
||||
(async () => {
|
||||
await ffmpeg.load();
|
||||
ffmpeg.FS('writeFile', 'flame.avi', await fetchFile('../assets/flame.avi'));
|
||||
await ffmpeg.run('-i', 'flame.avi', 'flame.mp4');
|
||||
await fs.promises.writeFile('flame.mp4', ffmpeg.FS('readFile', 'flame.mp4'));
|
||||
process.exit(0);
|
||||
})();
|
||||
12
apps/examples/node/trim.js
Executable file
@@ -0,0 +1,12 @@
|
||||
const fs = require('fs');
|
||||
const { createFFmpeg, fetchFile } = require('../../src');
|
||||
|
||||
const ffmpeg = createFFmpeg({ log: true });
|
||||
|
||||
(async () => {
|
||||
await ffmpeg.load();
|
||||
ffmpeg.FS('writeFile', 'flame.avi', await fetchFile('../assets/flame.avi'));
|
||||
await ffmpeg.run('-i', 'flame.avi', '-ss', '0', '-to', '1', 'flame_trim.avi');
|
||||
await fs.promises.writeFile('flame_trim.avi', ffmpeg.FS('readFile', 'flame_trim.avi'));
|
||||
process.exit(0);
|
||||
})();
|
||||