나는 mpd를 사용하여 .mpd를 통해 내 휴대폰(Hi-Fi에 연결된)으로 음악을 스트리밍합니다 http
.
그러나 이것은 내 mpd 데이터베이스에 있는 노래에만 작동합니다. 나는 종종 브라우저에서 무언가를 재생하고 싶고 mpd
그것을 통해 스트리밍할 수 있기를 원합니다.
스피커 대신 스피커 pulse audio
로 출력을 라우팅하는 방법이 있습니까 ?mpd
답변1
mpd는 펄스 오디오 입력 소스를 허용하지 않으므로 펄스 오디오를 라우팅할 직접적인 방법이 없습니다.통과하다MPD.
그러나 gstreamer와 약간의 독창성을 사용하면 달성하려는 작업이 여전히 가능합니다. 나는 몇 년 전에 이것을 했습니다.
나는 썼다이 앱그래프의 "Gstreamer 파이프라인 스크립트" 구성요소를 구현합니다.
스트림 그래프 http://tiyukquellmalz.org/sean/stream.svg
다이어그램을 요약하면 다음과 같은 일이 발생합니다.
- mpd는 디스크에서 음악 파일을 읽고 디코딩한 다음
module-null-sink
펄스 오디오 유형 오디오 출력으로 "재생"합니다. - Adobe Flash, gnome Shell의 경고음, 웹 브라우저 등 컴퓨터에서 사운드를 출력하는 다른 프로그램도 오디오 출력을
module-null-sink
pulseaudio(시스템의 기본 오디오 장비가 됨)로 보냅니다. - 출력에는 널 싱크로 푸시된 오디오를 가져와 마치 마이크와 같은 입력 장치인 것처럼 다시 "캡처"할 수 있는 소스가
module-null-sink
있습니다 ..monitor
- Pulseaudio는 mpd, 웹 브라우저 및 Pulseaudio를 사용하는 모든 것을 포함하여 전체 컴퓨터에서 모든 오디오 프로그램의 동적 소프트웨어 믹싱을 수행합니다.
tribblify
저는 GStreamer를 사용하여 시스템의 다른 프로그램과 mpd 혼합 오디오를 포함하는 pulseaudio 널 싱크 모니터 오디오를 캡처한 다음 MP3 인코딩을 수행하고 이를Shoutcast/icecast 서버로 스트리밍하는 프로그램을 작성했습니다 .tribblify
본질적으로 "스트리밍 소스"가 됩니다.- 프로그램은
tribblify
mpd가 재생 중인 오디오의 태그를 변경하는 시점을 자동으로 감지하고 해당 태그를shoutcast 스트림에 푸시합니다. - Icecast 또는shoutcast 서버는 동일한 컴퓨터 또는 다른 컴퓨터에 있을 수 있으며 결과를 연결된 모든 클라이언트로 스트리밍할 수 있습니다.
답변2
예. 여기서 핵심은 ALSA 루프백 기능입니다. 따라서 먼저 ALSA에서 루프백 장치를 활성화해야 합니다. 이 장치는 PulseAudio 볼륨 제어에서 입력 장치(및 출력 장치)로 표시됩니다.
sudo modprobe snd_aloop
그런 다음 장치를 mpd 서버에 추가할 수 있습니다.
mpc add alsa://hw:1,1
여기서 hw:1,1은 루프백 입력 장치이며 다음 명령을 사용하여 나열할 수 있습니다.aplay -l
그런 다음http 출력 플러그인국회의원을 위해. 아래 예는 다음과 같습니다./etc/mpd.conf
audio_output {
type "httpd"
name "My HTTP Stream"
encoder "vorbis" # optional, vorbis or lame
port "8000"
bind_to_address "192.168.1.38" # optional, IPv4 or IPv6
quality "5.0" # do not define if bitrate is d$
# bitrate "128" # do not define if quality is d$
format "44100:16:1"
max_clients "0" # optional 0=no limit
}
그게 다야. 볼륨 조절 재생 탭에서 오디오 소스에 대한 재생 장치를 선택하십시오.
마지막으로 대상 지점에서 httpd URL 주소를 사용하여 VLC 또는 기타 스트림 렌더러를 사용할 수 있습니다.http://192.168.1.38:8000