Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let spawn = require('child_process').spawn;
- let fs = require('fs');
- let str = `-ss 00:00:11.879 -i pipe:0 -t 00:00:05.000 -c:a aac -ar 44100 -r 30 -pix_fmt yuv420p -c:v libx264 -strict -2 -profile:v main -level 3.0 -crf 25 -preset veryfast -filter:v crop=720:720:183:0 -movflags frag_keyframe -f mp4 pipe:1`;
- let args = str.split(' ');
- let trans_proc = spawn('ffmpeg', args);
- let input = fs.createReadStream('input.mp4');
- let output = fs.createWriteStream('output.mp4');
- let closed = false;
- input.on('data', (data) => {
- if (!closed) {
- trans_proc.stdin.write(data);
- }
- });
- trans_proc.stdout.pipe(output);
- trans_proc.stdin.on('close', () => {
- console.log('stdin close');
- });
- trans_proc.stdin.on('drain', () => {
- console.log('stdin drain');
- });
- trans_proc.stdin.on('error', (e) => {
- console.log('stdin error');
- if (closed) {
- console.log('finished');
- }
- });
- trans_proc.stdin.on('finish', () => {
- console.log('stdin finish');
- });
- trans_proc.stdin.on('pipe', () => {
- console.log('stdin pipe');
- });
- trans_proc.stdin.on('unpipe', () => {
- console.log('stdin unpipe');
- });
- trans_proc.stdout.on('close', () => {
- console.log('stdout close');
- });
- trans_proc.stdout.on('data', () => {
- //console.log('data');
- });
- trans_proc.stdout.on('end', () => {
- console.log('stdout end');
- closed = true;
- });
- trans_proc.stdout.on('error', () => {
- console.log('stdout error');
- });
- trans_proc.stdout.on('readable', () => {
- //console.log('stdout readable');
- });
- trans_proc.on('exit', function(code, signal) {
- //processExited = true;
- if (signal) {
- console.log(`ffmpeg was killed with signal ${signal}.`);
- } else if (code) {
- console.log(`ffmpeg exited with code ${code}.`);
- } else {
- console.log('done');
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement