Linux로 나만의 라이브 비디오 스트리밍 서버 만들기

대부분의 라이브 스트리밍 도구와 사이트는 대중에게 무료로 제공되지만 온라인에 표시되기를 원하지 않는 정보를 제공하기 위해 계정을 만들어야 하는 경우가 많습니다. 그들은 광고 뒤에 일부 콘텐츠를 보유할 수 있으며 스스로 고집하지 않을 수도 있는 혼란스러운 서비스 약관을 통합 (can ) 수 있습니다  .(Service)

라이브 스트리밍 기능을 즐기지만 자신의 비디오를 대중에게 공개할 필요는 없는 사람들이 있습니다. 대신, 그들은 자신의 스트림과 그들이 생산하는 콘텐츠를 더 잘 제어하기를 원합니다. Linux 와 같은 (Linux)오픈 소스(Open-source) 소프트웨어 는 이러한 장애물에 대한 최선의 해결책입니다.

미리 생각하기(Thinking Ahead)

자신의 개인 스트리밍 서버 설정을 시작하기 전에 몇 가지 질문을 스스로에게 던져야 합니다. 첫째(First) , 당신이 찾고 있는 스트림의 품질은 무엇입니까? 다음으로(Next) , 몇 명의 시청자를 끌어들일 것으로 예상하십니까? 스트리밍된 콘텐츠를 모두 어디에 저장할 것입니까? 누가 해당 콘텐츠에 액세스할 수 있습니까?

시스템 요구 사항도 우려 사항으로 볼 수 있습니다. 그러나 이와 관련하여 정확히 무엇이 필요한지에 대한 정해진 규칙은 없으므로 스스로에게 호의를 베풀고 목표에 가장 적합한 것이 무엇인지 실험해 보십시오.

스트리밍의 오디오 및 비디오 부분을 처리할 프로토콜을 파악해야 합니다. RTMP ( 실시간 메시징 프로토콜 )는 훌륭한 선택이지만 (Messaging Protocol)WebRTC 와 같은 상황에서 더 나은 선택이 될 수 있습니다. RTMP 는 광범위한 지원을 제공하므로 이 기사에서는 이에 중점을 둘 것입니다.

걱정해야 할 또 다른 사항은 "라이브" 스트리밍이 지연될 가능성이 있다는 것입니다. 라이브를 한다고 해서 모든 것이 완벽하게 정렬되는 것은 아닙니다. 비디오(Video) 스트림은 인코딩, 전송, 버퍼링 및 표시되어야 하므로 스트림 속성을 약간 조정해야 합니다.

리눅스 서버 설정(Linux Server Setup)

Ubuntu Linux 는 개인적으로 가장 좋아하는 버전이므로 여기에서 선택합니다. GUI 옵션 을 선호하는 사람들을 위해 Ubuntu Desktop 을 사용할 수 있습니다. 

  • Ubuntu(Fire) 설치 프로그램을 실행(Ubuntu) 하고 필요에 가장 적합한 설정을 선택하십시오. 이것은 서버로 사용될 것이기 때문에 일부 정적 네트워크 설정을 지정하고 싶을 것입니다.
  • (Reboot)자동으로 재부팅되지 않으면 설치 후 시스템을 재부팅 하십시오. Ubuntu 시스템이 부팅 되면 사용 가능한 업데이트를 설치하십시오.
sudo apt update
sudo apt upgrade

이 스트리밍 서버에 Nginx 웹 서버(Nginx web server) 를 사용할 것 입니다. 설치:

sudo apt install nginx

Nginx 가 미디어 스트림을 처리할 수 있도록 RTMP 모듈을 조달합니다 .

sudo add-apt-repository universe
sudo apt install libnginx-mod-rtmp

미디어 스트림을 수락하고 전달할 수 있도록 Nginx의 구성을 조정합니다.

sudo nano /etc/nginx/nginx.conf

구성 파일의 맨 아래에 다음 코드를 추가합니다.

rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {
                        live on;
                        record off;
                }
        }
}

나중에 작동하는 스트리밍 서버를 만드는 데 사용할 구성 파일을 저장합니다.

(Restart Nginx)새 구성으로 Nginx를 다시 시작 합니다.

sudo systemctl restart nginx

스트리밍 소프트웨어 설정(Streaming Software Setup)

