+ console.log(
+ 'Optimizing video file %s with bitrate %s kbps (max: %s kbps)',
+ basename(currentFile), videoBitrate / 1000, maxBitrate / 1000
+ )
+
+ const backupFile = `${currentFile}_backup`
+ await copy(currentFile, backupFile)
+
+ await optimizeOriginalVideofile(video, file)
+
+ const originalDuration = await getDurationFromVideoFile(backupFile)
+ const newDuration = await getDurationFromVideoFile(currentFile)
+
+ if (originalDuration === newDuration) {
+ console.log('Finished optimizing %s', basename(currentFile))
+ await remove(backupFile)
+ continue
+ }
+
+ console.log('Failed to optimize %s, restoring original', basename(currentFile))
+ await move(backupFile, currentFile, { overwrite: true })
+ await createTorrentAndSetInfoHash(video, file)
+ await file.save()