Как записать вызовы Skype (аудио) на Debian 6?

Как ни странно, time мог бы иметь ответ для Вас, но на этот раз это должно быть не shell-built-in time но автономный вместо этого:

$ /usr/bin/time -v uname
Linux
        Command being timed: "uname"
        User time (seconds): 0.00
        System time (seconds): 0.00
        Percent of CPU this job got: 2%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.12
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 896
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 1
        Minor (reclaiming a frame) page faults: 304
        Voluntary context switches: 3
        Involuntary context switches: 3
        Swaps: 0
        File system inputs: 56
        File system outputs: 0
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0

Это считает МАКСА RSS, хотя, не VSS, так был бы это быть полезным для Вас или не зависит от Вашей самой задачи в большой степени.

UPD.: Mac OS X' "думает", немного отличается, но тем не менее это time:

/usr/bin/time -l /Applications/Opera.app/Contents/MacOS/Opera
      244.63 real        54.34 user        26.44 sys
 284827648  maximum resident set size
         0  average shared memory size
         0  average unshared data size
         0  average unshared stack size
    711407  page reclaims
      1272  page faults
         0  swaps
       155  block input operations
       251  block output operations
     98542  messages sent
     68330  messages received
        16  signals received
       699  voluntary context switches
    468999  involuntary context switches

4
29.07.2014, 18:04
1 ответ

С помощью эмуляции ALSA

Мне не нужно тестировать Debian 6.0.x, но я думаю, что этот способ, вероятно, сработает. Обратите внимание на пример в Arch wiki.

Во-первых, используйте pacmd list-sources, чтобы найти имя потока монитора вашей звуковой карты. Grep для .monitor работает довольно хорошо:

$ pacmd list-sources | grep '\.monitor'
        name: <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
        name: <alsa_output.usb-stereo-link_stereo-link_1200_USB_DAC-00-DAC.analog-stereo.monitor>

У меня две карты, следовательно, два монитора. Затем отредактируйте ~/.asoundrc, чтобы настроить для него ALSA-устройство, добавив строки типа (но, конечно, используйте имя Вашего монитора, а не мое):

pcm.pulse_monitor {
    type pulse
    device alsa_output.usb-stereo-link_stereo-link_1200_USB_DAC-00-DAC.analog-stereo.monitor
}

ctl.pulse_monitor {
    type pulse
    device alsa_output.usb-stereo-link_stereo-link_1200_USB_DAC-00-DAC.analog-stereo.monitor
}

Затем используйте arecord -f s16_le -t wav -r 44100 -D pulse_monitor /tmp/outfile.wav, чтобы записать.

Старые утилиты PulseAudio

Вместо использования эмуляции ALSA можно использовать парекорд на мониторе, который Вы нашли выше. Делайте так: parecord -d alsa_output.usb-stereo-link_stereo-link_1200_USB_DAC-00-DAC.analog-stereo.monitor outfile.wav. Это должно работать и с parec (в примере LAME ниже)

Newer PulseAudio Utilities

PulseAudio поставляется с утилитой командной строки parecord, которая может записывать проходящий через нее звук.

Чтобы ее использовать, сначала найдите индекс потока, который вы хотите перехватить. Простой путь из командной строки - это pacmd list-sink-inputs, который должен дать что-то вроде этого:

1 sink input(s) available.
    index: 10720
        driver: <protocol-native.c>
        ⋮
        client: 87 <Chromium>
        ⋮

Я опустил кучу строк; но вы можете увидеть, что это Chromium (где у меня работает музыкальный плеер). Индекс : 10720 бит важен.

Для записи он так же прост, как и парекорд -монитор-поток 10720 outfile.wav. Вы также можете записать вывод в stdout и использовать его как часть трубы с помощью parec; например, если у Вас не хватает места на диске, Вы можете напрямую кодировать в MP3:

parec --monitor-stream 10720 --format s16le --channels 2 --rate 44100 \
    | lame -r -s 44.1 -b 16 --signed --little-endian --preset medium /dev/stdin outfile.mp3
3
27.01.2020, 20:58

Теги

Похожие вопросы