From 4999b47b475d248a2e3fa43352bf6057bcb40d9d Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 12 Dec 2015 02:05:36 -0500 Subject: [PATCH] update transcoding for chrome --- .../Playback/BaseStreamingService.cs | 13 ++++++++++++- .../Playback/Progressive/VideoService.cs | 17 +++++++++++++---- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs index eacd7999ce..64862da601 100644 --- a/MediaBrowser.Api/Playback/BaseStreamingService.cs +++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs @@ -2178,7 +2178,18 @@ namespace MediaBrowser.Api.Playback inputModifier += " " + videoDecoder; } - //inputModifier += " -noaccurate_seek"; + if (state.VideoRequest != null) + { + var videoCodec = GetVideoEncoder(state); + // See if we can save come cpu cycles by avoiding encoding + if (string.Equals(videoCodec, "copy", StringComparison.OrdinalIgnoreCase)) + { + if (string.Equals(state.OutputContainer, "mkv", StringComparison.OrdinalIgnoreCase)) + { + inputModifier += " -noaccurate_seek"; + } + } + } return inputModifier; } diff --git a/MediaBrowser.Api/Playback/Progressive/VideoService.cs b/MediaBrowser.Api/Playback/Progressive/VideoService.cs index 519bfa8d8c..46830384de 100644 --- a/MediaBrowser.Api/Playback/Progressive/VideoService.cs +++ b/MediaBrowser.Api/Playback/Progressive/VideoService.cs @@ -136,11 +136,20 @@ namespace MediaBrowser.Api.Playback.Progressive } // See if we can save come cpu cycles by avoiding encoding - if (codec.Equals("copy", StringComparison.OrdinalIgnoreCase)) + if (string.Equals(codec, "copy", StringComparison.OrdinalIgnoreCase)) { - return state.VideoStream != null && IsH264(state.VideoStream) && string.Equals(state.OutputContainer, "ts", StringComparison.OrdinalIgnoreCase) ? - args + " -bsf:v h264_mp4toannexb" : - args; + if (string.Equals(state.OutputContainer, "mkv", StringComparison.OrdinalIgnoreCase)) + { + //args += " -copyts -avoid_negative_ts disabled -start_at_zero"; + } + + if (state.VideoStream != null && IsH264(state.VideoStream) && + (string.Equals(state.OutputContainer, "ts", StringComparison.OrdinalIgnoreCase) || string.Equals(state.OutputContainer, "mkv", StringComparison.OrdinalIgnoreCase))) + { + args += " -bsf:v h264_mp4toannexb"; + } + + return args; } var keyFrameArg = string.Format(" -force_key_frames expr:gte(t,n_forced*{0})",