|
@@ -1967,10 +1967,15 @@ namespace MediaBrowser.Api.Playback
|
|
|
state.OutputVideoCodec = state.VideoRequest.VideoCodec;
|
|
|
state.OutputVideoBitrate = GetVideoBitrateParamValue(state.VideoRequest, state.VideoStream, state.OutputVideoCodec);
|
|
|
|
|
|
- if (state.OutputVideoBitrate.HasValue)
|
|
|
+ if (videoRequest != null)
|
|
|
+ {
|
|
|
+ TryStreamCopy(state, videoRequest);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (state.OutputVideoBitrate.HasValue && !string.Equals(state.OutputVideoCodec, "copy", StringComparison.OrdinalIgnoreCase))
|
|
|
{
|
|
|
var resolution = ResolutionNormalizer.Normalize(
|
|
|
- state.VideoStream == null ? (int?)null : state.VideoStream.BitRate,
|
|
|
+ state.VideoStream == null ? (int?) null : state.VideoStream.BitRate,
|
|
|
state.OutputVideoBitrate.Value,
|
|
|
state.VideoStream == null ? null : state.VideoStream.Codec,
|
|
|
state.OutputVideoCodec,
|
|
@@ -1980,13 +1985,12 @@ namespace MediaBrowser.Api.Playback
|
|
|
videoRequest.MaxWidth = resolution.MaxWidth;
|
|
|
videoRequest.MaxHeight = resolution.MaxHeight;
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- ApplyDeviceProfileSettings(state);
|
|
|
-
|
|
|
- if (videoRequest != null)
|
|
|
+ ApplyDeviceProfileSettings(state);
|
|
|
+ }
|
|
|
+ else
|
|
|
{
|
|
|
- TryStreamCopy(state, videoRequest);
|
|
|
+ ApplyDeviceProfileSettings(state);
|
|
|
}
|
|
|
|
|
|
state.OutputFilePath = GetOutputFilePath(state);
|