avconv를 사용하여 스트리밍 오디오를 녹음하는 방법(소스 정의 방법)

avconv를 사용하여 스트리밍 오디오를 녹음하는 방법(소스 정의 방법)

나는 전에 그것을 사용한 적이 없습니다 avconv. 지난 몇 주 동안 매뉴얼을 읽고 다양한 포럼과 IRC에 질문을 했지만 아직 답변을 찾지 못했습니다. (이 질문은 제가 물어본 더 큰 질문의 일부입니다.여기. 이 중요한 부분이 먼저 도움이 필요한 부분이기 때문에 세분화하겠습니다. 다른 질문은 너무 광범위하거나 제대로 정의되지 않았기 때문에 삭제할 수 있습니다. )

pacmd list-cards저는 스트리밍 오디오 소스를 나열 하곤 했습니다 . 다음은 로 정의해야 하는 두 개의 입력입니다 avconv.

  1. alsa_output.usb-Focusrite_Scarlett_2i2_USB-00-USB.analog-stereo.monitor/#2: Scarlett 2i2 USB 아날로그 스테레오 모니터
  2. alsa_input.usb-Focusrite_Scarlett_2i2_USB-00-USB.analog-stereo/#3: Scarlett 2i2 USB 아날로그 스테레오

제 질문은 간단합니다. 이러한 소스를 입력으로 정의하는 방법은 무엇입니까 avconv?

자세한 정보/배경은 아래:

오디오 입력을 정의하는 방법을 알게 되면 다음과 같이 사용할 계획입니다.

#!/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

제 생각에는 꺾쇠 괄호 안의 내용을 올바른 기호로 바꿔야 할 것 같습니다. 위 스크립트의 나머지 부분이 가까이 오는지 모르겠습니다 ...

내 하드웨어 정보는 다음과 같습니다.

$ 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:

답변1

다음 명령을 사용하여 인터페이스 이름을 찾을 수도 있습니다.

pactl list sources | grep Name:

귀하의 경우에는 "alsa_output.usb-Focusrite_Scarlett_2i2_USB-00-USB.analog-stereo.monitor"입니다.

그런 다음 avconv를 사용하여 -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

기본적으로 예제에서 식별자 주위의 보다 큼 및 보다 작은 기호를 생략하면 제대로 작동합니다.

다음은 이러한 명령의 사용법과 의미에 대한 자습서입니다. http://meshfields.de/linux-usb-audio-stream-recording/

관련 정보