De “fall through”-aanpak was het eerste waar ik naar keek, direct nadat ik mijn bericht had geplaatst. Het is interessant en best handig omdat je hiermee je instellingen per formaat kunt isoleren. Helaas is dat niet echt wat ik nodig heb.
Mijn probleem is dat dezelfde codec/formaat in meerdere smaken van kanalen voorkomt. Bij Atmos of DTS is het vrijwel zeker dat het geluid niet 2.0 zal zijn, maar bij EAC3, AC3 of zelfs AAC of Flac kan het zowel 2.0 als 5.1 zijn. Dus ik kan door de profielvolgorde gaan totdat ik er een voor bijvoorbeeld AAC tegenkom, maar dan heb ik geen manier om te vertellen of het AAC 2.0 of 5.1 is, enz. In wezen is het isoleren van een codec niet wat ik nodig heb. Ik moet uitzoeken of de stream 2.0 of surround is, en MCEBuddy de instellingen automatisch laten aanpassen.
MCEBuddy heeft een ingebouwd mechanisme om het 2.0 versus 5.1-probleem op te lossen, maar het werkt alleen met AC3. Bijvoorbeeld, ik heb hetzelfde profiel dat jij hierboven plaatste genomen en de ffmpeg-audio naar 192 gezet, omdat dat beter geschikt is dan 384 voor stereogeluid.
order=handbrake,ffmpeg
handbrake-unsupported=dts
handbrake-audio=-E copy
handbrake-audioac3=-E copy
ffmpeg-audio=-acodec ac3 -ab 192k
ffmpeg-audioac3=-acodec ac3 -ab 384k
Als ik deze instellingen gebruik en er een EAC3 5.1-bestand instop, produceert het een bestand met 192k-audio. Als het uitvoerformaat op AAC was ingesteld, zou het 256k-audio produceren, enz.
Hetzelfde geldt voor AAC 2.0 versus 5.1, enz. AC3 werkt zoals verwacht, omdat de logica daarvoor al ingebouwd is en het zal een 192 2.0 of 384 5.1 produceren. Met alles behalve AC3 wordt de ffmpeg-audioac3-regel/opdracht volledig genegeerd en heeft het geen effect op de conversie; alleen de ffmpeg-audio-regel wordt door MCEBuddy gebruikt. Als je het vakje voor surroundgeluid in de GUI hebt aangevinkt, zal MCEBuddy een -6ch-vlag aan de ffmpeg-audio-regel doorgeven en die als je surroundinstellingen behandelen.
In mijn voorbeeld gebruikte ik 192k voor de 2.0-uitvoer en 384 voor de 5.1-uitvoer. Aangezien AAC geen AC3 is, zal MCEBuddy de regel ffmpeg-audioac3=-acodec ac3 -ab 384k negeren en de instellingen van ffmpeg-audio=-acodec ac3 -ab 192k gebruiken. Als ik in de GUI heb aangevinkt dat ik surround wil, zal het de -6ch-vlag doorgeven en eindig ik met iets als ffmpeg-audio=-acodec ac3 -ab 192k -6ch. Als mijn uitvoer ook AAC is, schakelt een soort interne failsafe in zodra de conversie begint, die geen 5.1-mix op 192k toestaat. Het verhoogt automatisch de bitrate naar 256 (het minimum voor AAC 5.1). Dus uiteindelijk krijg ik een 256k 5.1-bestand. Ik weet niet zeker of het hetzelfde doet voor andere formaten.
Idealiter zou het geweldig zijn als de ffmpeg-audioac3 als catch-all-instelling voor alle surround zou werken, niet alleen AC3, terwijl ffmpeg-audio dan alle 2.0-mix zou afhandelen. Maar die functie is er gewoon niet. Een workaround vinden is tot nu toe een uitdaging gebleken.