diff options
| author | nyanmisaka <nst799610810@gmail.com> | 2021-12-25 00:33:17 +0800 |
|---|---|---|
| committer | nyanmisaka <nst799610810@gmail.com> | 2021-12-25 00:33:17 +0800 |
| commit | 728a5988b3801dc559efbaf278e1a75770884faf (patch) | |
| tree | bf48cbc6a85fbd96ddaf65d7ccf28ee78f6b385e /MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs | |
| parent | 7db753d2471e6c8e0b003c75c1d40fc7b2f396da (diff) | |
| parent | 2e7d173188cc755ed56b8a45e3b18206afdc4b91 (diff) | |
Merge remote-tracking branch 'origin/master' into hwa
Diffstat (limited to 'MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs')
| -rw-r--r-- | MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs index 1da578462..c139d9d40 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs @@ -883,6 +883,11 @@ namespace MediaBrowser.Controller.MediaEncoding arg.Append(" -i file:\"").Append(subtitlePath).Append('\"'); } + if (state.AudioStream != null && state.AudioStream.IsExternal) + { + arg.Append(" -i \"").Append(state.AudioStream.Path).Append('"'); + } + return arg.ToString(); } @@ -2209,10 +2214,24 @@ namespace MediaBrowser.Controller.MediaEncoding if (state.AudioStream != null) { - args += string.Format( - CultureInfo.InvariantCulture, - " -map 0:{0}", - state.AudioStream.Index); + if (state.AudioStream.IsExternal) + { + int externalAudioMapIndex = state.SubtitleStream != null && state.SubtitleStream.IsExternal ? 2 : 1; + int externalAudioStream = state.MediaSource.MediaStreams.Where(i => i.Path == state.AudioStream.Path).ToList().IndexOf(state.AudioStream); + + args += string.Format( + CultureInfo.InvariantCulture, + " -map {0}:{1}", + externalAudioMapIndex, + externalAudioStream); + } + else + { + args += string.Format( + CultureInfo.InvariantCulture, + " -map 0:{0}", + state.AudioStream.Index); + } } else { |
