fluent-ffmpeg-util
Solve common problems you may encounter when using fluent-ffmpeg.
This package is recommended for projects which are already using fluent-ffmpeg, for new projects it is advised to use eloquent-ffmpeg.
Multiple Streams
You can use any number of output and input streams by using handleInputStream()
or
handleOutputStream()
, they return an object with the following shape:
- path: the output to give to fluent-ffmpeg.
- close(): closes the underlying server, this is dealt with automatically if no error occurs.
;;;;;ffmpeg .inputinput.path .outputoutput.path .toFormat'matroska' .on'error', .run;
Multiple Destinations
To write the output file to multiple destinations use tee()
, you can also pass streams directly to
it and they'll be handled using handleOutputStream()
.
;;;ffmpeg .input'input.webm' .outpututil.tee'output.mkv', fs.createReadStream'output1.mkv' .toFormat'matroska' .run;
Pause & Resume
To pause/resume a fluent-ffmpeg command use pause()
or resume()
, this is a cross-platform
alternative to using command.kill('SIGSTOP')
and command.kill('SIGCONT')
.
;;; .input'input.webm' .outpututil.tee'output.mkv', fs.createReadStream'output1.mkv' .toFormat'matroska' .on'start', ;command.run;
Abort
To gracefully interrupt a command in fluent-ffmpeg use abort()
, it allows ffmpeg to end the files
correctly but it doesn't guarantee a non-zero exit code. FFmpeg may still encounter an error while
ending the files, so errors should still be handled.
;;; .input'input.webm' .outpututil.tee'output.mkv', fs.createReadStream'output1.mkv' .toFormat'matroska' .on'start', ;command.run;