Add util and rewrite examples (WIP)

This commit is contained in:
Jerome Wu
2022-09-23 17:11:48 +08:00
parent 6e9d91483e
commit f2b68cb34c
109 changed files with 1669 additions and 851 deletions

View 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
View 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);
})();

View 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);
})();

View 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
View 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
View 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);
})();