- const dataInput: VideoTranscodingPayload = program.resolution !== undefined
- ? { type: 'new-resolution' as 'new-resolution', videoUUID: video.uuid, isNewVideo: false, resolution: program.resolution }
- : { type: 'optimize' as 'optimize', videoUUID: video.uuid, isNewVideo: false }
+ const dataInput: VideoTranscodingPayload[] = []
+ const { videoFileResolution } = await video.getMaxQualityResolution()
+
+ // Generate HLS files
+ if (options.generateHls || CONFIG.TRANSCODING.WEBTORRENT.ENABLED === false) {
+ const resolutionsEnabled = options.resolution
+ ? [ options.resolution ]
+ : computeResolutionsToTranscode(videoFileResolution, 'vod').concat([ videoFileResolution ])
+
+ for (const resolution of resolutionsEnabled) {
+ dataInput.push({
+ type: 'new-resolution-to-hls',
+ videoUUID: video.uuid,
+ resolution,
+ isPortraitMode: false,
+ copyCodecs: false,
+ isMaxQuality: false
+ })
+ }
+ } else {
+ if (options.resolution !== undefined) {
+ dataInput.push({
+ type: 'new-resolution-to-webtorrent',
+ videoUUID: video.uuid,
+ isNewVideo: false,
+ resolution: options.resolution
+ })
+ } else {
+ if (video.VideoFiles.length === 0) {
+ console.error('Cannot regenerate webtorrent files with a HLS only video.')
+ return
+ }
+
+ dataInput.push({
+ type: 'optimize-to-webtorrent',
+ videoUUID: video.uuid,
+ isNewVideo: false
+ })
+ }
+ }