WI-FI를 통해 GNU / Linux 오디오 출력을 Android 장치로 스트리밍하는 방법은 무엇입니까?


39

네트워크 (Wi-Fi)를 통해 오디오 출력을 Android 기기로 스트리밍하고 싶습니다. 음악 / 비디오 스트리밍 솔루션을 찾고 있지 않지만 GNU / Linux 데스크탑의 오디오 출력을 블루투스 헤드폰과 같은 Android 작업으로 스트리밍합니다.

내 GNU / Linux 데스크탑은 Debian Wheezy이며 사운드는 pulseaudio에서 제공됩니다.

Pulseaudio의 raop 모듈 (및 paprefs에서 활성화) + Android의 AirBuddle 앱을 사용해 보았지만 오디오는 스트리밍되지 않습니다 (pulseaudio는 AirBuddle에 연결되어 있지만 사운드는 재생되지 않고 일부 소프트웨어에는 연결 오류가 있음) 다른 소프트웨어에서는 소리가 멈춤).

답변:


27

PulseAudio는 이미 필요한 모든 도구를 가지고 있기 때문에 매우 간단한 해결책이 있습니다.

  1. 명령으로 소스 장치 이름을 가져옵니다 pactl list | grep Name
  2. 다음 스크립트를 작성하십시오 pashare.

    #!/bin/sh
    case "$1" in
      start)
        $0 stop 
        pactl load-module module-simple-protocol-tcp rate=48000 format=s16le channels=2 source=<source_name_here> record=true port=8000
        ;;
      stop)
        pactl unload-module `pactl list | grep tcp -B1 | grep M | sed 's/[^0-9]//g'`
        ;;
      *)
        echo "Usage: $0 start|stop" >&2
        ;;
    esac
    
  3. 몇 가지 점검 및 준비 (스크립트 실행을 허용하고 포트가 성공적으로 열렸는지 확인) :

    chmod 755 pashare
    ./pashare start
    netstat -nlt | grep 8000 
    telnet 127.0.0.1 8000
    
  4. PulseDroid.apk 다운로드 및 설치

  5. 휴대 전화에서 앱을 실행하십시오. 컴퓨터의 IP 주소와 포트를로 설정하십시오 8000.

PS 또한 확인할 수 있습니다 이 위키 페이지를 일반 펄스 오디오 네트워크 스트리밍에 대한 정보, 그리고 대한 이 위키 페이지 RTP 스트리밍에 대한. WiFi를 통한 원시 오디오 스트리밍을 기대하지 마십시오. 엄청난 대역폭이 필요합니다. 강력한 신호를 제공하는 고급 무선 라우터 / AP를 사용해도 더 이상 끊김없는 오디오를 얻을 수 없었습니다. 가장 좋은 방법은 원시 오디오를 MP3와 같은 것으로 트랜스 코딩하여 대신 스트리밍하는 적절한 미디어 서버 (Rygel과 같이 Pulseaudio와 잘 작동 함)를 설정하는 것입니다.


7
이 Android 앱과도 완벽하게 작동합니다. Simple Protocol Player play.google.com/store/apps/… 그러나 기본적으로 rate = 44100이므로이 기능을 사용할 수 있습니다.
Jannes

1
명확히하기 위해 : pactl list sources short 소스 매개 변수의 번호를 찾는 것이 좋습니다.
wolfmanx

4
를 사용하면 pactl list | grep "Monitor Source"더 관련성이 높은 소스가 표시됩니다.
markroxor

18

VLC 를 사용 하여 HTTP를 통해 펄스 오디오 출력의 MP3 스트림을 제공 할 수 있습니다 .
주요 장점은 원격 장치에 특별한 소프트웨어를 설치할 필요가 없다는 것입니다. 웹 브라우저 (또는 음악 플레이어) 만 있으면 스트림을 재생할 수 있습니다. 단점은 오디오 전용이며 몇 초간 지연되어 비디오에 쓸모가 없다는 것입니다

  1. 다음을 사용하여 pulseaudio의 출력 이름을 찾으십시오.

    pactl list | grep "Monitor Source" 
    
  2. XXXX를 출력 이름으로 바꾸어 VLC http 서버를 시작하십시오.

    cvlc -vvv pulse://XXXX --sout '#transcode{acodec=mp3,ab=128,channels=2}:standard{access=http,dst=0.0.0.0:8888/pc.mp3}'
    
  3. 필요한 경우 다음을 사용하여 로컬 IP 주소를 찾으십시오. ifconfig

  4. 원격 장치에서 브라우저 (또는 오디오 스트리밍 앱)가 다음을 가리 키도록합니다.

    http://your.local.ip.address:8888/pc.mp3
    

참고 : 스트림은 완전히 음소거하지 않으면 서버에 설정된 볼륨의 영향을받지 않습니다. 필요한 경우 레벨을 0보다 약간 높게 유지하여 원격 장치 만들을 수 있습니다.


polynomial_donut에 의해 처음 두 단계가 하나로 결합되었습니다 .

cvlc -vvv pulse://$(pactl list | grep "Monitor Source" | awk '{print $3}') --sout '#transcode{acodec=mp3,ab=128,channels=2}:standard{access=http,dst=0.0.0.0:8888/pc.mp3}'

