리눅스 레코드 : 마이크 입력이 아닌 사운드 카드 출력 캡처 [CONEXANT Analog] Subdevices: 1/1

사운드 카드 출력을 캡처하고 다음 명령을 사용하여 Vorbis ogg 형식으로 인코딩하려고합니다.

arecord -f cd -t raw | oggenc - -r -o file.ogg

그러나 사운드 카드 출력이 아닌 컴퓨터의 마이크 입력이 기록됩니다.

명령의 출력 arecord -l

**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: CONEXANT Analog [CONEXANT Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

명령의 출력은 arecord -Lpastebin 항목에 포함되어 있습니다.

arecord매뉴얼 페이지는 입력 장치를 사용하여 선택 될 수 있음을 나타내는 -D플래그를 있지만 구문 예를 제공하지 않는다.

arecord마이크에서 사운드 카드로 입력을 변경하는 방법을 알고 싶습니다 . Audacity와 같은 GUI 기반 대안에는 관심이 없습니다. 감사.

편집 : arecord버전 1.0.25, vorbis-tools버전 1.4.0 및 ALSA 드라이버 버전 1.0.24와 함께 Debian 7.0 (stable)을 실행 중입니다.



답변

ALSA 루프백 드라이버를 사용하는 것이 좋습니다. 로드하려면 :

sudo modprobe snd-aloop

의 출력에 새 캡처 장치를 추가해야합니다 arecord -L.

컴퓨터에 물리적 사운드 카드가 하나만있는 경우 .asoundrc홈 폴더에 다음 내용이 포함 된 파일을 만들어 루프백 사운드 카드를 모든 앱의 기본값으로 만들 수 있습니다.

pcm.!default {
    type hw
    card 1
    device 0
}

이 파일이있는 동안 모든 응용 프로그램에서 출력되는 모든 사운드는 실제 스피커가 아닌 루프백 어댑터로 이동해야합니다. arecord 명령에 올바른 장치를 지정하고 완료되면 .asoundrc파일을 제거하여 정상으로 돌아갑니다.


답변

나는 같은 문제가 있었고 여기 에서 다른 해결책을 찾았 습니다 . 주요 아이디어는를 사용하는 것 pacat입니다. 나를 위해 다음과 같이 작동합니다.

1) 모니터 장치 찾기 :

$ pacmd list | grep "\.monitor"
name: <alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor>
name: <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
        alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor/#0: Monitor of HDA NVidia Digital Stereo (HDMI)
        alsa_output.pci-0000_00_1b.0.analog-stereo.monitor/#2: Monitor of Built-in Audio Analog Stereo

2) 파일로 오디오 캡처 :

$ pacat --record -d alsa_output.pci-0000_00_1b.0.analog-stereo.monitor > dump.raw

3) 파일로 변환 wav:

sox -t raw -r 44100 -e signed-integer -L -b 16 -c 2 dump.raw output.wav

그게 다야!


답변

몇 년 후, 투쟁은 계속되고 있습니다. 기록 장치를 지정하는 방법은 다음과 같습니다.

➜  ~ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: CX20590 Analog [CX20590 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

➜  ~ arecord -f S16_LE -r 44100 --device="hw:1,0" plik.wav
Recording WAVE 'plik.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
^C
Aborted by signal Interrupt...

따라서 장치 문자열의 형식은 hw:<card>,<device>


답변

하드웨어는 출력 캡처를 지원하지 않습니다. 데이터가 실제 재생 장치에 들어가면 사라집니다.

오디오 데이터를 하드웨어에 기록하기 전에 오디오 데이터를 복제하는 일부 소프트웨어를 사용해야합니다.

PulseAudio를 사용하는 것이 좋습니다. 거기에서 간단히 출력 중 하나를 캡처 소스로 선택할 수 있습니다.


답변

  1. PulseAudio 볼륨 제어-> 입력 장치 탭으로 이동하십시오. 하단에서 “모든 입력 장치”를 표시하도록 선택하십시오. “내부 오디오 아날로그 스테레오 모니터”가 음소거되어 있지 않고 오디오를 재생할 때 볼륨이 올라가거나 내려 오는지 확인하십시오 !!

  2. 오디오 레코더 를 사용 하여 오디오 소스 = 내부 오디오 아날로그 스테레오 (오디오 입력)를 녹음 하십시오 . 아래 스크린 샷을 참조하십시오.


답변

방금 오디오 레코더를 설치했습니다 : https://launchpad.net/audio-recorder 옵션에 필요한 것을 보여줍니다 …