From 6bb40498db36dcdede16742fc944468c954dae76 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Fri, 1 May 2020 13:11:34 +0300 Subject: [PATCH] =?utf8?q?=D0=9A=D0=BE=D0=B4=D0=B8=D1=80=D0=BE=D0=B2=D0=B0?= =?utf8?q?=D0=BD=D0=B8=D0=B5=205.1=20=D0=B7=D0=B2=D1=83=D0=BA=D0=B0=20?= =?utf8?q?=D1=84=D0=B8=D0=BB=D1=8C=D0=BC=D0=B0=20=D0=B2=20Opus?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Если сделать дамп аудио ffmpeg-ом (теперь только им занимаюсь темой кодирования!) в PCM файл, потом его сжать opusenc-ом, то после сведения в контейнер с видео, каналы явно на слух становятся другими, перетасоваными. С ходу у меня так и не получилось ffmpeg заставить дампить в другом виде (перевернуть, чтобы после Opus-а всё встало на свои места). С ходу я не очень понял как конкретно они тасуются, чтобы каким-нибудь sox-ом поменять их вручную местами. Но потом плюнул и вспомнил что FFmpeg же может родной libopus использовать для кодирования. Немного шаманства каналами всё равно придётся сделать, но кодирует он теперь без проблем в нужном порядке: -filter:a "channelmap=channel_layout=5.1" -mapping_family 1 При этом Opus определяет (и вне FFmpeg) что четыре канала типа полноценных, а два не особо и применяет какую-то оптимизацию: в итоге оно существенно экономит битрейт для двух каналов. -- 2.48.1