>  기사  >  운영 및 유지보수  >  nginx가 nginx-rtmp-module 모듈을 사용하여 라이브 방송실 기능을 구현하는 방법

nginx가 nginx-rtmp-module 모듈을 사용하여 라이브 방송실 기능을 구현하는 방법

WBOY
WBOY앞으로
2023-05-19 08:13:051575검색

시스템 환경

wujianjun@wujianjun-work ~ $ uname -a
linux wujianjun-work 4.10.0-37-generic #41~16.04.1-ubuntu smp fri oct 6 22:42:59 utc 2017 x86_64 x86_64 x86_64 gnu/linux

소프트웨어 환경

obs(공개 방송 소프트웨어) v20.0.1(리눅스)

nginx 버전: nginx/1.13.6

build by gcc 5.4.0 20160609(ubuntu 5.4.0-6ubuntu1~16.04 .5)

openssl 1.0.2g로 구축 2016년 3월 1일

tls sni 지원 활성화

인수 구성: –with-pcre=pcre-8.38 –add-module=nginx-rtmp-module-1.1.11

nginx+obs 설치 및 구성 obs

wujianjun@wujianjun-work ~ $ sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
wujianjun@wujianjun-work ~ $ sudo apt-get update && sudo apt-get install ffmpeg
wujianjun@wujianjun-work ~ $ sudo apt-get install obs-studio
wujianjun@wujianjun-work ~ $ sudo add-apt-repository ppa:obsproject/obs-studio
wujianjun@wujianjun-work ~ $ sudo apt-get update && sudo apt-get install obs-studio

nginx를 설치하고 rtmp 모듈

nginx-rtmp-module( )을 설치합니다.

wujianjun@wujianjun-work ~ $ sudo apt-get install build-essential
wujianjun@wujianjun-work ~ $ wget wget http://nginx.org/download/nginx-1.13.6.tar.gz
wujianjun@wujianjun-work ~/nginx-1.13.6 $ wget https://github.com/arut/nginx-rtmp-module/archive/v1.1.11.tar.gz
wujianjun@wujianjun-work ~/nginx-1.13.6 $ tar -xvf v1.1.11.tar.gz
wujianjun@wujianjun-work ~/nginx-1.13.6 $ wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.tar.gz
wujianjun@wujianjun-work ~/nginx-1.13.6 $ tar -xvf pcre-8.38.tar.gz
wujianjun@wujianjun-work ~/nginx-1.13.6 $ ls -all
总用量 748
drwxr-xr-x 9 wujianjun wujianjun 4096 10月 15 11:39 .
drwxr-xr-x 63 wujianjun wujianjun 4096 10月 15 11:33 ..
drwxr-xr-x 6 wujianjun wujianjun 4096 10月 15 11:33 auto
-rw-r--r-- 1 wujianjun wujianjun 282456 10月 10 23:22 changes
-rw-r--r-- 1 wujianjun wujianjun 430416 10月 10 23:22 changes.ru
drwxr-xr-x 2 wujianjun wujianjun 4096 10月 15 11:33 conf
-rwxr-xr-x 1 wujianjun wujianjun 2502 10月 10 23:22 configure
drwxr-xr-x 4 wujianjun wujianjun 4096 10月 15 11:33 contrib
drwxr-xr-x 2 wujianjun wujianjun 4096 10月 15 11:33 html
-rw-r--r-- 1 wujianjun wujianjun 1397 10月 10 23:22 license
drwxr-xr-x 2 wujianjun wujianjun 4096 10月 15 11:33 man
drwxrwxr-x 6 wujianjun wujianjun 4096 2月 13 2017 nginx-rtmp-module-1.1.11
drwxr-xr-x 7 wujianjun wujianjun 4096 11月 23 2015 pcre-8.38
-rw-r--r-- 1 wujianjun wujianjun  49 10月 10 23:22 readme
drwxr-xr-x 9 wujianjun wujianjun 4096 10月 15 11:33 src
wujianjun@wujianjun-work ~/nginx-1.13.6 $ ./configure --with-pcre=pcre-8.38 --add-module=nginx-rtmp-module-1.1.11
wujianjun@wujianjun-work ~/nginx-1.13.6 $ make && sudo make install
wujianjun@wujianjun-work ~/nginx-1.13.6 $ ls -all /usr/local/nginx/
总用量 24
drwxr-xr-x 6 root root 4096 10月 15 16:11 .
drwxr-xr-x 11 root root 4096 10月 15 16:11 ..
drwxr-xr-x 2 root root 4096 10月 15 16:11 conf
drwxr-xr-x 2 root root 4096 10月 15 16:11 html
drwxr-xr-x 2 root root 4096 10月 15 16:11 logs
drwxr-xr-x 2 root root 4096 10月 15 16:11 sbin

