리눅스에서 오디오 캐스팅 활성화 방법

Audio Casting Featured Image

오디오 캐스팅, 즉 오디오 스트리밍은 한 장치에서 재생되는 오디오를 다른 장치에서 재생할 수 있게 해줍니다. 이는 라이브 오디오, 파일, 또는 마이크 입력일 수도 있습니다. 많은 기술 대기업들이 각자의 오디오 캐스팅 방식이 있습니다. 애플은 AirPlay를, 구글은 Chromecast를 가지고 있습니다. 리눅스는 오픈 소스의 특성 덕분에 여러 가지 오디오 캐스팅 방법을 제공합니다.

목차

  • 기술적 관점
  • 오디오 캐스팅에 필요한 것
  • 오디오 캐스팅 활성화 방법
  • 자주 묻는 질문

추가 읽기: 리눅스에서 Chromecast 및 Google Home으로 오디오 스트리밍하는 방법

기술적 관점

제조업체마다 약간 다른 프로토콜을 사용하지만, 거의 모든 오디오 캐스팅은 P2P(피어 투 피어) 네트워킹을 사용합니다. P2P는 토렌트에서 사용되는 것으로 인해 꽤 악명 높은 명성을 얻었지만, 이 네트워킹 방식 자체는 그렇게 나쁘지 않습니다.

본질적으로, P2P는 당신의 장치와 연결된 장치가 데이터 권한을 공유한다는 것을 의미합니다. 두 장치 모두 원하는 대로 데이터를 송수신할 수 있습니다. 오디오 캐스팅의 목적을 위해, 송신자는 오디오 데이터를 이진수로 변환하고, 수신자는 다시 오디오 데이터로 변환합니다. 압축, 비트 전송률 및 버퍼링도 이 과정에서 중요한 역할을 하지만, 우리가 다루고 있는 주제와는 다른 부분입니다.

오디오 캐스팅에 필요한 것

다음은 오디오를 캐스팅하는 데 사용하는 주요 애플리케이션입니다. 더 많은 설치가 필요한 방법도 있지만, 아래의 것들이 Pulseaudio와 상호작용하는 데 주로 사용하는 것들입니다.

Pulseaudio 환경설정

Paprefs(풀사오디오 환경설정)는 모든 풀사오디오 모듈에 접근할 수 있는 훌륭한 방법입니다. 이를 구현하려면 보통 문서를 살펴보고 터미널을 쳐야 하지만, 유용한 GUI 덕분에 훨씬 쉬워졌습니다. 다음 명령어로 Paprefs를 설치하세요:

sudo apt install paprefs

Paprefs의 문제 중 하나는 풀사오디오의 기본 폴더 이름을 사용한다는 것입니다. 이를 통해 모듈을 활성화하거나 설치하려고 시도하면 기본 폴더로 이동하게 되어 있습니다. 풀사오디오가 업데이트되었다면 이 폴더는 존재하지 않을 것입니다.

이 문제를 해결하기 위해, 아래와 같이 Paprefs를 올바른 폴더로 가리키도록 심볼릭 링크를 생성합니다.

실제 폴더는 “pulse-15.99.1+dfsg1.”이고, 심볼릭 링크 폴더는 “pulse-13.99.”입니다. Paprefs는 이를 해당된 것으로 등록하지만, 새로운 폴더가 아니라 실제 폴더를 가리킵니다. 심볼릭 링크를 생성하는 터미널 명령어는 다음과 같습니다:

sudoln-s'/usr/lib/pulse-15.99.1+dfsg1''/usr/lib/pulse-15.99'

추가 읽기: PulseEffects로 리눅스 PC 오디오 개선하는 방법

Pulseaudio 볼륨 조절

이 애플리케이션은 풀사오디오 싱크 및 모니터와 상호작용할 수 있게 해줍니다. 이를 통해 오디오가 원하는 곳에서 재생되고 있는지 확인할 수 있으며, 여러 개의 싱크와 컴퓨터를 다룰 때 항상 시각적 인터페이스가 도움이 됩니다.

다음 터미널 명령어를 사용하여 Pavucontrol을 설치할 수 있습니다.

sudo apt install pavucontrol

오디오 캐스팅 활성화 방법

리눅스에서의 모든 것과 마찬가지로, 리눅스에서 오디오 캐스팅을 활성화하는 과정은 쉬울 수도 있고 매우 복잡할 수도 있습니다. 제 테스트와 방법론은 우분투를 중심으로 하지만, Arch나 다른 배포판을 사용하는 경우 유사한 과정이 적용됩니다.

RTP 오디오 캐스팅

RTP(실시간 전송 프로토콜)를 사용하는 것이 테스트해본 가장 쉬운 방법입니다. 여기서는 Pulseaudio를 사용하고 있습니다.

  1. Paprefs의 Multicast/RTP 탭으로 이동하여 두 장치에서 “Enable Multicast/RTP receiver” 및 “Enable Multicast/RTP sender” 상자를 체크하세요. 둘 중 하나만 활성화할 수도 있지만, 두 장치 간에 송수신을 모두 가능하게 하고 싶기 때문에 저는 둘 다 활성화합니다.

