On 03/06/2010 08:02 AM, Suvayu Ali wrote:
On 06/03/10 01:38 AM, n2xssvv.g02gfr12930 wrote:
On 03/05/2010 11:28 AM, Neil Bird wrote:
Around about 05/03/10 09:34, n2xssvv.g02gfr12930 typed ...
The following ALSA config enabled the recording of played sound It is no longer working, any ideas as to why?
None at all, but I'd put money on pulse-audio. I found the following on the net a while ago (still using F10 then), and
successfully used it to record a bit of radio I was listening to through firefox+flash -> pulse-audio. It's slightly tweaked from the one I found, and I don't recall where I found it:
#!/bin/bash # pa-record OUT="$1" if [ -z "$OUT" ]; then echo "Usage: $0 output-file">&2 exit 1 fi rm -f "$OUT" EXT=${OUT##*.}
# 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 or ogg echo "Recording to $OUT ..." echo "Close this window to stop" if [ "$EXT" == "ogg" ]; then parec --format=s16le -d "$MONITOR" | oggenc --raw --quiet --quality=4 -o "$OUT" - else parec -d "$MONITOR" | sox -t raw -r 44k -sLb 16 -c 2 - "$OUT" fi
Neil,
After some investigation I managed to alter the above script to work for me. Unfortunately it didn't work out of the box, but it was easily put right.
And what were the things you did to put it right? Would be good to know ...
JB
Here you go, but please note the lines with MONITOR$= have been split over 2 lines, as is the line after the if condition. All the changes just ensure the sound channel to be recorded is found successfully.
#!/bin/bash # pa-record OUT="$1" if [ -z "$OUT" ]; then echo "Usage: $0 output-file" >&2 exit 1 fi rm -f "$OUT" EXT=${OUT##*.}
# Get sink monitor: # MONITOR=$(pactl list | grep -A1 '^*** Source #' | grep '^Name:.*.monitor$' | cut -d" " -f2 | tail -n1) MONITOR=$(pactl list | grep -A4 'Source #' | grep 'Name:.*.monitor$' | cut -d" " -f2 | tail -n1)
echo recording from $MONITOR
# Record it raw, and convert to a wav or ogg echo "Recording to $OUT ..." echo "Close this window to stop" if [ "$EXT" == "ogg" ]; then parec --format=s16le -d "$MONITOR" | oggenc --raw --quiet --quality=4 -o "$OUT" - else parec -d "$MONITOR" | sox -t raw -r 44k -sLb 16 -c 2 - "$OUT" fi
Regards
JB