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 канала.
При записи или после неё можно поиграться скоростью, качеством, уровнем громкости, обрезать файл.
Приведу конкретные ключи, которыми пользовался для получения записи нужной длины, качества, громкости:
- Вырезать из записи нужный кусок, начиная с 4-й секунды по 31:13
ffmpeg -ss 00:00:04 -to 00:31:13 -i input.mp3 -c copy output.mp3 - Увеличить громкость в 2.3 раза:
ffmpeg -i input.mp3 -filter:a "volume=2.3" output.mp3 - Уменьшить размер выходного файла за счёт уменьшения качество
ffmpeg -i input.mp3 -codec:a libmp3lame -qscale:a 5 output.mp3
Параметр за ключом
-qscale:aможет быть от 0 до 9, где 0 - максимальное качество, 9 - минимальное. - Объединить аудиофайлы в один:
ffmpeg -i "concat:file.mp3|file2.mp3|file3.mp3" -acodec copy unitedfile.mp3