X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fvideo-transcoding.ts;h=37a4f3019b0ab6499bee27ba4d29c6ffeb5395ad;hb=1896bca09e088b0da9d5e845407ecebae330618c;hp=beef78b44638fd8efb7f8b0ecb351bb16af3b750;hpb=3b01f4c0ac764ecb70efaadfd939ca868c28769c;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/video-transcoding.ts b/server/lib/video-transcoding.ts index beef78b44..37a4f3019 100644 --- a/server/lib/video-transcoding.ts +++ b/server/lib/video-transcoding.ts @@ -14,7 +14,7 @@ import { VideoFileModel } from '../models/video/video-file' import { VideoStreamingPlaylistModel } from '../models/video/video-streaming-playlist' import { updateMasterHLSPlaylist, updateSha256VODSegments } from './hls' import { generateVideoStreamingPlaylistName, getVideoFilename, getVideoFilePath } from './video-paths' -import { availableEncoders } from './video-transcoding-profiles' +import { VideoTranscodingProfilesManager } from './video-transcoding-profiles' /** * @@ -41,8 +41,8 @@ async function optimizeOriginalVideofile (video: MVideoWithFile, inputVideoFile: inputPath: videoInputPath, outputPath: videoTranscodedPath, - availableEncoders, - profile: 'default', + availableEncoders: VideoTranscodingProfilesManager.Instance.getAvailableEncoders(), + profile: CONFIG.TRANSCODING.PROFILE, resolution: inputVideoFile.resolution, @@ -60,7 +60,7 @@ async function optimizeOriginalVideofile (video: MVideoWithFile, inputVideoFile: const videoOutputPath = getVideoFilePath(video, inputVideoFile) - await onVideoFileTranscoding(video, inputVideoFile, videoTranscodedPath, videoOutputPath) + await onWebTorrentVideoFileTranscoding(video, inputVideoFile, videoTranscodedPath, videoOutputPath) return transcodeType } catch (err) { @@ -72,7 +72,7 @@ async function optimizeOriginalVideofile (video: MVideoWithFile, inputVideoFile: } // Transcode the original video file to a lower resolution. -async function transcodeNewResolution (video: MVideoWithFile, resolution: VideoResolution, isPortrait: boolean, job: Job) { +async function transcodeNewWebTorrentResolution (video: MVideoWithFile, resolution: VideoResolution, isPortrait: boolean, job: Job) { const transcodeDirectory = CONFIG.STORAGE.TMP_DIR const extname = '.mp4' @@ -95,8 +95,8 @@ async function transcodeNewResolution (video: MVideoWithFile, resolution: VideoR inputPath: videoInputPath, outputPath: videoTranscodedPath, - availableEncoders, - profile: 'default', + availableEncoders: VideoTranscodingProfilesManager.Instance.getAvailableEncoders(), + profile: CONFIG.TRANSCODING.PROFILE, resolution, @@ -107,8 +107,8 @@ async function transcodeNewResolution (video: MVideoWithFile, resolution: VideoR inputPath: videoInputPath, outputPath: videoTranscodedPath, - availableEncoders, - profile: 'default', + availableEncoders: VideoTranscodingProfilesManager.Instance.getAvailableEncoders(), + profile: CONFIG.TRANSCODING.PROFILE, resolution, isPortraitMode: isPortrait, @@ -118,7 +118,7 @@ async function transcodeNewResolution (video: MVideoWithFile, resolution: VideoR await transcode(transcodeOptions) - return onVideoFileTranscoding(video, newVideoFile, videoTranscodedPath, videoOutputPath) + return onWebTorrentVideoFileTranscoding(video, newVideoFile, videoTranscodedPath, videoOutputPath) } // Merge an image with an audio file to create a video @@ -142,8 +142,8 @@ async function mergeAudioVideofile (video: MVideoWithAllFiles, resolution: Video inputPath: tmpPreviewPath, outputPath: videoTranscodedPath, - availableEncoders, - profile: 'default', + availableEncoders: VideoTranscodingProfilesManager.Instance.getAvailableEncoders(), + profile: CONFIG.TRANSCODING.PROFILE, audioPath: audioInputPath, resolution, @@ -170,11 +170,11 @@ async function mergeAudioVideofile (video: MVideoWithAllFiles, resolution: Video video.duration = await getDurationFromVideoFile(videoTranscodedPath) await video.save() - return onVideoFileTranscoding(video, inputVideoFile, videoTranscodedPath, videoOutputPath) + return onWebTorrentVideoFileTranscoding(video, inputVideoFile, videoTranscodedPath, videoOutputPath) } // Concat TS segments from a live video to a fragmented mp4 HLS playlist -async function generateHlsPlaylistFromTS (options: { +async function generateHlsPlaylistResolutionFromTS (options: { video: MVideoWithFile concatenatedTsFilePath: string resolution: VideoResolution @@ -192,7 +192,7 @@ async function generateHlsPlaylistFromTS (options: { } // Generate an HLS playlist from an input file, and update the master playlist -function generateHlsPlaylist (options: { +function generateHlsPlaylistResolution (options: { video: MVideoWithFile videoInputPath: string resolution: VideoResolution @@ -224,17 +224,22 @@ function getEnabledResolutions (type: 'vod' | 'live') { // --------------------------------------------------------------------------- export { - generateHlsPlaylist, - generateHlsPlaylistFromTS, + generateHlsPlaylistResolution, + generateHlsPlaylistResolutionFromTS, optimizeOriginalVideofile, - transcodeNewResolution, + transcodeNewWebTorrentResolution, mergeAudioVideofile, getEnabledResolutions } // --------------------------------------------------------------------------- -async function onVideoFileTranscoding (video: MVideoWithFile, videoFile: MVideoFile, transcodingPath: string, outputPath: string) { +async function onWebTorrentVideoFileTranscoding ( + video: MVideoWithFile, + videoFile: MVideoFile, + transcodingPath: string, + outputPath: string +) { const stats = await stat(transcodingPath) const fps = await getVideoFileFPS(transcodingPath) const metadata = await getMetadataFromFile(transcodingPath) @@ -278,8 +283,8 @@ async function generateHlsPlaylistCommon (options: { inputPath, outputPath, - availableEncoders, - profile: 'default', + availableEncoders: VideoTranscodingProfilesManager.Instance.getAvailableEncoders(), + profile: CONFIG.TRANSCODING.PROFILE, resolution, copyCodecs,