diff options
Diffstat (limited to 'MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs')
| -rw-r--r-- | MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs | 16 |
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, |
