모듬‎ > ‎

AirPlay

Airport Express에서 제공하는 기능. AirTunes라는 이름에서 바뀌었다.

네트워크로 받은 음성 신호를 기기에 내장한 3.5파이 minijack 내지 원형 광출력 단자를 통해 출력하는 기능. 유선과 무선 모두를 통해 신호를 받을 수 있기 때문에 거실에 스피커를 갖추어 놓고 방에서 iTunes로 재생하는 노래를 끌어다 듣는 식으로 쓰인다. DAAP와 합하면 음원의 저장소와 재생기와 스피커가 서로 별개의 위치에서 네트워크로만 연결되게 된다.


Airfoil이라고 에어튠즈 기능을 지원하지 않는 불특정 프로그램의 음성 출력을 직접 원격으로 보내주는 프로그램도 있다. 다만 구성의 특성상 전송중에 지연이 생길 수 밖에 없어서 동영상 같이 영상과 음원이 일치해야 하는 경우에는 쓰기 힘들다.

VLC에서 (비록 설정을 못 잡아서 직접 체험해보진 못 했지만 ) 지연 측정과 보정 기능이 들어갔다는 얘기가 있고, 중간의 지연 시간이 지속적으로 측정되는 것으로 보이니 영상 재생을 그만큼 늦춰주는 식으로 자동 처리가 가능할 것도 같다. 2.0.8에서는 오디오 장치에서 선택만 해주면 되는데 의외로 2초의 음성을 자동으로 지연해주지는 않는다. 설정에서 모두 보기 상태로 만든 다음 오디오 항목의 기본 지연을 조정하면 재생할 때마다 적용이 된다. AirPlay 전용으로 쓰기에 적당한 상태가 된다.


여기에 쓰이는 RAOP(remote audio output protocol)의 호환 시스템이 있어서 리눅스에서도 쓸 수 있다. 최근 기본 음성 출력 환경으로 쓰이는 pulseaudio에도 raop 모듈이 나와 있다. 간단하게 에어튠즈를 켜도록 설정만 하면 쓸 수 있다.

혹은 에어튠즈 없이 esd -tcp -public으로 서버를 두고, esd에 Airfoil의 구성요소인 Soundflower를 통해 클라이언트를 구성하는 방식도 있지만, 직접 주소를 구성할 필요 없이 mDNS를 통해서 발견하고 연결할 수 있다는 점에서 에어튠즈가 더 좋아 보인다.

그런데, 내 경우 raop 모듈이 자동으로 인식하는 에어튠즈의 주소가 168.254.x.x 즉 Zeroconf 영역에 해당하는 것이라 (현재 시스템에는 해당 route 설정이 없기 때문에) 실제로 재생을 해보면 출력 전 과정이 멈추는 현상이 있다. 이것은 최종적으로 배출(sink)되어야 할 주소로 접근을 못 하기 때문으로, 자동으로 인식되는 raop 모듈을 직접 ~/.pulse/default.pa 설정 파일에 추가하고 192.168.x.x로 주소를 명시해주는 방법을 통해 구동에 성공했다. Zeroconf 호환을 담당하는 avahi나 기타 네트워크 부문에서 설정이 잘못된 게 아닐까 싶기는 하지만 더 깊게 찾아본 바는 없다.

그러나 연속으로 1시간 조금 못 되게 노래를 틀어두었더니 pulseaudio의 raop 모듈 자체가 오류를 내면서 떨어져 나가고 다시 올라오질 않아서 당분간 안정적으로 쓰기에는 무리가 있는 것으로 보인다.
Comments