diff --git a/packages/backend-common/src/ffmpeg.ts b/packages/backend-common/src/ffmpeg.ts index 8eeae35b..d1c878dc 100644 --- a/packages/backend-common/src/ffmpeg.ts +++ b/packages/backend-common/src/ffmpeg.ts @@ -4,16 +4,18 @@ import { promisify } from 'node:util'; const execPromise = promisify(exec); -export const getFileDuration = async (filePath: string): Promise => { +export const getFileDuration = async ( + filePath: string, +): Promise => { const command = `ffprobe -i ${filePath} -show_entries format=duration -v quiet -of csv="p=0"`; try { const { stdout, stderr } = await execPromise(command); if (stderr) { - logger.error(` ffprobe stderr: `, stderr); + logger.error(`ffprobe stderr: `, stderr); } return parseFloat(stdout); } catch (error) { logger.error(`Error during ffprobe file duration detection`, error); - throw error; + return undefined; } }; diff --git a/packages/backend-common/src/sqs.ts b/packages/backend-common/src/sqs.ts index 8548d8af..2e21c6fd 100644 --- a/packages/backend-common/src/sqs.ts +++ b/packages/backend-common/src/sqs.ts @@ -70,7 +70,7 @@ export const generateOutputSignedUrlAndSendMessage = async ( languageCode: InputLanguageCode, translationRequested: boolean, diarizationRequested: boolean, - duration: number, + duration?: number, ): Promise => { const signedUrls = await generateOutputSignedUrls( s3Key, @@ -81,7 +81,8 @@ export const generateOutputSignedUrlAndSendMessage = async ( ); const engine = - config.app.useWhisperx && (duration > 600 || diarizationRequested) + config.app.useWhisperx && + (!duration || duration > 600 || diarizationRequested) ? TranscriptionEngine.WHISPER_X : TranscriptionEngine.WHISPER_CPP;