Screenshot From 2022 09 28 20 28 02

  1. 별도의 싱크를 만들거나 스피커에서 직접 다른 장치로 오디오를 전송하기로 선택할 수 있습니다. 별도의 싱크를 사용하면 송신하는 오디오의 볼륨과 형식을 제어할 수 있습니다. Pavucontrol의 입력 장치 섹션에서 다른 장치에서 오디오 모니터 스트림을 볼 수 있어야 합니다.
  2. 터미널을 선호하는 경우, “/etc/pulse/”의 “default.pa” 파일에 다음 모듈을 추가할 수도 있습니다. 이 모듈은 Paprefs에서 수신자와 송신기를 활성화하는 것과 똑같은 기능을 합니다.
load-module module-null-sink sink_name=rtp  
load-module module-rtp-send source=rtp.monitor  
set-default-sink rtp  
load-module module-rtp-recv

수동으로 하기로 선택한 경우, chmod를 사용하여 default.pa 파일의 권한을 수정할 필요가 있을 수 있습니다.

추가 읽기: 리눅스에서 터미널 입력 불가능 문제 해결 방법

직접 연결 오디오 캐스팅

양쪽 컴퓨터의 “/etc/pulse/default.pa” 파일에 다음 줄을 추가합니다. 이 모듈은 서버와 클라이언트 간의 인증을 위한 것입니다.

load-module module-esound-protocol-tcp auth-anonymous=1  
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24

또한 “/etc/pulse/client.conf” 파일에서 default-server 매개변수를 설정하세요. 서버의 IP 주소나 호스트 이름(PC 이름)이 될 수 있습니다.

윈도우에서 리눅스로 오디오 캐스팅

윈도우 컴퓨터가 있고 이를 리눅스 장치로 스트리밍하고 싶다면, Pulseaudio는 리눅스에서 윈도우로 또는 그 반대로 신뢰할 수 있게 스트리밍할 수 없습니다. Scream은 윈도우에서 리눅스로 오디오를 캐스팅할 수 있게 해주는 몇 안 되는 대안 중 하나입니다. 이 방법은 윈도우 11에서는 테스트되지 않았습니다.

설치는 GitHub 링크에서 윈도우 10 애플리케이션을 다운로드하고, 리눅스 수신기는 리포지토리에서 다운로드하는 것만큼 쉽습니다. 다음 터미널 명령어는 수신기를 설치하며 수신기 링크에서도 사용할 수 있습니다.

# Redhat, CentOS 등  
sudoyum install pulseaudio-libs-devel  
  
# Debian, Ubuntu 등  
sudoapt-get install libpulse-dev

Pulseaudio를 사용하지 않으려면, Jack은 윈도우에서 리눅스로 오디오를 스트리밍하는 확실한 방법을 제공합니다. 이 방법은 ASIO 브리지를 사용하여 JACK을 윈도우 컴퓨터의 오디오 싱크에 연결합니다.

Linux 및 Windows 컴퓨터 양쪽에 JACK을 설치하세요. Windows에서는 다음 링크에서 다운로드 및 설치할 수 있고, 리눅스에서는 패키지 관리자에서 설치해야 합니다. 제 경우에는 apt와 다음 명령을 사용했습니다:

sudo apt install jackd

Windows 머신에 ASIO Bridge도 설치해야 합니다. 설치를 완료한 후, Windows 명령줄에서 다음 명령을 실행하세요:

regsvr32 32bits\JackRouter.dll  
regsvr32 64bits\JackRouter.dll

Linux 머신에서는 터미널에 jack_load netmanager를 입력하거나 qjackctl을 사용하여 자동으로 활성화되도록 설정하세요(Cadence 및 Catia도 훌륭한 패치베이입니다). 옵션 탭으로 이동하여 “Startup 후 스크립트 실행” 상자를 체크하고 명령을 추가하세요.

Screenshot From 2022 09 30 18 10 28

마지막 단계는 Windows 장치에서 JACK NetDriver를 시작하는 것입니다. 또는 명령줄에서 jackd -R -d net를 입력하고, ASIO Bridge를 시작하고, ASIO 장치를 JackRouter로 설정하세요. qjackctl이나 선택한 패치베이에서 Windows 호스트 네임을 볼 수 있어야 합니다. 가끔 이 단계에서 qjackctl을 재시작해야 할 수도 있으니, 처음 시도에서 작동하지 않더라도 걱정하지 마세요.

추가 읽기: 리눅스에서 flac2all을 사용해 FLAC 파일 트랜스코딩하는 방법

자주 묻는 질문

리눅스에서 오디오를 캐스팅할 수 있는 대체 애플리케이션이 있나요?

리눅스에는 여러 미디어 서버 및 캐스팅 애플리케이션이 있습니다. 이 모든 것을 설명하는 것은 불가능하지만, 주목할 만한 몇 가지는 Mkchromecast와 Soundwire입니다.

오디오 캐스팅을 활성화하면 내 PC가 사이버 공격에 취약해지나요?

네트워크 관련 작업을 할 때의 한 가지 걱정거리는 보안입니다. 일부 오디오 캐스팅 방법이 컴퓨터를 취약하게 만들 수 있지만, 닫힌 LAN 네트워크 내에서 작업하고 있다면 실질적인 위험은 적습니다.

이 방법을 사용해서 내 TV에 오디오를 캐스팅할 수 있나요?

안타깝게도 VLC나 mkchromecast와 같은 외부 애플리케이션 없이 RTP 또는 직접 연결을 통해 TV에 오디오를 직접 전송할 수는 없습니다. 하지만 대부분의 스마트 TV는 애플리케이션을 설치하거나 다른 장치에서 오디오를 수신 및 전송할 수 있습니다.

이미지 출처: Freepik에서 제공된 소음이 많은 대형 메가폰