aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2016-10-17 12:32:57 -0400
committerGitHub <noreply@github.com>2016-10-17 12:32:57 -0400
commitfb9db5c3c36eca578369cb398c36efd6a15bbea9 (patch)
tree98e41f78dd5d7c474ce763157eb3503a165088ed /MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
parentf8a248ffd805b810e90bc5ec0619e53f49ebcae5 (diff)
parentb0147c32f9122c6ce695d2919176ed8b50b94fda (diff)
Merge pull request #2240 from MediaBrowser/beta
Beta
Diffstat (limited to 'MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs')
-rw-r--r--MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs16
1 files changed, 11 insertions, 5 deletions
diff --git a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
index 51455c141..270b068fd 100644
--- a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
+++ b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
@@ -885,14 +885,17 @@ namespace MediaBrowser.Api.Playback.Hls
}
var mapArgs = state.IsOutputVideo ? GetMapArgs(state) : string.Empty;
+ var enableSplittingOnNonKeyFrames = state.VideoRequest.EnableSplittingOnNonKeyFrames && string.Equals(state.OutputVideoCodec, "copy", StringComparison.OrdinalIgnoreCase);
+ enableSplittingOnNonKeyFrames = false;
- var enableGenericSegmenter = false;
+ // TODO: check libavformat version for 57 50.100 and use -hls_flags split_by_time
+ var hlsProtocolSupportsSplittingByTime = false;
- if (enableGenericSegmenter)
+ if (enableSplittingOnNonKeyFrames && !hlsProtocolSupportsSplittingByTime)
{
var outputTsArg = Path.Combine(Path.GetDirectoryName(outputPath), Path.GetFileNameWithoutExtension(outputPath)) + "%d" + GetSegmentFileExtension(state);
- return string.Format("{0} {10} {1} -map_metadata -1 -threads {2} {3} {4} {5} -f segment -max_delay 5000000 -avoid_negative_ts disabled -start_at_zero -segment_time {6} -segment_format mpegts -segment_list_type m3u8 -segment_start_number {7} -segment_list \"{8}\" -y \"{9}\"",
+ return string.Format("{0} {10} {1} -map_metadata -1 -threads {2} {3} {4} {5} -f segment -max_delay 5000000 -avoid_negative_ts disabled -start_at_zero -segment_time {6} -break_non_keyframes 1 -segment_format mpegts -segment_list_type m3u8 -segment_start_number {7} -segment_list \"{8}\" -y \"{9}\"",
inputModifier,
GetInputArgument(state),
threads,
@@ -907,8 +910,10 @@ namespace MediaBrowser.Api.Playback.Hls
).Trim();
}
- // TODO: check libavformat version for 57 50.100 and use -hls_flags split_by_time
- return string.Format("{0}{11} {1} -map_metadata -1 -threads {2} {3} {4}{5} {6} -max_delay 5000000 -avoid_negative_ts disabled -start_at_zero -hls_time {7} -start_number {8} -hls_list_size {9} -y \"{10}\"",
+ var splitByTime = hlsProtocolSupportsSplittingByTime && enableSplittingOnNonKeyFrames;
+ var splitByTimeArg = splitByTime ? " -hls_flags split_by_time" : "";
+
+ return string.Format("{0}{12} {1} -map_metadata -1 -threads {2} {3} {4}{5} {6} -max_delay 5000000 -avoid_negative_ts disabled -start_at_zero -hls_time {7}{8} -start_number {9} -hls_list_size {10} -y \"{11}\"",
inputModifier,
GetInputArgument(state),
threads,
@@ -917,6 +922,7 @@ namespace MediaBrowser.Api.Playback.Hls
timestampOffsetParam,
GetAudioArguments(state),
state.SegmentLength.ToString(UsCulture),
+ splitByTimeArg,
startNumberParam,
state.HlsListSize.ToString(UsCulture),
outputPath,