aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/helpers/ffmpeg-utils.ts
diff options
context:
space:
mode:
Diffstat (limited to 'server/helpers/ffmpeg-utils.ts')
-rw-r--r--server/helpers/ffmpeg-utils.ts19
1 files changed, 12 insertions, 7 deletions
diff --git a/server/helpers/ffmpeg-utils.ts b/server/helpers/ffmpeg-utils.ts
index 13bb2e894..af92d1ba9 100644
--- a/server/helpers/ffmpeg-utils.ts
+++ b/server/helpers/ffmpeg-utils.ts
@@ -173,7 +173,7 @@ function transcode (options: TranscodeOptions) {
173 }) 173 })
174} 174}
175 175
176async function canDoQuickTranscode (path: string) { 176async function canDoQuickTranscode (path: string): Promise<boolean> {
177 // NOTE: This could be optimized by running ffprobe only once (but it runs fast anyway) 177 // NOTE: This could be optimized by running ffprobe only once (but it runs fast anyway)
178 const videoStream = await getVideoStreamFromFile(path) 178 const videoStream = await getVideoStreamFromFile(path)
179 const parsedAudio = await audio.get(path) 179 const parsedAudio = await audio.get(path)
@@ -182,22 +182,27 @@ async function canDoQuickTranscode (path: string) {
182 const resolution = await getVideoFileResolution(path) 182 const resolution = await getVideoFileResolution(path)
183 183
184 // check video params 184 // check video params
185 if (videoStream[ 'codec_name' ] !== 'h264') 185 if (videoStream[ 'codec_name' ] !== 'h264') {
186 return false 186 return false
187 if (fps < VIDEO_TRANSCODING_FPS.MIN || fps > VIDEO_TRANSCODING_FPS.MAX) 187 }
188 if (fps < VIDEO_TRANSCODING_FPS.MIN || fps > VIDEO_TRANSCODING_FPS.MAX) {
188 return false 189 return false
189 if (bitRate > getMaxBitrate(resolution.videoFileResolution, fps, VIDEO_TRANSCODING_FPS)) 190 }
191 if (bitRate > getMaxBitrate(resolution.videoFileResolution, fps, VIDEO_TRANSCODING_FPS)) {
190 return false 192 return false
193 }
191 194
192 // check audio params (if audio stream exists) 195 // check audio params (if audio stream exists)
193 if (parsedAudio.audioStream) { 196 if (parsedAudio.audioStream) {
194 if (parsedAudio.audioStream[ 'codec_name' ] !== 'aac') 197 if (parsedAudio.audioStream[ 'codec_name' ] !== 'aac') {
195 return false 198 return false
199 }
196 const maxAudioBitrate = audio.bitrate[ 'aac' ](parsedAudio.audioStream[ 'bit_rate' ]) 200 const maxAudioBitrate = audio.bitrate[ 'aac' ](parsedAudio.audioStream[ 'bit_rate' ])
197 if (maxAudioBitrate != -1 && parsedAudio.audioStream[ 'bit_rate' ] > maxAudioBitrate) 201 if (maxAudioBitrate !== -1 && parsedAudio.audioStream[ 'bit_rate' ] > maxAudioBitrate) {
198 return false 202 return false
203 }
199 } 204 }
200 205
201 return true 206 return true
202} 207}
203 208