X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fffmpeg%2Fffmpeg-vod.ts;h=7a81a131310fcf0108d92c32edb0aeb7603d4092;hb=405c83f9af377a663a4c8e9ad025fd5c10496922;hp=c3622ceb17f7538012a4cd84058f337080484488;hpb=ab4b8974997777373a6032073f9c1aaf33ba9931;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/ffmpeg/ffmpeg-vod.ts b/server/helpers/ffmpeg/ffmpeg-vod.ts index c3622ceb1..7a81a1313 100644 --- a/server/helpers/ffmpeg/ffmpeg-vod.ts +++ b/server/helpers/ffmpeg/ffmpeg-vod.ts @@ -1,4 +1,4 @@ -import { Job } from 'bull' +import { Job } from 'bullmq' import { FfmpegCommand } from 'fluent-ffmpeg' import { readFile, writeFile } from 'fs-extra' import { dirname } from 'path' @@ -7,7 +7,7 @@ import { AvailableEncoders, VideoResolution } from '@shared/models' import { logger, loggerTagsFactory } from '../logger' import { getFFmpeg, runCommand } from './ffmpeg-commons' import { presetCopy, presetOnlyAudio, presetVOD } from './ffmpeg-presets' -import { computeFPS, getVideoStreamFPS } from './ffprobe-utils' +import { computeFPS, ffprobePromise, getVideoStreamDimensionsInfo, getVideoStreamFPS } from './ffprobe-utils' import { VIDEO_TRANSCODING_FPS } from '@server/initializers/constants' const lTags = loggerTagsFactory('ffmpeg') @@ -27,8 +27,6 @@ interface BaseTranscodeVODOptions { resolution: number - isPortraitMode?: boolean - job?: Job } @@ -115,13 +113,17 @@ export { // --------------------------------------------------------------------------- async function buildVODCommand (command: FfmpegCommand, options: TranscodeVODOptions) { - let fps = await getVideoStreamFPS(options.inputPath) + const probe = await ffprobePromise(options.inputPath) + + let fps = await getVideoStreamFPS(options.inputPath, probe) fps = computeFPS(fps, options.resolution) let scaleFilterValue: string if (options.resolution !== undefined) { - scaleFilterValue = options.isPortraitMode === true + const videoStreamInfo = await getVideoStreamDimensionsInfo(options.inputPath, probe) + + scaleFilterValue = videoStreamInfo?.isPortraitMode === true ? `w=${options.resolution}:h=-2` : `w=-2:h=${options.resolution}` }