aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/lib/transcoding
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2021-08-18 10:59:38 +0200
committerChocobozzz <me@florianbigard.com>2021-08-18 10:59:38 +0200
commit1d1da33661c6f0b42a2e5bf7fd4a0e6b9d9265cd (patch)
treecf5d40f9690f575d2745cc2853f22490aa9c67cd /server/lib/transcoding
parente5a818d3cb2c33f52715ace50e580ee899c9da94 (diff)
downloadPeerTube-1d1da33661c6f0b42a2e5bf7fd4a0e6b9d9265cd.tar.gz
PeerTube-1d1da33661c6f0b42a2e5bf7fd4a0e6b9d9265cd.tar.zst
PeerTube-1d1da33661c6f0b42a2e5bf7fd4a0e6b9d9265cd.zip
More robust optimize transcoding job
Diffstat (limited to 'server/lib/transcoding')
-rw-r--r--server/lib/transcoding/video-transcoding.ts25
1 files changed, 8 insertions, 17 deletions
diff --git a/server/lib/transcoding/video-transcoding.ts b/server/lib/transcoding/video-transcoding.ts
index ee228c011..250a678eb 100644
--- a/server/lib/transcoding/video-transcoding.ts
+++ b/server/lib/transcoding/video-transcoding.ts
@@ -8,7 +8,6 @@ import { VideoResolution, VideoStorage } from '../../../shared/models/videos'
8import { VideoStreamingPlaylistType } from '../../../shared/models/videos/video-streaming-playlist.type' 8import { VideoStreamingPlaylistType } from '../../../shared/models/videos/video-streaming-playlist.type'
9import { transcode, TranscodeOptions, TranscodeOptionsType } from '../../helpers/ffmpeg-utils' 9import { transcode, TranscodeOptions, TranscodeOptionsType } from '../../helpers/ffmpeg-utils'
10import { canDoQuickTranscode, getDurationFromVideoFile, getMetadataFromFile, getVideoFileFPS } from '../../helpers/ffprobe-utils' 10import { canDoQuickTranscode, getDurationFromVideoFile, getMetadataFromFile, getVideoFileFPS } from '../../helpers/ffprobe-utils'
11import { logger } from '../../helpers/logger'
12import { CONFIG } from '../../initializers/config' 11import { CONFIG } from '../../initializers/config'
13import { P2P_MEDIA_LOADER_PEER_VERSION } from '../../initializers/constants' 12import { P2P_MEDIA_LOADER_PEER_VERSION } from '../../initializers/constants'
14import { VideoFileModel } from '../../models/video/video-file' 13import { VideoFileModel } from '../../models/video/video-file'
@@ -62,25 +61,17 @@ function optimizeOriginalVideofile (video: MVideoFullLight, inputVideoFile: MVid
62 // Could be very long! 61 // Could be very long!
63 await transcode(transcodeOptions) 62 await transcode(transcodeOptions)
64 63
65 try { 64 // Important to do this before getVideoFilename() to take in account the new filename
66 await remove(videoInputPath) 65 inputVideoFile.extname = newExtname
67 66 inputVideoFile.filename = generateWebTorrentVideoFilename(resolution, newExtname)
68 // Important to do this before getVideoFilename() to take in account the new filename 67 inputVideoFile.storage = VideoStorage.FILE_SYSTEM
69 inputVideoFile.extname = newExtname
70 inputVideoFile.filename = generateWebTorrentVideoFilename(resolution, newExtname)
71 inputVideoFile.storage = VideoStorage.FILE_SYSTEM
72
73 const videoOutputPath = VideoPathManager.Instance.getFSVideoFileOutputPath(video, inputVideoFile)
74 68
75 const { videoFile } = await onWebTorrentVideoFileTranscoding(video, inputVideoFile, videoTranscodedPath, videoOutputPath) 69 const videoOutputPath = VideoPathManager.Instance.getFSVideoFileOutputPath(video, inputVideoFile)
76 70
77 return { transcodeType, videoFile } 71 const { videoFile } = await onWebTorrentVideoFileTranscoding(video, inputVideoFile, videoTranscodedPath, videoOutputPath)
78 } catch (err) { 72 await remove(videoInputPath)
79 // Auto destruction...
80 video.destroy().catch(err => logger.error('Cannot destruct video after transcoding failure.', { err }))
81 73
82 throw err 74 return { transcodeType, videoFile }
83 }
84 }) 75 })
85} 76}
86 77