웹사이트 검색

Ubuntu 22.04에서 Nginx-RTMP를 사용하여 비디오 스트리밍 서버를 설정하는 방법


이 페이지에서

  1. 요구 사항\n
  2. Nginx 웹 서버 설치
  3. Nginx-RTMP 설치 및 구성
  4. RTMP 서버로 비디오 보내기
  5. VLC 플레이어로 비디오 스트리밍\n
  6. 모니터링을 위한 RTMP 통계 구성\n
  7. RTMP 통계 페이지 액세스
  8. 결론

"실시간 메시징 프로토콜"이라고도 하는 RTMP는 라이브 온라인 비디오 스트리밍을 지원하는 데이터 전송 기술입니다. 인코더에서 온라인 비디오 호스팅 플랫폼으로 비디오 파일을 전송하는 데 사용됩니다. RTMP는 TCP를 사용하여 이동하고 데이터를 전송할 때 3방향 핸드셰이크를 사용합니다. RTMP는 라이브 TV 방송, 스트리밍 비디오 및 인터넷 전화 서비스를 포함하여 다양한 유형의 미디어와 함께 사용됩니다.

특징

  • 버퍼링 없이 고품질 라이브 동영상 제작\n
  • 설치 및 구성이 쉽습니다.
  • 대부분의 라이브 스트리밍 소프트웨어 및 비디오 서비스와 호환됩니다.\n

이 튜토리얼은 Ubuntu 22.04 서버에서 Nginx-RTMP를 사용하여 비디오 스트리밍 서버를 설정하는 방법을 보여줍니다.

요구 사항

  • Ubuntu 22.04를 실행하는 서버.\n
  • 서버에 루트 암호가 설정되어 있습니다.\n

Nginx 웹 서버 설치

시작하기 전에 Nginx 웹 서버가 서버에 설치되어 있어야 합니다. 설치되어 있지 않은 경우 다음 명령으로 설치할 수 있습니다.

apt install nginx -y

Nginx 패키지를 설치한 후 Nginx 서비스를 시작하고 시스템 재부팅 시 시작되도록 활성화합니다.

systemctl start nginx
systemctl enable nginx

다음 명령으로 Nginx 서비스 상태를 확인할 수 있습니다.

systemctl status nginx

다음과 같은 결과가 표시됩니다.

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2023-01-09 14:54:55 UTC; 28s ago
       Docs: man:nginx(8)
    Process: 43294 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s reload (code=exited, status=0/SUCCESS)
   Main PID: 43005 (nginx)
      Tasks: 3 (limit: 4575)
     Memory: 8.5M
        CPU: 35ms
     CGroup: /system.slice/nginx.service
             ??43005 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??43295 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??43296 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Jan 09 14:54:55 vultr systemd[1]: Starting A high performance web server and a reverse proxy server...
Jan 09 14:54:55 vultr systemd[1]: Started A high performance web server and a reverse proxy server.
Jan 09 14:55:04 vultr systemd[1]: Reloading A high performance web server and a reverse proxy server...
Jan 09 14:55:04 vultr systemd[1]: Reloaded A high performance web server and a reverse proxy server.

Nginx-RTMP 설치 및 구성

기본적으로 Nginx-RTMP 패키지는 Ubuntu 기본 리포지토리에 포함되어 있습니다. 다음 명령으로 설치할 수 있습니다.

apt install libnginx-mod-rtmp -y

Nginx-RTMP 패키지가 설치되면 Nginx 기본 구성 파일을 편집하고 스트림을 정의합니다.

nano /etc/nginx/nginx.conf

파일 끝에 다음 줄을 추가합니다.

