- command
- .on('error', (err, stdout, stderr) => {
- logger.error('Error in transcoding job.', { stdout, stderr })
- return rej(err)
- })
- .on('end', res)
- .run()
+ if (fps) {
+ // Hard FPS limits
+ if (fps > VIDEO_TRANSCODING_FPS.MAX) fps = VIDEO_TRANSCODING_FPS.MAX
+ else if (fps < VIDEO_TRANSCODING_FPS.MIN) fps = VIDEO_TRANSCODING_FPS.MIN
+
+ command = command.withFPS(fps)
+ }
+
+ if (options.hlsPlaylist) {
+ const videoPath = getHLSVideoPath(options)
+
+ command = command.outputOption('-hls_time 4')
+ .outputOption('-hls_list_size 0')
+ .outputOption('-hls_playlist_type vod')
+ .outputOption('-hls_segment_filename ' + videoPath)
+ .outputOption('-hls_segment_type fmp4')
+ .outputOption('-f hls')
+ .outputOption('-hls_flags single_file')
+ }
+
+ command
+ .on('error', (err, stdout, stderr) => {
+ logger.error('Error in transcoding job.', { stdout, stderr })
+ return rej(err)
+ })
+ .on('end', () => {
+ return onTranscodingSuccess(options)
+ .then(() => res())
+ .catch(err => rej(err))
+ })
+ .run()
+ } catch (err) {
+ return rej(err)
+ }