diff options
Diffstat (limited to 'server/lib/video-transcoding.ts')
-rw-r--r-- | server/lib/video-transcoding.ts | 55 |
1 files changed, 11 insertions, 44 deletions
diff --git a/server/lib/video-transcoding.ts b/server/lib/video-transcoding.ts index 9dd54837f..ab5200936 100644 --- a/server/lib/video-transcoding.ts +++ b/server/lib/video-transcoding.ts | |||
@@ -83,51 +83,18 @@ async function transcodeNewResolution (video: MVideoWithFile, resolution: VideoR | |||
83 | 83 | ||
84 | const transcodeOptions = resolution === VideoResolution.H_NOVIDEO | 84 | const transcodeOptions = resolution === VideoResolution.H_NOVIDEO |
85 | ? { | 85 | ? { |
86 | type: 'split-audio' as 'split-audio', | 86 | type: 'only-audio' as 'only-audio', |
87 | inputPath: videoInputPath, | 87 | inputPath: videoInputPath, |
88 | outputPath: videoTranscodedPath, | 88 | outputPath: videoTranscodedPath, |
89 | resolution, | 89 | resolution |
90 | } | 90 | } |
91 | : { | 91 | : { |
92 | type: 'video' as 'video', | 92 | type: 'video' as 'video', |
93 | inputPath: videoInputPath, | 93 | inputPath: videoInputPath, |
94 | outputPath: videoTranscodedPath, | 94 | outputPath: videoTranscodedPath, |
95 | resolution, | 95 | resolution, |
96 | isPortraitMode: isPortrait | 96 | isPortraitMode: isPortrait |
97 | } | 97 | } |
98 | |||
99 | await transcode(transcodeOptions) | ||
100 | |||
101 | return onVideoFileTranscoding(video, newVideoFile, videoTranscodedPath, videoOutputPath) | ||
102 | } | ||
103 | |||
104 | /** | ||
105 | * Extract audio into a separate audio-only mp4. | ||
106 | */ | ||
107 | async function splitAudioFile (video: MVideoWithFile) { | ||
108 | const videosDirectory = CONFIG.STORAGE.VIDEOS_DIR | ||
109 | const transcodeDirectory = CONFIG.STORAGE.TMP_DIR | ||
110 | const extname = '.mp4' | ||
111 | const resolution = VideoResolution.H_NOVIDEO | ||
112 | |||
113 | // We are sure it's x264 in mp4 because optimizeOriginalVideofile was already executed | ||
114 | const videoInputPath = join(videosDirectory, video.getVideoFilename(video.getOriginalFile())) | ||
115 | |||
116 | const newVideoFile = new VideoFileModel({ | ||
117 | resolution, | ||
118 | extname, | ||
119 | size: 0, | ||
120 | videoId: video.id | ||
121 | }) | ||
122 | const videoOutputPath = join(CONFIG.STORAGE.VIDEOS_DIR, video.getVideoFilename(newVideoFile)) | ||
123 | const videoTranscodedPath = join(transcodeDirectory, video.getVideoFilename(newVideoFile)) | ||
124 | |||
125 | const transcodeOptions = { | ||
126 | type: 'split-audio' as 'split-audio', | ||
127 | inputPath: videoInputPath, | ||
128 | outputPath: videoTranscodedPath, | ||
129 | resolution | ||
130 | } | ||
131 | 98 | ||
132 | await transcode(transcodeOptions) | 99 | await transcode(transcodeOptions) |
133 | 100 | ||