rtmp {
        server {
                listen 1935;
                chunk_size 4096;
                allow publish all;               

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

파일을 저장하고 닫은 후 다음 명령을 사용하여 구성 오류가 있는지 Nginx를 확인합니다.

nginx -t

다음 출력이 표시되어야 합니다.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

마지막으로 Nginx 서비스를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart nginx

이 시점에서 Nginx-RTMP가 설치되고 포트 1935에서 수신 대기합니다. 다음 명령으로 확인할 수 있습니다.

ss -antpl | grep 1935

다음 출력이 표시되어야 합니다.

LISTEN 0      511          0.0.0.0:1935      0.0.0.0:*    users:(("nginx",pid=43388,fd=8),("nginx",pid=43387,fd=8),("nginx",pid=43386,fd=8))

RTMP 서버로 비디오 보내기

다음으로 YouTube에서 샘플 비디오를 다운로드하고 FFmpeg를 사용하여 RTMP 서버로 보내야 합니다.

먼저 다음 명령을 사용하여 youtube-dl ad FFmpeg 패키지를 설치합니다.

apt install python3-pip ffmpeg -y
pip install youtube-dl

그런 다음 youtube-dl 명령줄 도구를 사용하여 YouTube에서 비디오를 다운로드합니다.

youtube-dl https://www.youtube.com/watch?v=oNEwEQ0uU1Y

비디오가 시스템에 다운로드되면 FFmpeg 명령을 사용하여 다운로드한 비디오를 RTMP 서버로 보낼 수 있습니다.

ffmpeg -re -i "How to Install Ubuntu 22.04 LTS-oNEwEQ0uU1Y.mp4" -c:v copy -c:a aac -ar 44100 -ac 1 -f flv rtmp://your-server-ip/live/stream &

이 시점에서 다운로드한 비디오는 rtmp://your-server-ip/live/stream으로 전송됩니다.

비디오를 VLC 플레이어로 스트리밍

이 섹션에서는 VLC 플레이어 소프트웨어의 RTMP 서버에서 비디오를 스트리밍하는 방법을 보여줍니다.

먼저 데스크톱 시스템에 로그인하고 VLC 플레이어를 엽니다. 그런 다음 미디어 => 네트워크 스트림 열기를 클릭합니다. 다음 화면이 표시됩니다.

RTMP 서버 URL을 정의하고 재생 버튼을 클릭합니다. 모든 것이 작동하면 다음 화면에서 비디오를 볼 수 있습니다.

모니터링을 위한 RTMP 통계 구성

이 시점에서 RTMP 서버가 설치되어 작동 중입니다. 이제 스트리밍을 모니터링하도록 RTMP 통계 페이지를 구성해야 합니다.

먼저 다음 명령을 사용하여 RTMP stat 파일을 저장할 디렉터리를 만듭니다.

mkdir /var/www/html/rtmp

다음으로 RTMP 통계 파일을 생성된 디렉터리에 복사합니다.

cp /usr/share/doc/libnginx-mod-rtmp/examples/stat.xsl /var/www/html/rtmp/stat.xsl

다음으로 Nginx 기본 가상 호스트 구성 파일을 편집합니다.

nano /etc/nginx/sites-available/default

모든 기본 행을 제거하고 다음 행을 추가하십시오.

server {
    listen 8080;
    server_name  _;

    # rtmp stat
    location /stat {
        rtmp_stat all;
        rtmp_stat_stylesheet stat.xsl;
    }
    location /stat.xsl {
        root /var/www/html/rtmp;
    }

    # rtmp control
    location /control {
        rtmp_control all;
    }
}

완료되면 파일을 저장하고 닫습니다. 그런 다음 Nginx 서비스를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart nginx

RTMP 통계 페이지에 액세스

이제 웹 브라우저를 열고 http://your-server-ip:8080/stat URL을 사용하여 RTMP 통계 페이지에 액세스합니다. 다음 화면에 RTMP 통계가 표시되어야 합니다.

비디오를 스트리밍하고 스트림 통계가 변경되는 것을 볼 때마다 페이지를 새로고침해야 합니다.

결론

이 게시물은 Ubuntu 22.04에서 Nginx-RTMP를 사용하여 비디오 스트리밍 서버를 설정하는 방법을 설명했습니다. 또한 VLC 플레이어를 통해 RTMP 서버를 테스트합니다. 이제 모든 비디오를 RTMP 서버로 스트리밍하고 지원되는 모든 미디어 플레이어에서 액세스할 수 있습니다. 궁금한 점이 있으면 언제든지 문의해 주세요.