Resposta parcial (não testada):
Assim, o principal problema parece ser que você está preso a uma conexão S / PDIF óptica / coaxial por algum motivo, que não tem largura de banda suficiente (na verdade, como você diz, nem sequer tem largura de banda suficiente para mais de dois canais de áudio não compactados, a variante 5.1 já está compactada).
Posso confirmar que ffmpeg
não suporta a codificação de mais de 6 canais, analisando o código para DTS ou AC3 . Se ffmpeg
não suporta, acho que não existem ferramentas prontas para Linux que o suportem.
Analisando como DTS-ES e Dolby Digital EX trabalho, pode-se ver que todos eles não oferecem um canal independente adicional, mas sim mix (ou "matriz") o canal do centro de trás para os outros canais de alguma forma, e definir um sinalizador especial para o modo 6.1 no fluxo de dados digitais. O codificador então tem que separar os canais novamente, o que (por causa da perda de informações) nem sempre é possível, e pode levar a artefatos de som, dependendo do material de origem.
(A possível exceção é "DTS-ES Discrete 6.1", que afirma ter um canal real separado além da codificação da matriz, mas não está claro como este canal é codificado, e como Supõe-se que ele se ajuste à largura de banda S / PDIF limitada, se transportado via S / PDIF, portanto, é bastante provável que a separação exista apenas no material de origem e seja perdida no S / PDIF, de qualquer forma).
Portanto, há dois problemas: como ativar o sinalizador 6.1 no fluxo de dados e como misturar o canal extra nos canais existentes. Felizmente, o seu Sony STR-DE895 parece ter um modo SB DEC [MATRIX]
( manual página 32), que ignora o sinalizador e sempre aplica a matriz do decodificador Dolby Digital EX, independentemente do sinalizador. Assim, isso resolve o primeiro problema sem ter que modificar, e. ffmpeg
código-fonte.
Não consegui encontrar informações exatas sobre os coeficientes dessa matriz, mas como ela é "semelhante à prática do formato Pro-Logic anterior da Dolby", que simplesmente adiciona o canal central à esquerda e à direita após diminuí-la por 3 dB (fator 0,5), na primeira aproximação eu tentaria o mesmo para os canais anteriores usando o ffmpeg
pan filter, codifique isso como ac3
e veja se o resultado é aceitável.
Supondo que isso funcione, uma solução a longo prazo seria cortar o plugin ALSA A52 para suportar esse tipo de mixagem internamente, assim você teria um verdadeiro dispositivo ALSA de 6.1 canais. Você pode usar isso para reproduzir uma fonte 6.1 em qualquer formato, sem ter que passar pelas contorções de recodificação do material de origem.
Outra abordagem completamente diferente (e eu recomendo tentar isso, e fazer uma comparação de escuta para ter uma ideia sobre a diferença de qualidade e possível presença de artefatos de som) é usar o campo Multi Ch In 1
no a Sony, junto com uma boa placa de som 7.1 analógica (se você tiver uma, ou pode emprestar uma). Isso fornecerá a verdadeira separação de canais, mas, é claro, agora usará os conversores D / A da placa de som, e não da Sony.