diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-03-23 00:55:10 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-03-23 00:55:10 -0400 |
| commit | 6383768bfecb27a7722894ef425e461397a78627 (patch) | |
| tree | dfc682aa982d8df221d77d31a6030a3a67cad6d4 | |
| parent | 8db212f6bf8e834787949ad84066cab8bf6a898e (diff) | |
force key frame for hls
| -rw-r--r-- | MediaBrowser.Api/Playback/Hls/BaseHlsService.cs | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs b/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs index c27219bbf..578c4a9f1 100644 --- a/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs +++ b/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs @@ -129,9 +129,6 @@ namespace MediaBrowser.Api.Playback.Hls fileText = fileText.Replace(SegmentFilePrefix, "segments/").Replace(".ts", "/stream.ts").Replace(".aac", "/stream.aac").Replace(".mp3", "/stream.mp3"); - // Even though we specify target duration of 9, ffmpeg seems unable to keep all segments under that amount - fileText = fileText.Replace("#EXT-X-TARGETDURATION:9", "#EXT-X-TARGETDURATION:10"); - // It's considered live while still encoding (EVENT). Once the encoding has finished, it's video on demand (VOD). var playlistType = fileText.IndexOf("#EXT-X-ENDLIST", StringComparison.OrdinalIgnoreCase) == -1 ? "EVENT" : "VOD"; @@ -175,7 +172,7 @@ namespace MediaBrowser.Api.Playback.Hls var probeSize = Kernel.Instance.FFMpegManager.GetProbeSizeArgument(state.Item); - return string.Format("{0} {1} -i {2}{3} -threads 0 {4} {5} {6} -f ssegment -segment_list_flags +live -segment_time 9 -segment_list \"{7}\" \"{8}\"", + return string.Format("{0} {1} -i {2}{3} -threads 0 {4} {5} {6} -force_key_frames expr:gte(t,n_forced*5) -f ssegment -segment_list_flags +live -segment_time 10 -segment_list \"{7}\" \"{8}\"", probeSize, GetFastSeekCommandLineParameter(state.Request), GetInputArgument(state.Item, state.IsoMount), |
