Я хотел бы перенаправить звуковой вывод программы в файл, в командной строке, как в
$ redirect-wrapper file.wav my-program
так что
- Я не слышу вывод программы, т.е. вывод должен идти только в файл
- Я не записываю ничего кроме программы, т.е. только эта конкретная программа перенаправляется в файл
- остальная часть аудиосистемы оставлена полностью без помех, параметры конфигурации не изменяются взад и вперед или что-то в этом роде
Есть ли способ сделать это? Этот связанный вопрос не помогает, мне нужно решение командной строки, нет "нажмите там, затем там". Это , вероятно, также связано, но также опирается на графическое приложение pavucontrol. Я нашел терминальную альтернативу pavucontrol, pacmd.
Но это все еще только делает возможным следующий компромисс:
- Получить сток по умолчанию и сохранить то, что было. Как? Вероятно, пролистывая
pacmd list-sinks
- Установите приемник по умолчанию для приемника snd-aloop с помощью
pacmd set-default-sink
. - Запись из этой раковины.
- Запустить приложение
- Подождите, пока приложение не откроет свой вход приемника:
pacmd list-sink-inputs | grep name-of-my-program
если это что-то найдет, вход открыт. - Измените значение по умолчанию обратно на то, что было с
pacmd set-default-sink
. - Остановите запись, как только приложение закроется.
Но это все равно изменяет приемник по умолчанию на промежуток времени до пары минут (вход приемника обычно не открывается, пока программа фактически не воспроизводит звуки, которые не должны быть сразу после запуска). Я реализовал этот компромисс; Github .
Все еще в поисках бескомпромиссных ответов.
debian
command-line
audio
recording
Никто
источник
источник
~/.asoundrc
. Может быть, вы можете избежать этого как-нибудь.pacmd list
показывает, какие источники и приемники подключены к определенным программам, поэтому может быть способ их изменить. Попробуйте задать вопрос по списку pulseaudio по адресу lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss. Сопровождающие и разработчики всегда готовы помочь.Ответы:
Умм, так глядя на документацию по Pulseaudio.
man pulseaudio
У нас есть следующие переменные среды
Надеемся, что это позволит вам полностью заменить приемник pulseaudio, а если этого недостаточно, запустите наш собственный одноразовый сервер pulseaudio.
Обращаясь к этой странице ( /ubuntu/60837/record-a-programs-output-with-pulseaudio ), мы узнаем о команде
parec
/pacat
(они являются псевдонимами), которая может записывать и записывать в приемники и потоки.Собирая это вместе, мы имеем следующую обертку (которую я на самом деле не запускал - хотя я успешно использовал этот метод для работы на специальной основе)
источник