FFMPEG: потоковый микрофон с 32 каналами через RTP

#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 ..."