[편안] 라즈베리 파이3로 제작된 에어플레이 서버[오디오]

스마트폰에서 AirPlay를 하기 위해 Raspberry Pi3를 AirPlay로 단말화했다.


오디오 서버가 되기 위해서는 OS 이미지에서 준비하지 않아도 인터넷의 스피커로 사용하고 싶다.

'화성파 에어플레이'는 자주 나오는 방법이에요.


Raspberry Pi2에 Shairport를 추가하면 AirPlay 단말기가 됩니다.
하지만 현재 Shairport의 개발이 중단된 것 같습니다. 파생 버전인 Shairport-sync가 인기가 많아서 이번에 Shairport-sync를 사용하기로 했습니다.
환경(Raspbian 설치 후)
OS와 무선 LAN 등의 초기 설정 할애.
모든 작업은 SSH이고 다른 기계도 진행할 수 있다.
Mac의 터미널 등에서 연결합니다.(Windows에서 Teraterm 등을 통해 연결
ssh [email protected].*.*
pi는 Raspbian의 사용자 이름이며 @ 아래는 로컬 IP 주소입니다.
ShairportSync 설치
먼저 제본에 필요한 프로그램 라이브러리 (과git) 를 설치합니다.
GitHub를 참조하여 소스 코드를 다운로드하여 생성하고 설치합니다.즉, 그것은 응용 프로그램 같은 가방이 아니다.좀 이해하기 어려워요. 부품을 다운로드해서 조립해서 완성하는 형식이에요.
하나하나 실행해도 되지만 여기는 통일적으로 지정되어 있다.
$ sudo apt-get install git autoconf libdaemon-dev libpopt-dev libconfig-dev libasound2-dev libpulse-dev libavahi-client-dev libssl-dev libsoxr-dev
그리고shairport-syn clone을 구축하고 설치합니다.
$ git clone https://github.com/mikebrady/shairport-sync.git
$ cd shairport-sync
$ autoreconf -i -f
$ ./configure --sysconfdir=/etc --with-alsa --with-pa --with-avahi --with-ssl=openssl --with-metadata --with-soxr --with-systemd
$ make && sudo make install
설치된 shairport-sync 폴더는 나중에 업데이트될 수 있으므로 보존해야 합니다.

프로필 편집

$ sudo nano /etc/shairport-sync.conf
따라서 주석에 의해 거의 출력되는 길이의 설정 파일을 표시합니다.
설정 파일은 다음과 같이 편집됩니다.
/etc/shairport-sync.conf
general =
{
 name = "AirPi";    //AirPlayサーバの名前(任意)
 interpolation = "soxr";
}
기본적인basic에 비해soxr를 설정하면 소리가 좋아지지만 CPU를 많이 먹는다고 하는데 top 명령으로 보면 높을 때 15% 정도이기 때문에 15% 정도 소리가 좋아지면 소리가 좋아지는 것이 좋다고 합니다. 이번에는 soxr를 선택하겠습니다.

USB에서 사운드 내보내기


기본적으로 3.5mm 잭에서 사운드를 내보내지만 사운드가 좋지 않으므로 USB에 연결된 DAC에서 사운드를 내보내기로 결정했습니다.DAC 연결 후
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
 Subdevices: 8/8
 Subdevice #0: subdevice #0
 Subdevice #1: subdevice #1
 Subdevice #2: subdevice #2
 Subdevice #3: subdevice #3
 Subdevice #4: subdevice #4
 Subdevice #5: subdevice #5
 Subdevice #6: subdevice #6
 Subdevice #7: subdevice #7
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
 Subdevices: 1/1
 Subdevice #0: subdevice #0
card 1: CODEC [USB Audio CODEC], device 0: USB Audio [USB Audio]
 Subdevices: 1/1
 Subdevice #0: subdevice #0
보안이 인식되면 카드0 이외의 장치를 표시합니다.
위의 예에서 카드1의 Subdevice #0은 USBDAC입니다. 
이 카드와 Subdevice 번호를 적어 두세요.
/etc/shairport-sync.conf
alsa = {
 output_device = "default";
따라서 default를 hw:1,0으로 변경합니다.숫자는 위에서 나온 것이다.
$ sudo systemctl start shairport-sync
사용자 정의 모양새를 정의합니다.
다음 명령을 통해 OS가 시작될 때 시작하도록 설정합니다.
$ sudo systemctl enable shairport-sync

AirPlay 출력 대상 설정


LAN에 AirPlay 서버가 있는 상태에서 컨트롤 센터 (이름이 맞나요?)의 양곡 탄젠트 값

만약 설정이 순조롭다면 AirPlay 서버를 눌러서 출력 목적지로 선택할 수 있을 것이다.이후 테킬라에서 음악을 틀고 스피커에서 소리를 내면 끝난다.고생하셨습니다.
그나저나 Shairport'Sync'이기 때문에 영상과 음악의 동기화를 얻을 수 있기 때문에 유튜브 등 애니메이션 사이트를 봐도 소리에서 벗어나지 않고 재생할 수 있다.지독하다

참고 자료


Raspberry Pi를 AirPlay 터미널로 설정하기 전 단계 설명(shairport-sync 편)
Raspberry Pi를 AirPlay 서버로 설정
AirPlay 설정(Raspberry Pi로 만든 음악 시스템)

좋은 웹페이지 즐겨찾기