diff options
author | Chocobozzz <me@florianbigard.com> | 2022-11-07 10:43:22 +0100 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2022-11-07 10:43:22 +0100 |
commit | f30ef8cf9888255a58d0d319b741ae27b456185e (patch) | |
tree | 277e584f60dea3bba56f3778710b1dddfdd6f14a | |
parent | c0a9de6652f53328cda580a8cd11c7ee14242678 (diff) | |
download | PeerTube-f30ef8cf9888255a58d0d319b741ae27b456185e.tar.gz PeerTube-f30ef8cf9888255a58d0d319b741ae27b456185e.tar.zst PeerTube-f30ef8cf9888255a58d0d319b741ae27b456185e.zip |
Fix retranscoding of odd resolution
-rw-r--r-- | server/helpers/ffmpeg/ffprobe-utils.ts | 4 | ||||
-rw-r--r-- | server/lib/transcoding/transcoding.ts | 8 |
2 files changed, 9 insertions, 3 deletions
diff --git a/server/helpers/ffmpeg/ffprobe-utils.ts b/server/helpers/ffmpeg/ffprobe-utils.ts index 8cfdba4f9..fb270b3cb 100644 --- a/server/helpers/ffmpeg/ffprobe-utils.ts +++ b/server/helpers/ffmpeg/ffprobe-utils.ts | |||
@@ -15,6 +15,7 @@ import { | |||
15 | import { VideoResolution, VideoTranscodingFPS } from '@shared/models' | 15 | import { VideoResolution, VideoTranscodingFPS } from '@shared/models' |
16 | import { CONFIG } from '../../initializers/config' | 16 | import { CONFIG } from '../../initializers/config' |
17 | import { VIDEO_TRANSCODING_FPS } from '../../initializers/constants' | 17 | import { VIDEO_TRANSCODING_FPS } from '../../initializers/constants' |
18 | import { toEven } from '../core-utils' | ||
18 | import { logger } from '../logger' | 19 | import { logger } from '../logger' |
19 | 20 | ||
20 | /** | 21 | /** |
@@ -133,7 +134,8 @@ function computeResolutionsToTranscode (options: { | |||
133 | } | 134 | } |
134 | 135 | ||
135 | if (includeInput) { | 136 | if (includeInput) { |
136 | resolutionsEnabled.add(input) | 137 | // Always use an even resolution to avoid issues with ffmpeg |
138 | resolutionsEnabled.add(toEven(input)) | ||
137 | } | 139 | } |
138 | 140 | ||
139 | return Array.from(resolutionsEnabled) | 141 | return Array.from(resolutionsEnabled) |
diff --git a/server/lib/transcoding/transcoding.ts b/server/lib/transcoding/transcoding.ts index e6914db87..c7b61e9ba 100644 --- a/server/lib/transcoding/transcoding.ts +++ b/server/lib/transcoding/transcoding.ts | |||
@@ -444,7 +444,9 @@ async function generateHlsPlaylistCommon (options: { | |||
444 | } | 444 | } |
445 | 445 | ||
446 | function buildOriginalFileResolution (inputResolution: number) { | 446 | function buildOriginalFileResolution (inputResolution: number) { |
447 | if (CONFIG.TRANSCODING.ALWAYS_TRANSCODE_ORIGINAL_RESOLUTION === true) return toEven(inputResolution) | 447 | if (CONFIG.TRANSCODING.ALWAYS_TRANSCODE_ORIGINAL_RESOLUTION === true) { |
448 | return toEven(inputResolution) | ||
449 | } | ||
448 | 450 | ||
449 | const resolutions = computeResolutionsToTranscode({ | 451 | const resolutions = computeResolutionsToTranscode({ |
450 | input: inputResolution, | 452 | input: inputResolution, |
@@ -455,7 +457,9 @@ function buildOriginalFileResolution (inputResolution: number) { | |||
455 | hasAudio: true | 457 | hasAudio: true |
456 | }) | 458 | }) |
457 | 459 | ||
458 | if (resolutions.length === 0) return toEven(inputResolution) | 460 | if (resolutions.length === 0) { |
461 | return toEven(inputResolution) | ||
462 | } | ||
459 | 463 | ||
460 | return Math.max(...resolutions) | 464 | return Math.max(...resolutions) |
461 | } | 465 | } |