서버가 준비되었으므로 이제 스트리밍 소프트웨어를 설정할 차례입니다. 이번 런스루에서는 OBS(  Open Broadcaster Software )를 사용해 보겠습니다 .

  • 사이트로 이동하여 Linux용(Linux) 빌드를 선택합니다 . 소프트웨어가 실행된 후 하드웨어에 가장 적합한 설정으로 OBS 를 구성하십시오.(OBS)
  • 소스(Source) 바로 아래에 있는 +를 클릭하여 스트리밍 소스를 추가합니다 .

  • 테스트를 위해 디스플레이 캡처(Display Capture) 를 선택하고 소스 이름을 입력합니다.
  • 확인(OK) 버튼을 클릭하면 OBS 가 바탕 화면을 미러링합니다.
  • 그런 다음 파일(File) 탭을 클릭하고 설정(Settings) 을 선택합니다 . 

스트림 섹션에서 스트림 유형을 사용자 지정…으로 설정(set Stream Type to Custom…) 을 선택 하고 서버(Server) 필드 에 다음 URL 을 입력합니다.(URL)

rtmp://IPaddress/live 

IPaddress 대신 스트리밍 서버의 IP 주소를 입력합니다.

이제 자신의 스트림 키 를 만들고 (Stream Key)스트림(Stream) 키 상자 에 입력합니다 . 기억할 수 있는 것으로 만들고 기록해 두십시오. 보안을 강화 하려면 인증 사용(Use authentication ) 확인란을 선택하고 선호하는 자격 증명을 추가하십시오.

적용(Apply)확인(OK) 버튼 으로 완료 합니다.

이제 스트리밍을 위해 모든 것이 구성되어야 합니다. 첫 번째 스트림을 시작하려면 지금(Stream Now) 스트리밍 버튼을 누르십시오 . 모든 것이 올바르게 완료되면 버튼이 스트리밍 중지(Stop Streaming) 로 변경 됩니다. 스트림의 대역폭 측정항목은 OBS(OBS) 창 하단에 나타납니다 .

첫 번째 시청자가 되십시오(Be Your First Viewer)

RTMP 를 지원하는 많은 오픈 소스 미디어 플레이어가 있으며 , 그 중 가장 잘 알려진 것은 VLC 미디어 플레이어(VLC media player) 입니다. 이 소프트웨어를 설치 및 실행하고 미디어(Media) 탭을 클릭하고 메뉴에서 네트워크 스트림 열기(Open Network Stream) 를 선택 합니다. 

스트림 (Got)(Stream Key) 가 있습니까 ? 스트림 경로를 입력하고 이전에 설정 한 스트림 키 를 끝까지 포함합니다. (Stream Key)다음과 같아야 합니다.

rtmp://IPaddress/live/SecretKey

재생(Play) 을 클릭 하면 자신의 스트림을 실시간으로 볼 수 있습니다.

추가 조치(Additional Measures)

이제 기본 사항에 도달했으므로 스트리밍 서버에 대한 액세스를 제한하고 비디오를 녹화하고 저장할 수 있는 기능은 관심을 가질 수 있는 두 가지 다른 요소입니다.

기본적으로 누구나 스트림을 볼 수 있습니다. 이것은 처음부터 서버를 생성하는 목적에 어긋날 수 있습니다. Linux 방화벽, .htaccess 파일(.htaccess file) 또는 RTMP 모듈의 기본 제공 액세스 제어를(built-in access controls in the RTMP module) 사용하여 제한된 액세스를 설정하고 싶을 것 입니다. 이 선택은 당신에게 달려 있습니다.

여기에 제공된 Nginx 구성을 사용하면 비디오를 스트리밍할 수만 있고 저장할 수는 없습니다. 저장 옵션을 추가하려면 Nginx 구성의 (Nginx)RTMP 섹션 바로 아래에서 스트림 녹화 옵션을 설정하고 콘텐츠를 저장 및 저장할 위치를 제공할 수 있습니다. 

(Set)Nginx 가 쓸 수 있도록 기존 경로를 설정 하십시오. 다음을 입력:

응용 프로그램 라이브 { (application live {)
             라이브에; (             live on;)
             모두 기록; (             record all;)
             record_path /var/www/html/recordings;
             record_unique on;
}

Ubuntu Linux OS 를 사용하여 라이브 스트리밍 서버를 설정할 때 필요한 모든 것 입니다. 라이브가 아닌 미디어 스트리밍 서버에 더 관심이 있다면 OBS 대신 Plex 를 사용하는 것이 좋습니다.(Plex)



About the author

저는 10년 이상의 경험을 가진 선임 소프트웨어 엔지니어이자 이미지 및 iPhone 앱 개발자입니다. 하드웨어 및 소프트웨어에 대한 제 기술은 모든 기업 또는 소비자 스마트폰 프로젝트에 적합합니다. 고품질 이미지를 만드는 방법과 다양한 이미지 형식으로 작업할 수 있는 능력에 대해 깊이 이해하고 있습니다. 또한 Firefox 및 iOS 개발에 익숙합니다.



Related posts