|
@@ -104,7 +104,7 @@ namespace MediaBrowser.Api.Playback.Hls
|
|
|
throw;
|
|
|
}
|
|
|
|
|
|
- var waitForSegments = state.SegmentLength >= 10 ? 2 : 3;
|
|
|
+ var waitForSegments = state.SegmentLength >= 10 ? 2 : (state.SegmentLength > 3 || !isLive ? 3 : 4);
|
|
|
await WaitForMinimumSegmentCount(playlist, waitForSegments, cancellationTokenSource.Token).ConfigureAwait(false);
|
|
|
}
|
|
|
}
|
|
@@ -128,10 +128,9 @@ namespace MediaBrowser.Api.Playback.Hls
|
|
|
var audioBitrate = state.OutputAudioBitrate ?? 0;
|
|
|
var videoBitrate = state.OutputVideoBitrate ?? 0;
|
|
|
|
|
|
- var appendBaselineStream = false;
|
|
|
var baselineStreamBitrate = 64000;
|
|
|
|
|
|
- var playlistText = GetMasterPlaylistFileText(playlist, videoBitrate + audioBitrate, appendBaselineStream, baselineStreamBitrate);
|
|
|
+ var playlistText = GetMasterPlaylistFileText(playlist, videoBitrate + audioBitrate, baselineStreamBitrate);
|
|
|
|
|
|
job = job ?? ApiEntryPoint.Instance.OnTranscodeBeginRequest(playlist, TranscodingJobType);
|
|
|
|
|
@@ -161,7 +160,7 @@ namespace MediaBrowser.Api.Playback.Hls
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private string GetMasterPlaylistFileText(string firstPlaylist, int bitrate, bool includeBaselineStream, int baselineStreamBitrate)
|
|
|
+ private string GetMasterPlaylistFileText(string firstPlaylist, int bitrate, int baselineStreamBitrate)
|
|
|
{
|
|
|
var builder = new StringBuilder();
|
|
|
|
|
@@ -175,14 +174,6 @@ namespace MediaBrowser.Api.Playback.Hls
|
|
|
var playlistUrl = "hls/" + Path.GetFileName(firstPlaylist).Replace(".m3u8", "/stream.m3u8");
|
|
|
builder.AppendLine(playlistUrl);
|
|
|
|
|
|
- // Low bitrate stream
|
|
|
- if (includeBaselineStream)
|
|
|
- {
|
|
|
- builder.AppendLine("#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=" + baselineStreamBitrate.ToString(UsCulture));
|
|
|
- playlistUrl = "hls/" + Path.GetFileName(firstPlaylist).Replace(".m3u8", "-low/stream.m3u8");
|
|
|
- builder.AppendLine(playlistUrl);
|
|
|
- }
|
|
|
-
|
|
|
return builder.ToString();
|
|
|
}
|
|
|
|