주위에 내 PC 화면 실시간으로 공유 하고 싶은데, 폐쇄적이고 안전한 환경에서 높은 화질과 낮은 지연 시간을 유지하고 싶다면 어떤 방법이 있을까요? OBS를 활용해서 이를 실현할 수 있는 방법을 자세히 설명드릴게요.
가장 먼저 떠오르는 방법은 트위치, 아프리카TV, 유튜브 같은 상용 스트리밍 서비스를 사용하는 겁니다. 그러나 이런 방법은 폐쇄성이 부족합니다. 운영자를 비롯한 불특정 다수가 언제든지 들어와서 내가 공유하는 화면을 볼 수 있으니까요. 또한 레이턴시(화면 지연)도 아쉬운 점이 많습니다.
유튜브에서 일부 공개로 방송을 켜서 링크를 공유하는 것도 방법이죠. 하지만 유튜브는 레이턴시가 심해서 실시간으로 공유하기엔 적합하지 않습니다. 또, 저작권 침해 소지가 있는 영상을 틀 경우 바로 방송이 중단될 수 있습니다. 따라서 이 방법은 포기하는 것이 좋습니다.
폐쇄성이 중요한 경우 원격 화면 공유 프로그램을 사용하는 것도 고려해볼 수 있습니다. 줌이나 디스코드 같은 서비스가 있습니다. 폐쇄성은 보장되지만, 화질 면에서 아쉬움이 남습니다. 저도 디스코드 니트로를 결제해서 사용했지만, 화면 공유 시 끊김이나 깍두기 현상이 발생하곤 했습니다. 화질이 중요하지 않거나 특별한 문제를 겪지 않는다면 이 방법을 사용해보세요.
저지연, 고화질, 폐쇄성을 모두 만족하려면 원격 제어 프로그램을 사용하는 방법이 좋습니다. Parsec이나 Moonlight 같은 프로그램이 있습니다. 문라이트는 내 PC를 외부에서 조종할 때 적합하고, 타인과 화면을 공유하는 용도로는 Parsec이 더 나아보입니다. Parsec을 통해 타인과 원격 제어 연결을 하고 마우스, 키보드 권한을 제한해 화면만 공유하면 됩니다. 단점은 OBS를 활용할 수 없다는 점입니다.
가장 완벽한 방법은 자체 실시간 스트리밍 서버를 구축하는 것입니다. 이 글에서는 OvenMediaEngine을 사용해서 자체 실시간 스트리밍 서버를 구축하는 방법을 설명드리겠습니다. 시놀로지 NAS와 도커를 활용해 볼게요.
DSM 7.2에서 도커가 컨테이너 매니저로 바뀌었습니다. 컨테이너 매니저를 켜고 -> 레지스트리 -> OvenMediaEngine 검색 -> latest 태그 버전으로 다운로드 받습니다.
파일 스테이션에 들어가면 최상위에 docker 폴더가 있습니다. 그 안에 ome 폴더를 만들고, conf, logs 폴더를 각각 생성합니다.
제어판을 켜고 -> 보안 -> 인증서 탭으로 갑니다. 대부분 *.synology.me 도메인을 사용하고 계실 겁니다. 사용 중인 인증서를 선택하고 오른쪽 클릭해서 ‘인증서 내보내기’를 누릅니다. cert.pem, chain.pem, privkey.pem 파일을 conf 폴더에 넣습니다.
시놀로지 NAS에 SSH로 연결합니다. 다음 명령어를 입력해 권한을 부여합니다:
sudo chgrp -R docker /volume1/docker/ome
sudo chmod -R 775 /volume1/docker/ome
도커를 사용해 OvenMediaEngine 컨테이너를 설정합니다:
docker run -d --name tmp-ome airensoft/ovenmediaengine:latest
docker cp tmp-ome:/opt/ovenmediaengine/bin/origin_conf/Server.xml /volume1/docker/ome/conf
docker cp tmp-ome:/opt/ovenmediaengine/bin/origin_conf/Logger.xml /volume1/docker/ome/conf
docker rm -f tmp-ome
Server.xml 파일을 열어 다음 부분을 수정합니다:
<Name>*.synology.me</Name>
</Names>
<TLS>
<CertPath>./cert.pem</CertPath>
<KeyPath>./privkey.pem</KeyPath>
<ChainCertPath>./chain.pem</ChainCertPath>
공유기 페이지로 접속해 포트포워딩 설정을 합니다. 외부 포트와 내부 포트는 다음과 같이 설정합니다:
OvenMediaEngine을 실행하는 명령어를 입력합니다:
docker run -d -it --name ome -e OME_HOST_IP=현재 사용 중인 IP \
-v /volume1/docker/ome/conf:/opt/ovenmediaengine/bin/origin_conf \
-v /volume1/docker/ome/logs:/var/log/ovenmediaengine \
-p 1935:1935 -p 9991:9999/udp -p 9001:9000 -p 3333-3333:3334-3334 -p 3478:3478 \
-p 10000-10009:10000-10009/udp \
airensoft/ovenmediaengine:latest
PC에서 OBS를 실행하고 설정 -> 방송 탭으로 갑니다. RTMP 또는 SRT 프로토콜을 선택합니다:
오븐 플레이어 데모 사이트로 접속합니다. 스트림 주소를 입력하고 ADD SOURCE를 누릅니다:
이제 90% 완료되었습니다. 영상을 볼 때마다 오븐 플레이어 데모 사이트로 접속하는 대신, Radium을 설치해 더 편리한 페이지를 만들어볼 수 있습니다.
다음 명령어를 입력해 Radium을 설치합니다:
cd /volume1/docker/radium
docker-compose up -d
이제 WebRTC 스트림을 받는 웹 서버가 만들어졌습니다. 도메인:3000 주소로 접속하면, 닉네임을 입력하고 채팅과 함께 영상을 볼 수 있습니다.
폐쇄적이고 안전한 환경에서 저지연, 고화질로 내 PC 화면을 실시간 공유하는 방법을 알아봤습니다. 자체 실시간 스트리밍 서버를 구축해 OBS와 함께 사용하면, 최고의 화면 공유 환경을 제공할 수 있습니다. 해당 소프트웨어를 만들어주신 분들께 감사드리며, 이 방법을 통해 보다 편리하고 안전한 화면 공유를 즐기시기 바랍니다.
While you are at it ~ 하는 김에 영어로 쉽게 말하기 "While you are at…