1
대단해! 3 초의 지연이 있지만 그 작은 케이블을 찾을 때 까지이 작은 핵에 만족합니다. 아마 하나 더 사야 할 것입니다 ...
Slabo

@ Slabo 좋은 지적, 어떤 이유로 OP가 음악을 스트리밍하기를 원한다고 잘못 생각했습니다. 내 답변을 수정
wilks

2
처음 두 줄 대신 한 줄짜리 : cvlc -vvv pulse://$(pactl list | grep "Monitor Source" | awk '{print $3}') --sout '#transcode{acodec=mp3,ab=128,channels=2}:standard{access=http,dst=0.0.0.0:8888/pc.mp3}'
polynomial_donut

스트림은 나에게 볼륨 설정의 직접적인 영향을받습니다. 랩탑에서 소리가 나지 않도록 이어폰을 연결하기 만하면됩니다.
Rolf

그런데, 어떻게 시차가 1/2 시간처럼 지속되는 것을 막을 수 있습니까?
Rolf

9

와이파이를 통해 안드로이드 폰으로 오디오 출력을 스트리밍하려면 서버 소프트웨어를 설치해야합니다. 사용 가능한 옵션은

WiFi 오디오 무선 스피커

WiFi Audio Android 앱을 실행하고 시작을 누르면 Windows / Linux 응용 프로그램을 실행 한 후 하단에 모바일 장치의 IP 주소가 표시되고 IP 주소 필드에 모바일 장치의 IP 주소를 입력 한 다음 PC 응용 프로그램에서 시작을 누릅니다. 이제 PC에서 나오는 모든 오디오가 모바일 장치로 전송되고 모바일 장치에서 오디오가 들립니다.
다운로드

사운드 와이어

무선으로 안드로이드 폰, 태블릿으로 PC에서 어떤 음악이나 오디오를 전송하거나 다른 PC
홈 페이지 참조

다른 유용한 링크
XBMC android SE


SoundWire가 1-2 초 지연
Gaurav Gupta

@gauravgupta 더 작은 버퍼 크기를 선택하면 지연이 없습니다. 또한 압축을 사용하십시오. 이것은 나를 위해 아주 잘 작동했습니다.
raacer

WiFi Audio의 PC 애플리케이션 다운로드 링크를 여기에 넣을 수 있습니까?
19 분

1
WiFi 오디오 무선 스피커가 github에서 제거되었으며 포럼에서 컴파일 된 버전은 사용자가 맬웨어라고보고했습니다. 조심해! Soundwire는 배포 방식에서 비린내가 보입니다.
Genom

0

ifwire를 사용하여 Soundwire를 사용하고 랩톱이나 PC에서 wifi를 전송하는 사용자에게는 올바른 IP 주소를 사용해야합니다. 이것은 여전히 ​​현재까지 작동하지만 대부분의 Linux 배포판은 wifi를 보내려면 두 번째 wifi 어댑터가 필요하며 Android가 연결된 것을 사용해야합니다. 인터넷을받는 사람이 아닙니다. 그것을 보내는 사람.

즉, "A"wifi 어댑터를 사용하여 인터넷에 연결하고 "B"를 사용하여 "A"에서 wifi를 전송하는 경우 Android의 SoundWire를 "A"가 아닌 "B"에 연결하십시오.

Wi-Fi를 보내지 않는 어댑터에 연결하면 SoundWire가 연결되거나 스트리밍되지 않으므로 터미널 명령 ifconfig를 사용하여 IP 주소를 Andoroid 앱에 적절히 입력하십시오.

예, 지연이 있지만이 앱인 SoundWire는 가장 간단한 "IP에 대한 다중 연결 및 잊어 버림"시스템입니다. 지나칠 미친 메뉴가 없습니다. 그리고 네, 하나 이상의 연결을 허용합니다. 다른 날에는 2를 사용했습니다. 전송을 전송하는 장치의 기본 창에 연결된 장치 수를 추가합니다.

이 장소를 지금까지 제 장소에서 멀티 룸 / 근거리 와이파이 라디오 시스템으로 개인적으로 사용합니다.

즐겨.


-4

와우 이거 낡았 어 ...

어쨌든 VLC를 사용하십시오. 예쁜 GUI.

  • 데스크탑에서 VLC를 실행하십시오.
  • 스트림을 누르고 파일을 선택하고 (원하는 파일 수 추가) 스트림을 누르십시오.
  • 모두 맞으면 '다음'.
  • 새 대상의 경우 "http"(또는 사용하려는 대상)를 선택하십시오. 스트리밍중인 컴퓨터에서도 재생하려면 로컬로 표시를 선택하십시오. 다음 몇 개의 대화는 모두 설명이 필요합니다.

Android 기기에서 VLC를 시작하십시오. 검색 버튼 옆에있는 아이콘 (점을 가리키는 화살표)을 누르십시오. http://<IP ADDRESS O OF THE MACHINE RUNNING VLC>:8080/나를 위해 입력http://xxx.ca:8080/

테스트하고 작동합니다. 자, 6 월 9'13 년 고대에 이것을 할 수 있을까요? 어쩌면 VLC의 커밋 로그를 확인하기에는 너무 게으르다.)


3
그는 음악 / 비디오 스트리밍 솔루션을 찾고 있지 않습니다.
Cristian Ciupitu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.