aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs')
-rw-r--r--MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs21
1 files changed, 18 insertions, 3 deletions
diff --git a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
index 6657bf6de..a098d26da 100644
--- a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
+++ b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
@@ -342,7 +342,7 @@ namespace MediaBrowser.Api.Playback.Hls
AppendPlaylist(builder, playlistUrl, totalBitrate);
- if (state.VideoRequest.VideoBitRate.HasValue)
+ if (EnableAdaptiveBitrateStreaming(state))
{
var requestedVideoBitrate = state.VideoRequest.VideoBitRate.Value;
@@ -360,6 +360,17 @@ namespace MediaBrowser.Api.Playback.Hls
return builder.ToString();
}
+ private bool EnableAdaptiveBitrateStreaming(StreamState state)
+ {
+ if (string.IsNullOrWhiteSpace(state.MediaPath))
+ {
+ // Opening live streams is so slow it's not even worth it
+ return false;
+ }
+
+ return state.VideoRequest.VideoBitRate.HasValue;
+ }
+
private void AppendPlaylist(StringBuilder builder, string url, int bitrate)
{
builder.AppendLine("#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=" + bitrate.ToString(UsCulture));
@@ -368,8 +379,8 @@ namespace MediaBrowser.Api.Playback.Hls
private int GetBitrateVariation(int bitrate)
{
- // By default, vary by just 200k
- var variation = 200000;
+ // By default, vary by just 100k
+ var variation = 100000;
if (bitrate >= 10000000)
{
@@ -391,6 +402,10 @@ namespace MediaBrowser.Api.Playback.Hls
{
variation = 300000;
}
+ else if (bitrate >= 600000)
+ {
+ variation = 200000;
+ }
return variation;
}