import { VideoFileModel } from '@server/models/video/video-file'
import { VideoLiveModel } from '@server/models/video/video-live'
import { VideoStreamingPlaylistModel } from '@server/models/video/video-streaming-playlist'
-import { MStreamingPlaylist, MUserId, MVideoLive, MVideoLiveVideo } from '@server/types/models'
+import { MStreamingPlaylist, MStreamingPlaylistVideo, MUserId, MVideoLive, MVideoLiveVideo } from '@server/types/models'
import { VideoState, VideoStreamingPlaylistType } from '@shared/models'
import { federateVideoIfNeeded } from './activitypub/videos'
import { buildSha256Segment } from './hls'
import { PeerTubeSocket } from './peertube-socket'
import { isAbleToUploadVideo } from './user'
import { getHLSDirectory } from './video-paths'
-import { availableEncoders } from './video-transcoding-profiles'
+import { VideoTranscodingProfilesManager } from './video-transcoding-profiles'
import memoizee = require('memoizee')
const NodeRtmpSession = require('node-media-server/node_rtmp_session')
return this.runMuxing({
sessionId,
videoLive,
- playlist: videoStreamingPlaylist,
+ playlist: Object.assign(videoStreamingPlaylist, { Video: video }),
rtmpUrl,
fps,
allResolutions
private async runMuxing (options: {
sessionId: string
videoLive: MVideoLiveVideo
- playlist: MStreamingPlaylist
+ playlist: MStreamingPlaylistVideo
rtmpUrl: string
fps: number
allResolutions: number[]
outPath,
resolutions: allResolutions,
fps,
- availableEncoders,
- profile: 'default'
+ availableEncoders: VideoTranscodingProfilesManager.Instance.getAvailableEncoders(),
+ profile: CONFIG.LIVE.TRANSCODING.PROFILE
})
: getLiveMuxingCommand(rtmpUrl, outPath)
await federateVideoIfNeeded(fullVideo, false)
} catch (err) {
- logger.error('Cannot save/federate new video state of live streaming.', { err })
+ logger.error('Cannot save/federate new video state of live streaming of video id %d.', videoId, { err })
}
}