방송 설정의 경우 입력 장치의 오디오를 .wav 파일의 오디오와 믹싱하고 싶습니다. .wav 파일에는 방송 중 어느 시점에 음악에 추가하고 싶은 인트로, 대기 또는 종료 음악이 포함되어 있습니다.
여러 단계가 필요합니다.
- 두 개의 스트림 추가/혼합
- 모노로 변환(또는 이 작업을 먼저 수행해야 할 수도 있음)
- 스트림을 방송 스트림과 VU 테이블로 분할
- 로컬 오디오 출력으로 스트림 보내기
이것이 가능하다고 확신하지만 인터넷에서 해결책을 찾을 수 없습니다. alsa의 .asoundrc를 파헤쳐도 결과가 나오지 않았습니다. dmix도 믹싱을 하는 것 같지만 제가 원하는 것은 아닙니다...
정말 어디서부터 시작해야 할지 모르겠습니다.
누군가 이것을 설명할 수 있나요? 부분적인 솔루션도 훌륭합니다!
답변1
가장 쉬운 방법은 Pulseaudio를 사용하는 것입니다. (ALSA를 사용하여 이 작업을 수행할 수 있지만 구성하기가 어렵습니다.)
사운드를 생성하는 모든 것은 현재 출력(Pulseaudio 용어로 "수신기")에서 자동으로 믹싱되므로 믹싱에 대해 걱정할 필요가 없습니다. 제어 볼륨을 사용할 수 pavucontrol
있으며 응용 프로그램 이름별로 마지막 볼륨을 기억합니다. 명령줄을 사용하여 wav 파일을 재생할 수 있지만 paplay
다른 오디오 플레이어도 작동합니다.
수신기가 모노인 경우 자동으로 모노로 변환됩니다. 이를 위해 로컬 RaspPi 수신기를 구성할 수 없는 경우(RaspPi가 없어 잘 모르겠습니다) "가짜" 수신기를 추가할 수 있습니다
pactl load-module module-null-sink sink_name=whatever
또는 Pulseaudio에서 다시 매핑해야 하는 것으로 밝혀지면 module-remap-sink
(아래 참조, 직접 시도하지 않았습니다).
.monitor
이 싱크 또는 로컬 RaspPi 싱크에는 icecast 등에 배포하는 데 사용할 수 있는 관련 소스가 있습니다 .
hw:1 입력을 선택한 수신기에 대한 영구 피드로 설정할 수 있습니다.
pacmd load-module module-loopback source="alsa_input.name_of_hw_1" sink="whatever_or_local_sink"
사용 가능한 수신자 이름을 나열할 수 있습니다.
pacmd list-sinks | grep name:
매개변수로는 꺾쇠괄호 없이 이름을 사용하세요.
나는 그것이 기본이라고 생각합니다. 사용 가능한 Pulseaudio에 대해 알아보기기준 치수, pacmd help
사용을 원하지 않는 경우 알려드립니다 pavucontrol
.
편집하다~을 위한알자스:
먼저 사용 가능한 항목에 대해 읽어보세요.플러그인. 오디오를 darkice 등으로 라우팅하려면 "가상 사운드 카드"가 필요합니다. 이것은 커널 모듈이므로 다음과 같이 하십시오.
sudo modprobe snd-aloop pcm_substreams=2
/etc/modprobe.d
테스트용으로 사용하고 작업하는 동안 파일을 넣어보세요. 루프백이 이라고 가정합니다 hw:3,*,*
.
가상 사운드 카드의 입력 측에는 다음과 같은 것이 필요합니다.
dmix "main_in" --> 플러그(slave.channels = 1) --> hw:3,0,0
그럼 당신은 aplay -D main_in sound.wav
실행할 수 있습니다
alsaloop -C hw:0 -P main_in
오디오 수집기에 연결하십시오.
가상 사운드 카드의 출력에서 다음과 같습니다.
하드웨어: 3,1,0 --> dsnoop "main_out"
로컬 오디오 출력에서 다시 모니터링하세요.
alsaloop -C main_out -P local_audio_out
darkice
그런 다음 VU 테이블을 직접 실행할 수 있습니다 main_out
. 그런데, arecord -D main_out -d 0 -vv /dev/null
그것은 좋은 테스트 VU 미터입니다.
위 링크에서 구문에 대한 자세한 내용을 읽어 보시기 바랍니다. 저는 이것을 시도하지 않겠습니다. 화살표는 -->
플러그인의 마스터-슬레이브 관계를 나타냅니다. 루프백은 커널 공간과 수많은 사용자 공간 애플리케이션을 통과하기 때문에 지연 시간이 끔찍할 수 있습니다.
Pulseaudio가 작동하지 않는 경우 다른 옵션은 있지만 jack
구성 경험이 없습니다.