X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fvideo-transcoding.ts;h=9dd54837fb3c2fe01d8e7721f6b733aa30d1c7b9;hb=5c7d650827cc471a03e7fa18362bcbcbe5d30838;hp=9243d17422da17fa46eaa647d03e29886f86771d;hpb=dee6fe1e4f5c024fd387e8c2b306c174b24aa8b3;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/video-transcoding.ts b/server/lib/video-transcoding.ts index 9243d1742..9dd54837f 100644 --- a/server/lib/video-transcoding.ts +++ b/server/lib/video-transcoding.ts @@ -81,12 +81,52 @@ async function transcodeNewResolution (video: MVideoWithFile, resolution: VideoR const videoOutputPath = getVideoFilePath(video, newVideoFile) const videoTranscodedPath = join(transcodeDirectory, getVideoFilename(video, newVideoFile)) + const transcodeOptions = resolution === VideoResolution.H_NOVIDEO + ? { + type: 'split-audio' as 'split-audio', + inputPath: videoInputPath, + outputPath: videoTranscodedPath, + resolution, + } + : { + type: 'video' as 'video', + inputPath: videoInputPath, + outputPath: videoTranscodedPath, + resolution, + isPortraitMode: isPortrait + } + + await transcode(transcodeOptions) + + return onVideoFileTranscoding(video, newVideoFile, videoTranscodedPath, videoOutputPath) +} + +/** + * Extract audio into a separate audio-only mp4. + */ +async function splitAudioFile (video: MVideoWithFile) { + const videosDirectory = CONFIG.STORAGE.VIDEOS_DIR + const transcodeDirectory = CONFIG.STORAGE.TMP_DIR + const extname = '.mp4' + const resolution = VideoResolution.H_NOVIDEO + + // We are sure it's x264 in mp4 because optimizeOriginalVideofile was already executed + const videoInputPath = join(videosDirectory, video.getVideoFilename(video.getOriginalFile())) + + const newVideoFile = new VideoFileModel({ + resolution, + extname, + size: 0, + videoId: video.id + }) + const videoOutputPath = join(CONFIG.STORAGE.VIDEOS_DIR, video.getVideoFilename(newVideoFile)) + const videoTranscodedPath = join(transcodeDirectory, video.getVideoFilename(newVideoFile)) + const transcodeOptions = { - type: 'video' as 'video', + type: 'split-audio' as 'split-audio', inputPath: videoInputPath, outputPath: videoTranscodedPath, - resolution, - isPortraitMode: isPortrait + resolution } await transcode(transcodeOptions)