Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Limit audio channels to 6 in video transcoding profile #4037

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ class ExoPlayerProfile(
protocol = "hls"
copyTimestamps = false
enableSubtitlesInManifest = true
maxAudioChannels = "6"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is a proper fix. This will limit all transcodes to 6 channels, even when it's just the video codec that is not supported or subtitles need to be burned. While with direct play it will still go to up to 8 channels according to the downMixAudio preference.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It may be worth noting that, with the nature of this bug, Direct Play of both video+audio actually plays the 8-channel audio without error.

Media where only the video is being transcoded is uniquely affected.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The sever already limits transcodes to 6 channels. This is saying if the video for 8 channel media is being transcoded, then the audio should also be transcoded. There is no issue with direct play so that is the desired effect. I haven't considered brunt subtitles, will test that out.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Burnt in subtitles had the same effect as lowering the bitrate, the video playback was unwatchable due to low framerates on 8 channel EAC3 media and playback failure on 8 channel AAC media.

For TrueHD and DTS (HD/MA/X) 7.1 the server automatically transcodes the audio when the video is transcoded by either lowering the bitrate or by burning in subs.

Stream #0:1(eng): Audio: truehd (Dolby TrueHD + Dolby Atmos), 48000 Hz, 7.1, s32 (24 bit)
Stream mapping:
  Stream #0:0 (hevc) -> setparams:default (graph 0)
  format:default (graph 0) -> Stream #0:0 (hevc_amf)
  Stream #0:1 -> #0:1 (truehd (native) -> aac (libfdk_aac))
 
  Stream #0:0: Video: hevc (hvc1 / 0x31637668), d3d11(tv, bt709, progressive)...
  Stream #0:1: Audio: aac, 48000 Hz, 5.1, s16, 640 kb/s
Stream #0:1(eng): Audio: dts (DTS-HD MA + DTS:X IMAX), 48000 Hz, 7.1, s32p (24 bit) (default)
Stream mapping:
  Stream #0:0 (hevc) -> setparams:default (graph 0)
  format:default (graph 0) -> Stream #0:0 (hevc_amf)
  Stream #0:1 -> #0:1 (dts (dca) -> aac (libfdk_aac))

  Stream #0:0: Video: hevc (hvc1 / 0x31637668), d3d11(tv, bt709, progressive)...
  Stream #0:1: Audio: aac, 48000 Hz, 5.1, s16, 640 kb/s (default)

So this PR would only change the behavior for transcoded AAC and EAC3 8 channel media and it would align with what the server is already doing to TrueHD and DTS (HD/MA/X) media.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Concur with @MichaelRUSF on embedded subs. (Just came to report my testing, but he beat me to it)

I just tested a AAC 7.1 + VOBSUB file. It could only be played when transcoding both video & audio. Direct Play of video+audio fails due to sub burn-in.

},
// MP3 audio profile
TranscodingProfile().apply {
Expand Down
Loading