09.06.2026

Появилась следующая задача:

  • На колонки идёт трансляция аудио с Интернета через браузер. Средств записи приложение не предоставляет.
  • Необходимо записать звук этой трансляции в файл.
  • Linux Devuan 6.1, микшер звуковых потоков - pulseaudio.

Решение:

  • Команда pactl даёт:

    $ pactl list sources

    Источник №0
            Состояние: SUSPENDED
            ......

    Источник №1
            Состояние: RUNNING
            Имя: alsa_output.pci-0000_00_1f.3.analog-stereo.monitor
            Описание: Monitor of Встроенное аудио Аналоговый стерео
            Драйвер: module-alsa-card.c
            Спецификация отсчётов: s16le 2-канальный 4410
            Схема каналов: front-left,front-right
            ......

  • Исходя из результата команды для записи потока надо использовать устройство:
    alsa_output.pci-0000_00_1f.3.analog-stereo.monitor

  • Пишу звук с помощью ffmpeg:
    ffmpeg -f pulse -i  alsa_output.pci-0000_00_1f.3.analog-stereo.monitor -ac  2  audiofile.mp3

    ключ -ac 2 указывает, что пишется 2 канала.

 

При записи можно поиграться скоростью и качеством. Например, ключи ffmpeg:

-codec:a  libmp3lame  -qscale:a  4

позволят уменьшить размер файла при меньшем качестве.
Параметр за ключом -qscale:a может быть от 0 до 9, где 0 - максимальное качество, 9 - минимальное.

Также можно задать постоянный битрейт:

-b:a 96k