Запись звука с PulseAudio

Каждый PulseAudio «Sink» имеет «Source» именуемый «monitor». Это позволяет присоединится к вашему Sink и делать с ним все что пожелаете, например, записывать звук который идет через PulseAudio в любой момент. Это очень удобно для, к примеру, PubQuiz-style клипов и печен, фильмов, и так далее.

Вот скрипт который позволяет найти и подключиться к Sink, записывать с него, и записывать в WAV:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash
WAV="$1"
if [ -z "$WAV" ]; then
echo "Usage: $0 OUTPUT.WAV" >&2
exit 1
fi
rm -f "$WAV"

# Get sink monitor:
MONITOR=$(pactl list | grep -A1 '^\*\*\* Source #' | \
grep '^Name: .*\.monitor$' | cut -d" " -f2 | tail -n1)

# Record it raw, and convert to a wav
echo "Recording to $WAV ..."
echo "Close this window to stop"
parec -d "$MONITOR" | sox -t raw -r 44k -sLb 16 -c 2 - "$WAV"

Тэги: , ,

Эта запись была оставлена Понедельник, апреля 20, 2009 в 23:39 и относится к категориям: Bash, How To. Вы можете отслеживать комментарии по RSS 2.0 ленте. Вы можете оставить комментарий или trackback с Вашего сайта.

Оставить комментарий

Надо-бы залогиниться, чтоб оставить комментарий.