+
+ const videoOutputPath = getVideoFilePath(video, newVideoFile)
+ const videoTranscodedPath = join(transcodeDirectory, newVideoFile.filename)
+
+ const transcodeOptions = resolution === VideoResolution.H_NOVIDEO
+ ? {
+ type: 'only-audio' as 'only-audio',
+
+ inputPath: videoInputPath,
+ outputPath: videoTranscodedPath,
+
+ availableEncoders: VideoTranscodingProfilesManager.Instance.getAvailableEncoders(),
+ profile: CONFIG.TRANSCODING.PROFILE,
+
+ resolution,
+
+ job
+ }
+ : {
+ type: 'video' as 'video',
+ inputPath: videoInputPath,
+ outputPath: videoTranscodedPath,
+
+ availableEncoders: VideoTranscodingProfilesManager.Instance.getAvailableEncoders(),
+ profile: CONFIG.TRANSCODING.PROFILE,
+
+ resolution,
+ isPortraitMode: isPortrait,
+
+ job
+ }
+
+ await transcode(transcodeOptions)
+
+ return onWebTorrentVideoFileTranscoding(video, newVideoFile, videoTranscodedPath, videoOutputPath)
+}
+
+// Merge an image with an audio file to create a video
+async function mergeAudioVideofile (video: MVideoFullLight, resolution: VideoResolution, job: Job) {
+ const transcodeDirectory = CONFIG.STORAGE.TMP_DIR
+ const newExtname = '.mp4'
+
+ const inputVideoFile = video.getMinQualityFile()
+
+ const audioInputPath = getVideoFilePath(video, inputVideoFile)
+ const videoTranscodedPath = join(transcodeDirectory, video.id + '-transcoded' + newExtname)
+
+ // If the user updates the video preview during transcoding
+ const previewPath = video.getPreview().getPath()
+ const tmpPreviewPath = join(CONFIG.STORAGE.TMP_DIR, basename(previewPath))
+ await copyFile(previewPath, tmpPreviewPath)