From 44e702ded455c118f9908b70d25e7c7e5512abe9 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 14 Nov 2022 11:39:01 +0100 Subject: [PATCH] Prevent broken transcoding with audio only input --- server/controllers/api/videos/transcoding.ts | 2 ++ shared/extra-utils/ffprobe.ts | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/server/controllers/api/videos/transcoding.ts b/server/controllers/api/videos/transcoding.ts index a39e47dfe..8c9a5322b 100644 --- a/server/controllers/api/videos/transcoding.ts +++ b/server/controllers/api/videos/transcoding.ts @@ -49,6 +49,8 @@ async function createTranscoding (req: express.Request, res: express.Response) { const childrenResolutions = resolutions.filter(r => r !== maxResolution) + logger.info('Manually creating transcoding jobs for %s.', body.transcodingType, { childrenResolutions, maxResolution }) + const children = await Bluebird.mapSeries(childrenResolutions, resolution => { if (body.transcodingType === 'hls') { return buildHLSJobOption({ diff --git a/shared/extra-utils/ffprobe.ts b/shared/extra-utils/ffprobe.ts index b95202464..b8e9f4c18 100644 --- a/shared/extra-utils/ffprobe.ts +++ b/shared/extra-utils/ffprobe.ts @@ -1,5 +1,5 @@ import { ffprobe, FfprobeData } from 'fluent-ffmpeg' -import { VideoFileMetadata } from '@shared/models/videos' +import { VideoFileMetadata, VideoResolution } from '@shared/models/videos' /** * @@ -103,7 +103,15 @@ function getMaxAudioBitrate (type: 'aac' | 'mp3' | string, bitrate: number) { async function getVideoStreamDimensionsInfo (path: string, existingProbe?: FfprobeData) { const videoStream = await getVideoStream(path, existingProbe) - if (!videoStream) return undefined + if (!videoStream) { + return { + width: 0, + height: 0, + ratio: 0, + resolution: VideoResolution.H_NOVIDEO, + isPortraitMode: false + } + } return { width: videoStream.width,