From 899a1b24f7725e44e3967ed1a6ea9a484b5ceeea Mon Sep 17 00:00:00 2001 From: Jordan Koehn Date: Mon, 15 Jun 2020 00:10:06 +0000 Subject: [PATCH] Add plex option to control downmix audio boost. Also fix request for audio channel limitation, was missing a & in the request --- index.js | 1 + src/api.js | 1 + src/plexTranscoder.js | 7 +++---- web/directives/plex-settings.js | 7 +++++++ web/public/templates/plex-settings.html | 6 ++++++ 5 files changed, 18 insertions(+), 4 deletions(-) diff --git a/index.js b/index.js index 0a2e835..0be591b 100644 --- a/index.js +++ b/index.js @@ -129,6 +129,7 @@ function initDB(db) { videoCodecs: 'h264,hevc,mpeg2video', audioCodecs: 'ac3,aac,mp3', maxAudioChannels: '6', + audioBoost: '100', enableSubtitles: false, subtitleSize: '100', updatePlayStatus: false, diff --git a/src/api.js b/src/api.js index 94b58f9..158cc5f 100644 --- a/src/api.js +++ b/src/api.js @@ -98,6 +98,7 @@ function api(db, xmltvInterval) { videoCodecs: 'h264,hevc,mpeg2video', audioCodecs: 'ac3,aac,mp3', maxAudioChannels: '6', + audioBoost: '100', enableSubtitles: false, subtitleSize: '100', updatePlayStatus: false, diff --git a/src/plexTranscoder.js b/src/plexTranscoder.js index 039ea08..a9be5cf 100644 --- a/src/plexTranscoder.js +++ b/src/plexTranscoder.js @@ -54,7 +54,6 @@ class PlexTranscoder { let streamContainer = "mpegts" // Other option is mkv, mkv has the option of copying it's subs for later processing let videoQuality=`100` // Not sure how this applies, maybe this works if maxVideoBitrate is not set - let audioBoost=`100` // only applies when downmixing to stereo I believe, add option later? let profileName=`Generic` // Blank profile, everything is specified through X-Plex-Client-Profile-Extra let resolutionArr = resolution.split("x") @@ -69,9 +68,9 @@ add-limitation(scope=videoCodec&scopeName=*&type=upperBound&name=video.height&va this.settings.audioCodecs.split(",").forEach(function (codec) { clientProfile+=`+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=${this.settings.streamProtocol}&audioCodec=${codec})` if (codec == "mp3") { - clientProfile+=`+add-limitation(scope=videoAudioCodec&scopeName=${codec}type=upperBound&name=audio.channels&value=2)` + clientProfile+=`+add-limitation(scope=videoAudioCodec&scopeName=${codec}&type=upperBound&name=audio.channels&value=2)` } else { - clientProfile+=`+add-limitation(scope=videoAudioCodec&scopeName=${codec}type=upperBound&name=audio.channels&value=${this.settings.maxAudioChannels})` + clientProfile+=`+add-limitation(scope=videoAudioCodec&scopeName=${codec}&type=upperBound&name=audio.channels&value=${this.settings.maxAudioChannels})` } }.bind(this)); @@ -98,7 +97,7 @@ directPlay=0&\ directStream=1&\ directStreamAudio=1&\ copyts=1&\ -audioBoost=${audioBoost}&\ +audioBoost=${this.settings.audioBoost}&\ mediaBufferSize=${mediaBufferSize}&\ session=${this.session}&\ offset=${this.currTimeS}&\ diff --git a/web/directives/plex-settings.js b/web/directives/plex-settings.js index 17e9f01..ca2a464 100644 --- a/web/directives/plex-settings.js +++ b/web/directives/plex-settings.js @@ -76,6 +76,13 @@ module.exports = function (plex, pseudotv, $timeout) { {id:"http",description:"HTTP"}, {id:"hls",description:"HLS"} ]; + scope.audioBoostOptions=[ + {id:"100",description:"None"}, + {id:"120",description:"Small"}, + {id:"140",description:"Medium"}, + {id:"160",description:"Large"}, + {id:"180",description:"Huge"} + ]; } }; } diff --git a/web/public/templates/plex-settings.html b/web/public/templates/plex-settings.html index ebc3cb5..2176cae 100644 --- a/web/public/templates/plex-settings.html +++ b/web/public/templates/plex-settings.html @@ -84,6 +84,12 @@ ng-options="o.id as o.description for o in maxAudioChannelsOptions" ria-describedby="maxAudioChannelsHelp"/> Note: 7.1 audio and on some clients, 6.1, is known to cause playback issues. +
+ +