폐쇄적인 환경에서 저지연, 고화질로 내 PC 화면 실시간 공유하는 방법 (1/1)

반응형

주위에 내 PC 화면 실시간으로 공유 하고 싶은데, 폐쇄적이고 안전한 환경에서 높은 화질과 낮은 지연 시간을 유지하고 싶다면 어떤 방법이 있을까요? OBS를 활용해서 이를 실현할 수 있는 방법을 자세히 설명드릴게요.

폐쇄적인 환경에서 저지연, 고화질로 내 PC 화면 실시간 공유하는 방법 (1/1)

 

1. 상용 스트리밍 서비스

가장 먼저 떠오르는 방법은 트위치, 아프리카TV, 유튜브 같은 상용 스트리밍 서비스를 사용하는 겁니다. 그러나 이런 방법은 폐쇄성이 부족합니다. 운영자를 비롯한 불특정 다수가 언제든지 들어와서 내가 공유하는 화면을 볼 수 있으니까요. 또한 레이턴시(화면 지연)도 아쉬운 점이 많습니다.

2. 유튜브 일부 공개

유튜브에서 일부 공개로 방송을 켜서 링크를 공유하는 것도 방법이죠. 하지만 유튜브는 레이턴시가 심해서 실시간으로 공유하기엔 적합하지 않습니다. 또, 저작권 침해 소지가 있는 영상을 틀 경우 바로 방송이 중단될 수 있습니다. 따라서 이 방법은 포기하는 것이 좋습니다.

3. 원격 화면 공유 프로그램

폐쇄성이 중요한 경우 원격 화면 공유 프로그램을 사용하는 것도 고려해볼 수 있습니다. 줌이나 디스코드 같은 서비스가 있습니다. 폐쇄성은 보장되지만, 화질 면에서 아쉬움이 남습니다. 저도 디스코드 니트로를 결제해서 사용했지만, 화면 공유 시 끊김이나 깍두기 현상이 발생하곤 했습니다. 화질이 중요하지 않거나 특별한 문제를 겪지 않는다면 이 방법을 사용해보세요.

4. 원격 제어 프로그램

저지연, 고화질, 폐쇄성을 모두 만족하려면 원격 제어 프로그램을 사용하는 방법이 좋습니다. Parsec이나 Moonlight 같은 프로그램이 있습니다. 문라이트는 내 PC를 외부에서 조종할 때 적합하고, 타인과 화면을 공유하는 용도로는 Parsec이 더 나아보입니다. Parsec을 통해 타인과 원격 제어 연결을 하고 마우스, 키보드 권한을 제한해 화면만 공유하면 됩니다. 단점은 OBS를 활용할 수 없다는 점입니다.

5. 자체 실시간 스트리밍 서버 구축

가장 완벽한 방법은 자체 실시간 스트리밍 서버를 구축하는 것입니다. 이 글에서는 OvenMediaEngine을 사용해서 자체 실시간 스트리밍 서버를 구축하는 방법을 설명드리겠습니다. 시놀로지 NAS와 도커를 활용해 볼게요.

준비물

  • 시놀로지 NAS
  • 도커(Container Manager)

1. 도커 설치

DSM 7.2에서 도커가 컨테이너 매니저로 바뀌었습니다. 컨테이너 매니저를 켜고 -> 레지스트리 -> OvenMediaEngine 검색 -> latest 태그 버전으로 다운로드 받습니다.

2. 폴더 생성

파일 스테이션에 들어가면 최상위에 docker 폴더가 있습니다. 그 안에 ome 폴더를 만들고, conf, logs 폴더를 각각 생성합니다.

3. 인증서 내보내기

제어판을 켜고 -> 보안 -> 인증서 탭으로 갑니다. 대부분 *.synology.me 도메인을 사용하고 계실 겁니다. 사용 중인 인증서를 선택하고 오른쪽 클릭해서 '인증서 내보내기'를 누릅니다. cert.pem, chain.pem, privkey.pem 파일을 conf 폴더에 넣습니다.


4. 권한 부여

시놀로지 NAS에 SSH로 연결합니다. 다음 명령어를 입력해 권한을 부여합니다:

sudo chgrp -R docker /volume1/docker/ome 
sudo chmod -R 775 /volume1/docker/ome

5. 도커 컨테이너 설정

도커를 사용해 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>
 

6. 포트포워딩

공유기 페이지로 접속해 포트포워딩 설정을 합니다. 외부 포트와 내부 포트는 다음과 같이 설정합니다:

  • 외부 포트: 1935, 9999, 9000, 3333, 3478, 10000-10009 (TCP/UDP)

7. 도커 실행

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

8. OBS 설정

PC에서 OBS를 실행하고 설정 -> 방송 탭으로 갑니다. RTMP 또는 SRT 프로토콜을 선택합니다:

  • RTMP 프로토콜:
    • 서버: rtmp://나스 내부 IP주소:1935/app
    • 스트림 키: stream
  • SRT 프로토콜:
    • 서버: srt://나스 내부 IP 주소:9991?streamid=srt%3A%2F%2F나스 내부 IP 주소%3A9991%2Fapp%2Fstream
    • 스트림 키: (공백)

9. 방송 송출 확인

오븐 플레이어 데모 사이트로 접속합니다. 스트림 주소를 입력하고 ADD SOURCE를 누릅니다:

  • WebRTC: wss://도메인:3334/app/stream
  • Low-Latency HLS: https://도메인:3334/app/stream/llhls.m3u8

이제 90% 완료되었습니다. 영상을 볼 때마다 오븐 플레이어 데모 사이트로 접속하는 대신, Radium을 설치해 더 편리한 페이지를 만들어볼 수 있습니다.

10. Radium 설치

다음 명령어를 입력해 Radium을 설치합니다:

cd /volume1/docker/radium
docker-compose up -d

이제 WebRTC 스트림을 받는 웹 서버가 만들어졌습니다. 도메인:3000 주소로 접속하면, 닉네임을 입력하고 채팅과 함께 영상을 볼 수 있습니다.

 

결론

폐쇄적이고 안전한 환경에서 저지연, 고화질로 내 PC 화면을 실시간 공유하는 방법을 알아봤습니다. 자체 실시간 스트리밍 서버를 구축해 OBS와 함께 사용하면, 최고의 화면 공유 환경을 제공할 수 있습니다. 해당 소프트웨어를 만들어주신 분들께 감사드리며, 이 방법을 통해 보다 편리하고 안전한 화면 공유를 즐기시기 바랍니다.

728x90
반응형