Ігнорування стандартів
О, той жахливий, омануючий потік. The Стандарт ATSC A / 52A (AC-3) (див. розділи 6.1.12 і 7.8, а також цей пост pandy ) надає детальну інформацію про те, як має відбуватися правильне перемикання для AC-3.
Зауважте, що канал низьких частотних ефектів (LFE) може бути опущений при змішуванні, і я вважаю, що це таке ffmpeg робить.
Зміна методу зниження за замовчуванням
Якщо ви хочете змінити метод downmix, то спробуйте пропозиція панді в одному потоці:
-af aformat=sample_fmts=fltp:channel_layouts=downmix
Я не перевірив це, тому я не впевнений, що він буде робити те, що ви хочете.
Крім того, дослідіть -dmix_mode приватний варіант. Подивитися ffmpeg -h encoder=ac3.
VBR
The -vbr опція використовується як "приватний" варіант кодування для деяких кодерів, а не як глобальний варіант:
Приватні параметри специфічні для даного контейнера, пристрою або кодека.
Ці параметри перелічені під відповідними контейнерами / пристроями / кодеками.
... що означає використання цього варіанту і те, що він робить, може змінюватися залежно від кодера; якщо кодер навіть підтримує цю опцію (див ffmpeg -h encoder=<encoder name> ). Інші аудіокодери можуть використовувати -qscale:a (або -q:a ) для VBR.
Кодер ac3 ігнорує обидва -vbr і -qscale:a / -q:a.