-async function onVideoFileOptimizerSuccess (videoArg: MVideoWithFile, payload: OptimizeTranscodingPayload) {
- if (videoArg === undefined) return undefined
-
- // Outside the transaction (IO on disk)
- const { videoFileResolution } = await videoArg.getMaxQualityResolution()
-
- const { videoDatabase, videoPublished } = await sequelizeTypescript.transaction(async t => {
- // Maybe the video changed in database, refresh it
- const videoDatabase = await VideoModel.loadAndPopulateAccountAndServerAndTags(videoArg.uuid, t)
- // Video does not exist anymore
- if (!videoDatabase) return undefined
-
- // Create transcoding jobs if there are enabled resolutions
- const resolutionsEnabled = computeResolutionsToTranscode(videoFileResolution)
- logger.info(
- 'Resolutions computed for video %s and origin file height of %d.', videoDatabase.uuid, videoFileResolution,
- { resolutions: resolutionsEnabled }
- )
-
- let videoPublished = false
-
- const hlsPayload = Object.assign({}, payload, { resolution: videoDatabase.getMaxQualityFile().resolution })
- await createHlsJobIfEnabled(hlsPayload)
-
- if (resolutionsEnabled.length !== 0) {
- for (const resolution of resolutionsEnabled) {
- let dataInput: VideoTranscodingPayload
-
- if (CONFIG.TRANSCODING.WEBTORRENT.ENABLED) {
- dataInput = {
- type: 'new-resolution' as 'new-resolution',
- videoUUID: videoDatabase.uuid,
- resolution
- }
- } else if (CONFIG.TRANSCODING.HLS.ENABLED) {
- dataInput = {
- type: 'hls',
- videoUUID: videoDatabase.uuid,
- resolution,
- isPortraitMode: false,
- copyCodecs: false
- }
- }
-
- JobQueue.Instance.createJob({ type: 'video-transcoding', payload: dataInput })
- }
+async function handleWebTorrentMergeAudioJob (job: Job, payload: MergeAudioTranscodingPayload, video: MVideoFullLight, user: MUserId) {
+ logger.info('Handling merge audio transcoding job for %s.', video.uuid, lTags(video.uuid))
+
+ await mergeAudioVideofile(video, payload.resolution, job)
+
+ logger.info('Merge audio transcoding job for %s ended.', video.uuid, lTags(video.uuid))
+
+ await onVideoFirstWebTorrentTranscoding(video, payload, 'video', user)
+}
+
+async function handleWebTorrentOptimizeJob (job: Job, payload: OptimizeTranscodingPayload, video: MVideoFullLight, user: MUserId) {
+ logger.info('Handling optimize transcoding job for %s.', video.uuid, lTags(video.uuid))
+
+ const { transcodeType } = await optimizeOriginalVideofile(video, video.getMaxQualityFile(), job)