#bash #ffmpeg #merge #channels
#bash #ffmpeg #объединение #Каналы
Вопрос:
Я хочу транслировать микрофон с 32 каналами (аудиоинтерфейс / микшер) в виде монофонического звука через RTP с помощью ffmpeg.
В настоящее время я использую это:
ffmpeg -f avfoundation -v info -i ":${DEVICE}" -map "0:a:0"
-acodec libopus -ab 48k -ac 1 -ar 48000
-f tee "[select=a:f=rtp:ssrc=1111:payload_type=100]rtp://0.0.0.0:49386?rtcpport=59871"
И я получаю устройства с:
ffmpeg -list_devices true -f avfoundation -i ""
Он отлично работает для устройств с нормальным количеством каналов. Но для устройства с 32 каналами я получаю следующую ошибку:
[auto_resampler_0 @ 0x7fc6f7d1d340] [SWR @ 0x7fc6fa4f8000] Rematrix is needed between 64 channels and mono but there is not enough information to do it
[auto_resampler_0 @ 0x7fc6f7d1d340] Failed to configure output pad on auto_resampler_0
После нескольких попыток с channelmap, я думаю, ошибка начинается с 9 каналов или более. Возможно ли вообще объединить 32 канала с ffmpeg и отправить микрофон в виде моно через RTP?
Комментарии:
1. аудитория, посвященная обработке сигналов , с большей вероятностью столкнется с проблемой такого уровня. Перекрестный постинг не одобряется, поэтому изучите его, и если он покажется подходящим, опубликуйте там и удалите это. Удачи.
Ответ №1:
Я сам нашел решение. Вы можете использовать фильтр панорамирования из ffmpeg, например:
-filter_complex "pan=1c|c0=c1 c2 c3 ..."