Delay notification when waiting for a live
This commit is contained in:
parent
2122606318
commit
501af82d99
|
@ -10,7 +10,7 @@ function segmentValidatorFactory (segmentsSha256Url: string, isLive: boolean) {
|
||||||
let segmentsJSON = fetchSha256Segments(segmentsSha256Url)
|
let segmentsJSON = fetchSha256Segments(segmentsSha256Url)
|
||||||
const regex = /bytes=(\d+)-(\d+)/
|
const regex = /bytes=(\d+)-(\d+)/
|
||||||
|
|
||||||
return async function segmentValidator (segment: Segment, retry = 1) {
|
return async function segmentValidator (segment: Segment, _method: string, _peerId: string, retry = 1) {
|
||||||
// Wait for hash generation from the server
|
// Wait for hash generation from the server
|
||||||
if (isLive) await wait(1000)
|
if (isLive) await wait(1000)
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ function segmentValidatorFactory (segmentsSha256Url: string, isLive: boolean) {
|
||||||
await wait(1000)
|
await wait(1000)
|
||||||
|
|
||||||
segmentsJSON = fetchSha256Segments(segmentsSha256Url)
|
segmentsJSON = fetchSha256Segments(segmentsSha256Url)
|
||||||
await segmentValidator(segment, retry + 1)
|
await segmentValidator(segment, _method, _peerId, retry + 1)
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
@ -620,6 +620,7 @@ const VIDEO_LIVE = {
|
||||||
CLEANUP_DELAY: 1000 * 60 * 5, // 5 minutes
|
CLEANUP_DELAY: 1000 * 60 * 5, // 5 minutes
|
||||||
SEGMENT_TIME_SECONDS: 4, // 4 seconds
|
SEGMENT_TIME_SECONDS: 4, // 4 seconds
|
||||||
SEGMENTS_LIST_SIZE: 15, // 15 maximum segments in live playlist
|
SEGMENTS_LIST_SIZE: 15, // 15 maximum segments in live playlist
|
||||||
|
EDGE_LIVE_DELAY_SEGMENTS_NOTIFICATION: 3,
|
||||||
RTMP: {
|
RTMP: {
|
||||||
CHUNK_SIZE: 60000,
|
CHUNK_SIZE: 60000,
|
||||||
GOP_CACHE: true,
|
GOP_CACHE: true,
|
||||||
|
@ -750,6 +751,7 @@ if (isTestInstance() === true) {
|
||||||
|
|
||||||
VIDEO_LIVE.CLEANUP_DELAY = 5000
|
VIDEO_LIVE.CLEANUP_DELAY = 5000
|
||||||
VIDEO_LIVE.SEGMENT_TIME_SECONDS = 2
|
VIDEO_LIVE.SEGMENT_TIME_SECONDS = 2
|
||||||
|
VIDEO_LIVE.EDGE_LIVE_DELAY_SEGMENTS_NOTIFICATION = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
updateWebserverUrls()
|
updateWebserverUrls()
|
||||||
|
|
|
@ -323,11 +323,15 @@ class LiveManager {
|
||||||
await video.save()
|
await video.save()
|
||||||
videoLive.Video = video
|
videoLive.Video = video
|
||||||
|
|
||||||
await federateVideoIfNeeded(video, false)
|
setTimeout(() => {
|
||||||
|
federateVideoIfNeeded(video, false)
|
||||||
|
.catch(err => logger.error('Cannot federate live video %s.', video.url, { err }))
|
||||||
|
|
||||||
|
PeerTubeSocket.Instance.sendVideoLiveNewState(video)
|
||||||
|
}, VIDEO_LIVE.SEGMENT_TIME_SECONDS * 1000 * VIDEO_LIVE.EDGE_LIVE_DELAY_SEGMENTS_NOTIFICATION)
|
||||||
|
|
||||||
PeerTubeSocket.Instance.sendVideoLiveNewState(video)
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.error('Cannot federate video %d.', videoLive.videoId, { err })
|
logger.error('Cannot save/federate live video %d.', videoLive.videoId, { err })
|
||||||
} finally {
|
} finally {
|
||||||
masterWatcher.close()
|
masterWatcher.close()
|
||||||
.catch(err => logger.error('Cannot close master watcher of %s.', outPath, { err }))
|
.catch(err => logger.error('Cannot close master watcher of %s.', outPath, { err }))
|
||||||
|
|
Loading…
Reference in New Issue