]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/lib/video-transcoding.ts
Upgrade sequelize to v6
[github/Chocobozzz/PeerTube.git] / server / lib / video-transcoding.ts
index 890b23a449b75e4aede4139938198b065762ae60..e7108bd5a971dd9fec05673273d06beffd131643 100644 (file)
@@ -1,4 +1,4 @@
-import { copyFile, ensureDir, move, remove, stat, writeFile } from 'fs-extra'
+import { copyFile, ensureDir, move, remove, stat } from 'fs-extra'
 import { basename, extname as extnameUtil, join } from 'path'
 import { createTorrentAndSetInfoHash } from '@server/helpers/webtorrent'
 import { MStreamingPlaylistFilesVideo, MVideoFile, MVideoWithAllFiles, MVideoWithFile } from '@server/types/models'
@@ -166,41 +166,19 @@ async function mergeAudioVideofile (video: MVideoWithAllFiles, resolution: Video
 // Concat TS segments from a live video to a fragmented mp4 HLS playlist
 async function generateHlsPlaylistFromTS (options: {
   video: MVideoWithFile
-  replayDirectory: string
-  segmentFiles: string[]
+  concatenatedTsFilePath: string
   resolution: VideoResolution
   isPortraitMode: boolean
+  isAAC: boolean
 }) {
-  const concatFilePath = join(options.replayDirectory, 'concat.txt')
-
-  function cleaner () {
-    remove(concatFilePath)
-      .catch(err => logger.error('Cannot remove concat file in %s.', options.replayDirectory, { err }))
-  }
-
-  // First concat the ts files to a mp4 file
-  const content = options.segmentFiles.map(f => 'file ' + f)
-                                      .join('\n')
-
-  await writeFile(concatFilePath, content + '\n')
-
-  try {
-    const outputPath = await generateHlsPlaylistCommon({
-      video: options.video,
-      resolution: options.resolution,
-      isPortraitMode: options.isPortraitMode,
-      inputPath: concatFilePath,
-      type: 'hls-from-ts' as 'hls-from-ts'
-    })
-
-    cleaner()
-
-    return outputPath
-  } catch (err) {
-    cleaner()
-
-    throw err
-  }
+  return generateHlsPlaylistCommon({
+    video: options.video,
+    resolution: options.resolution,
+    isPortraitMode: options.isPortraitMode,
+    inputPath: options.concatenatedTsFilePath,
+    type: 'hls-from-ts' as 'hls-from-ts',
+    isAAC: options.isAAC
+  })
 }
 
 // Generate an HLS playlist from an input file, and update the master playlist
@@ -258,9 +236,10 @@ async function generateHlsPlaylistCommon (options: {
   inputPath: string
   resolution: VideoResolution
   copyCodecs?: boolean
+  isAAC?: boolean
   isPortraitMode: boolean
 }) {
-  const { type, video, inputPath, resolution, copyCodecs, isPortraitMode } = options
+  const { type, video, inputPath, resolution, copyCodecs, isPortraitMode, isAAC } = options
 
   const baseHlsDirectory = join(HLS_STREAMING_PLAYLIST_DIRECTORY, video.uuid)
   await ensureDir(join(HLS_STREAMING_PLAYLIST_DIRECTORY, video.uuid))
@@ -281,6 +260,8 @@ async function generateHlsPlaylistCommon (options: {
     copyCodecs,
     isPortraitMode,
 
+    isAAC,
+
     hlsPlaylist: {
       videoFilename
     }