mpd를 통한 스트리밍 시스템 오디오

mpd를 통한 스트리밍 시스템 오디오

나는 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-sinkpulseaudio(시스템의 기본 오디오 장비가 됨)로 보냅니다.
  • 출력에는 널 싱크로 푸시된 오디오를 가져와 마치 마이크와 같은 입력 장치인 것처럼 다시 "캡처"할 수 있는 소스가 module-null-sink있습니다 ..monitor
  • Pulseaudio는 mpd, 웹 브라우저 및 Pulseaudio를 사용하는 모든 것을 포함하여 전체 컴퓨터에서 모든 오디오 프로그램의 동적 소프트웨어 믹싱을 수행합니다.
  • tribblify저는 GStreamer를 사용하여 시스템의 다른 프로그램과 mpd 혼합 오디오를 포함하는 pulseaudio 널 싱크 모니터 오디오를 캡처한 다음 MP3 인코딩을 수행하고 이를Shoutcast/icecast 서버로 스트리밍하는 프로그램을 작성했습니다 . tribblify본질적으로 "스트리밍 소스"가 됩니다.
  • 프로그램은 tribblifympd가 재생 중인 오디오의 태그를 변경하는 시점을 자동으로 감지하고 해당 태그를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

관련 정보