diff options
Diffstat (limited to 'server/lib/videos.ts')
-rw-r--r-- | server/lib/videos.ts | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/server/lib/videos.ts b/server/lib/videos.ts index 22e9afbf9..96bdd42e9 100644 --- a/server/lib/videos.ts +++ b/server/lib/videos.ts | |||
@@ -1,4 +1,7 @@ | |||
1 | import { isStreamingPlaylist, MStreamingPlaylistVideo, MVideo } from '@server/typings/models' | 1 | import { isStreamingPlaylist, MStreamingPlaylistVideo, MVideo, MVideoFile } from '@server/typings/models' |
2 | import { VideoTranscodingPayload } from '@server/lib/job-queue/handlers/video-transcoding' | ||
3 | import { DEFAULT_AUDIO_RESOLUTION } from '@server/initializers/constants' | ||
4 | import { JobQueue } from '@server/lib/job-queue' | ||
2 | 5 | ||
3 | function extractVideo (videoOrPlaylist: MVideo | MStreamingPlaylistVideo) { | 6 | function extractVideo (videoOrPlaylist: MVideo | MStreamingPlaylistVideo) { |
4 | return isStreamingPlaylist(videoOrPlaylist) | 7 | return isStreamingPlaylist(videoOrPlaylist) |
@@ -6,6 +9,28 @@ function extractVideo (videoOrPlaylist: MVideo | MStreamingPlaylistVideo) { | |||
6 | : videoOrPlaylist | 9 | : videoOrPlaylist |
7 | } | 10 | } |
8 | 11 | ||
12 | function addOptimizeOrMergeAudioJob (video: MVideo, videoFile: MVideoFile) { | ||
13 | let dataInput: VideoTranscodingPayload | ||
14 | |||
15 | if (videoFile.isAudio()) { | ||
16 | dataInput = { | ||
17 | type: 'merge-audio' as 'merge-audio', | ||
18 | resolution: DEFAULT_AUDIO_RESOLUTION, | ||
19 | videoUUID: video.uuid, | ||
20 | isNewVideo: true | ||
21 | } | ||
22 | } else { | ||
23 | dataInput = { | ||
24 | type: 'optimize' as 'optimize', | ||
25 | videoUUID: video.uuid, | ||
26 | isNewVideo: true | ||
27 | } | ||
28 | } | ||
29 | |||
30 | return JobQueue.Instance.createJobWithPromise({ type: 'video-transcoding', payload: dataInput }) | ||
31 | } | ||
32 | |||
9 | export { | 33 | export { |
34 | addOptimizeOrMergeAudioJob, | ||
10 | extractVideo | 35 | extractVideo |
11 | } | 36 | } |