|
@@ -1975,7 +1975,7 @@ namespace MediaBrowser.Api.Playback
|
|
|
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,
|
|
@@ -2692,17 +2692,27 @@ namespace MediaBrowser.Api.Playback
|
|
|
//inputModifier += " -noaccurate_seek";
|
|
|
}
|
|
|
|
|
|
- var videoStream = state.VideoStream;
|
|
|
- if (videoStream != null && !string.IsNullOrWhiteSpace(videoStream.Codec))
|
|
|
+ foreach (var stream in state.MediaSource.MediaStreams)
|
|
|
{
|
|
|
- inputModifier += " -codec:0 " + videoStream.Codec;
|
|
|
-
|
|
|
- var audioStream = state.AudioStream;
|
|
|
- if (audioStream != null && !string.IsNullOrWhiteSpace(audioStream.Codec))
|
|
|
+ if (!stream.IsExternal && stream.Type != MediaStreamType.Subtitle)
|
|
|
{
|
|
|
- inputModifier += " -codec:1 " + audioStream.Codec;
|
|
|
+ if (!string.IsNullOrWhiteSpace(stream.Codec) && stream.Index != -1)
|
|
|
+ {
|
|
|
+ inputModifier += " -codec:" + stream.Index.ToString(UsCulture) + " " + stream.Codec;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ //var videoStream = state.VideoStream;
|
|
|
+ //if (videoStream != null && !string.IsNullOrWhiteSpace(videoStream.Codec))
|
|
|
+ //{
|
|
|
+ // inputModifier += " -codec:0 " + videoStream.Codec;
|
|
|
+
|
|
|
+ // var audioStream = state.AudioStream;
|
|
|
+ // if (audioStream != null && !string.IsNullOrWhiteSpace(audioStream.Codec))
|
|
|
+ // {
|
|
|
+ // inputModifier += " -codec:1 " + audioStream.Codec;
|
|
|
+ // }
|
|
|
+ //}
|
|
|
}
|
|
|
|
|
|
return inputModifier;
|