rtmp 프로토콜 구성 추가

wujianjun@wujianjun-work ~/nginx-1.13.6 $ sudo vi /usr/local/nginx/conf/nginx.conf

nginx 끝에 다음 rtmp 프로토콜 구성을 추가합니다. conf file

rtmp {
 server {
  listen 1935;
  chunk_size 4096;

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

Start & Test

Start nginx

wujianjun@wujianjun-work ~/nginx-1.13.6 $ sudo /usr/local/nginx/sbin/nginx

Start obs

방금 설치한 obs 소프트웨어를 열고 해당 소스에서 이미지의 푸시 소스를 구성합니다(저는 여기서 창 캡처를 선택합니다). "설정"을 클릭합니다. " 아래 그림과 같이 오른쪽 하단에 스트리밍 푸시 주소를 구성합니다.

nginx가 nginx-rtmp-module 모듈을 사용하여 라이브 방송실 기능을 구현하는 방법

구성이 완료된 후 "스트리밍 시작"을 클릭합니다.

네트워크 스트리밍 재생을 지원하는 비디오 플레이어를 시작합니다(시연에서는 vlc 플레이어를 사용합니다)

아래 그림과 같이 네트워크 스트리밍 재생을 위한 주소를 구성하세요.

nginx가 nginx-rtmp-module 모듈을 사용하여 라이브 방송실 기능을 구현하는 방법

"재생"을 클릭한 후 몇 초 기다리면 obs로 캡처한 이미지가 플레이어에 표시되는 것을 볼 수 있습니다.

nginx가 nginx-rtmp-module 모듈을 사용하여 라이브 방송실 기능을 구현하는 방법

비디오 스트림은 네트워크를 통해 전송되어야 하기 때문에 라이브 이미지에서 몇 초의 지연이 발생합니다.

http

1을 통해 라이브 비디오에 액세스합니다. nginx.conf에서 구성을 변경하고 hls 구성을 추가한 다음(hls는 스트리밍 미디어 서버에서 스트리밍 미디어를 저장하는 데 사용되는 폴더) hls가 있는 디렉터리를 설정합니다. http 프로토콜 액세스 디렉터리에서 변경된 구성은 다음과 같습니다.

rtmp {
 server {
  listen 1935;
  chunk_size 4096;

  application live {
   live on;
   hls on;
   hls_path /usr/share/nginx/html/hls;
   hls_fragment 5s;
  }
 }
}

http {
 server {
 listen 80;
 .....
 location / {
   #root html;
   root /usr/share/nginx/html;
   index index.html index.htm;
 }
 .....
 }
}

참고: hls가 있는 디렉터리의 nginx 사용자에게 쓰기 권한이 있어야 합니다.

2. Obs 소프트웨어는 녹화 ​​스트림 이름을 구성합니다

obs 푸시 스트림 URL 구성에는 "스트림 이름"을 설정할 수 있는 곳이 있습니다. 여기에 이름을 입력할 수 있습니다. 예시는 여기)

3. nginx와 obs 소프트웨어를 다시 시작하면 모바일 브라우저에 http://ip/hls/test.m3u8을 입력하여 휴대폰에서 라이브 비디오를 재생할 수 있습니다. (라이브 방송 딜레이가 좀 커서 글은 추후 최적화 하겠습니다)

nginx가 nginx-rtmp-module 모듈을 사용하여 라이브 방송실 기능을 구현하는 방법

위 내용은 nginx가 nginx-rtmp-module 모듈을 사용하여 라이브 방송실 기능을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제