como usar o avconv para gravar streaming de áudio (como definir fontes)?

3

Eu nunca usei avconv antes. Eu tenho lido o manual e fazendo perguntas em vários fóruns e IRC nas últimas duas semanas, mas ainda não encontrei uma resposta. (Esta questão é uma parte de uma questão maior que eu perguntei aqui . Eu estou quebrando isto porque esta parte chave é onde eu preciso de ajuda primeiro. Eu posso deletar a outra pergunta porque pode ser muito ampla ou mal definida.)

Eu usei pacmd list-cards para listar minhas fontes de áudio de streaming. Abaixo estão os dois que eu preciso definir como entradas para avconv .

  1. alsa_output.usb-Focusrite_Scarlett_2i2_USB-00-USB.analog-stereo.monitor / # 2: Monitor de estéreo analógico Scarlett 2i2 USB
  2. alsa_input.usb-Focusrite_Scarlett_2i2_USB-00-USB.análico-estéreo / # 3: Scarlett 2i2 USB estéreo analógico

Então, minha pergunta é simples: como defino essas fontes como entradas para avconv ?

Mais informações / histórico segue:

Quando souber como definir as entradas de áudio, planejo usá-las de maneira semelhante a esta:

#!/bin/bash
OUTPUT="audio_'date +%Y-%m-%d_%H%M'"
avconv \
-f alsa -ac 2 -i <alsa_output.usb-Focusrite_Scarlett_2i2_USB-00-USB.analog-stereo.monitor> \
-f alsa -ac 1 -i <alsa_input.usb-Focusrite_Scarlett_2i2_USB-00-USB.analog-stereo> \
-map 0:0 -map 1:0 \
-acodec flac \
-threads 0 \
-y $OUTPUT

Suponho que preciso substituir o que está entre os colchetes angulares pela notação correta. E eu não tenho ideia se o resto do script acima é mesmo próximo ...

Aqui estão minhas informações de hardware:

$ pacmd list-cards  
Welcome to PulseAudio! Use "help" for usage information.  
>>> 3 card(s) available.  
[snip other cards]
index: 2
name: <alsa_card.usb-Focusrite_Scarlett_2i2_USB-00-USB>
driver: <module-alsa-card.c>
owner module: 6
properties:
        alsa.card = "1"
        alsa.card_name = "Scarlett 2i2 USB"
        alsa.long_card_name = "Focusrite Scarlett 2i2 USB at usb-0000:04:00.0-2, high speed"
        alsa.driver_name = "snd_usb_audio"
        device.bus_path = "pci-0000:04:00.0-usb-0:2:1.0"
        sysfs.path = "/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/usb3/3-2/3-2:1.0/sound/card1"
        udev.id = "usb-Focusrite_Scarlett_2i2_USB-00-USB"
        device.bus = "usb"
        device.vendor.id = "1235"
        device.vendor.name = "Novation EMS"
        device.product.id = "8006"
        device.product.name = "Scarlett 2i2 USB"
        device.serial = "Focusrite_Scarlett_2i2_USB"
        device.string = "1"
        device.description = "Scarlett 2i2 USB"
        module-udev-detect.discovered = "1"
        device.icon_name = "audio-card-usb"
profiles:
        output:analog-stereo: Analog Stereo Output (priority 6000)
        output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (priority 6060)
        output:analog-stereo+input:iec958-stereo: Analog Stereo Output + Digital Stereo (IEC958) Input (priority 6055)
        output:iec958-stereo: Digital Stereo (IEC958) Output (priority 5500)
        output:iec958-stereo+input:analog-stereo: Digital Stereo (IEC958) Output + Analog Stereo Input (priority 5560)
        output:iec958-stereo+input:iec958-stereo: Digital Stereo Duplex (IEC958) (priority 5555)
        input:analog-stereo: Analog Stereo Input (priority 60)
        input:iec958-stereo: Digital Stereo (IEC958) Input (priority 55)
        off: Off (priority 0)
active profile: <output:analog-stereo+input:analog-stereo>
sinks:
        alsa_output.usb-Focusrite_Scarlett_2i2_USB-00-USB.analog-stereo/#1: Scarlett 2i2 USB Analog Stereo
sources:
        alsa_output.usb-Focusrite_Scarlett_2i2_USB-00-USB.analog-stereo.monitor/#2: Monitor of Scarlett 2i2 USB Analog Stereo
        alsa_input.usb-Focusrite_Scarlett_2i2_USB-00-USB.analog-stereo/#3: Scarlett 2i2 USB Analog Stereo
ports:
        analog-output: Analog Output (priority 9900, available: unknown)
                properties:

        analog-input: Analog Input (priority 10000, available: unknown)
                properties:

        iec958-stereo-input: iec958-stereo-input (priority 0, available: unknown)
                properties:

        iec958-stereo-output: Digital Output (S/PDIF) (priority 0, available: unknown)
                properties:
    
por MountainX 25.08.2013 / 22:06

1 resposta

1

Você também pode descobrir os nomes da sua interface com

pactl list sources | grep Name:

No seu caso, é "alsa_output.usb-Focusrite_Scarlett_2i2_USB-00-USB.analog-stereo.monitor".

Em seguida, grave o áudio com o avconv usando exatamente esse nome após a opção -i

avconv -f alsa -ac 2 -ar 48000 -f pulse \
-i alsa_output.usb-Focusrite_Scarlett_2i2_USB-00-USB.analog-stereo.monitor \
-acodec libvorbis -aq 6 test.ogg

Em essência, omita os sinais maior que e menor que os ao redor dos identificadores em seu exemplo e isso deve funcionar.

Aqui está um tutorial sobre o uso e o significado desses comandos:   link

    
por 03.09.2013 / 16:37

Tags