>  기사  >  백엔드 개발  >  Thinkphp를 사용하여 웹 라이브 방송을 만드는 방법

Thinkphp를 사용하여 웹 라이브 방송을 만드는 방법

一个新手
一个新手원래의
2017-09-14 09:25:088487검색

이 프로젝트는 TP+Redis+Nginx+nginx-rtmp-module+ffmpeg+HLS +Swoole

장점 소개

배경 nginx-rtmp 설치 설명

거기 현재 두 가지 주요 서버는 다양한 rtmp 서버, 상업용 및 오픈 소스입니다. 상업용은 오픈소스보다 더 많은 기능을 지원하며 필요에 따라 선택할 수 있습니다. 상업용에는 FMS Wowza

오픈소스 RTMP 서버

    red5 java가 더 자주 사용되며 성능은 여전히 ​​유지됩니다. 좋은!
  1. crtmpserver C++는 여러 rtmp 프로토콜, 모바일 장치 및 IPTV 관련 네트워크 프로토콜을 지원합니다. http://www.rtmpd.com/ Erlyvideo erlong에는 오픈 소스 및 상용 버전이 있습니다 https//github.com/erlyvideo/erlyvideo h
  2. aXeVideo haXe 실험적이고 가벼운 서버 http://code.google.com/p/haxevideo/
  3. FluorineFx .Net 정의 예정 http://www/fluorinefx.com
  4. nginx-rtmp c The nginx 모듈은 rtmp와 HLS를 지원합니다 https://github.com/arut/nginx-rtmp-module
  5. 다섯 번째 Nginx-rtmp를 사용합니다. 다음으로 설치 과정을 설명하겠습니다.

Nginx-rtmp

1. nginx-rtmp-module 다운로드: nginx-rtmp-module의 공식 github 주소: https://github.com/arut/nginx-rtmp-module

사용 명령:

 git clone https://github.com/arut/nginx-rtmp-module.git

nginx-rtmp-module을 Linux에 다운로드합니다.

2. nginx 설치: nginx 공식 웹사이트는 http://nginx.org/en/download.html

wget http://nginx.org/download/nginx-1.8.1.tar.gz
tar -zxvf nginx-1.8.1.tar.gz
cd nginx-1.8.1
./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module --with-http_ssl_module
make && make install

이번 기본 설치 디렉터리는 /root, add-module은 다운로드된 nginx-rtmp입니다. -모듈 파일 경로. 설치 중에 openssl이 설치되지 않았다는 오류가 보고될 수 있습니다.

yum -y install openssl openssl-devel

3. nginx 구성 파일을 수정합니다.

vi /usr/local/nginx/conf/nginx.conf

다음 콘텐츠를 추가합니다.

rtmp {
server {    
    listen 1935;  #监听的端口  
    chunk_size 4000;    
      
       
    application hls {  #rtmp推流请求路径  
        live on;    
        hls on;    
        hls_path /usr/share/nginx/html/hls;    
        hls_fragment 5s;    
    }    
}    
}

hls_path에는 읽기 및 쓰기 가능 권한이 필요합니다. . http에서 서버 모듈을 수정하세요:

server {listen 81;server_name localhost;
#charset koi8-r;  
#access_log  logs/host.access.log  main;  
location / {  
    root   /usr/share/nginx/html;  
    index  index.html index.htm;  
}  
#error_page  404              /404.html;  
# redirect server error pages to the static page /50x.html  
#  
error_page   500 502 503 504  /50x.html;  
location = /50x.html {  
    root   html;  
}

물론 루트는 필요에 따라 수정할 수 있습니다. 그런 다음 nginx를 시작합니다:

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

4. 위 구성을 완료한 후 푸시를 시작할 수 있습니다.

설정->스트리밍에서 정보를 입력하세요. URL은 rtmp://xxx:1935/hls이고, xxx는 서버의 IP 주소이며, hls는 스트리밍 미디어를 저장하는 데 사용됩니다. 테스트 작성 등 재생 시 재생할 스트리밍 미디어를 식별하기 위해 비밀 키를 입력할 수 있습니다. 내용을 입력한 후 스트리밍을 시작하려면 클릭하세요. 이는 스트리밍 미디어 서버가 성공적으로 설정되었음을 의미합니다.

5. 라이브 방송 시청(스트리밍) 라이브 방송 시청은 비교적 간단하게 h5 vedio 태그를 사용하여 시청할 수 있습니다. http://xxx:81/hls/mystream.m3u8을 방문하여 라이브 방송을 시청할 수 있습니다. 여기서 xxx는 서버 IP 주소이거나

브라우저가 HTML5 비디오를 지원하지 않습니다.

위와 동일, xxx는 귀하의 서버 IP 주소. 그런 다음 휴대폰을 사용하여 이 웹사이트에 접속하여 생방송을 시청하세요. 지연은 약 20S입니다. (iOS 사파리 브라우저에서는 정상적으로 보실 수 있습니다.) 마지막에 작성합니다 딜레이가 왜 이렇게 높나요? 이는 서버가 비디오 스트림을 .ts로 끝나는 작은 파일로 자르기 때문입니다.

그리고 우리가 접근하고 있는 것은 .m3u8 파일입니다. 이 파일의 내용은 ts 파일을 하나로 연결하여 재생 효과를 내는 것이므로 상당한 지연이 있을 것으로 보입니다

지연 시간을 줄이는 방법은 없으며 슬라이스 생성 크기와 액세스 속도를 설정할 수 있지만 이로 인해 서버에 대한 부담이 크게 증가합니다. 물론 rtmp 스트리밍 도구(VLC 등)를 사용하여 라이브 방송을 시청할 수도 있습니다. 지연은 약 2-5S이고 풀 주소는 푸시 주소와 동일합니다.

백그라운드에서 원클릭 설치. 초기 관리자 관리자

Bootstrap3을 사용하여 100% 부트스트랩 경험을 제공할 뿐만 아니라 중국인에게 적합한 더 많은 프런트엔드 구성 요소도 포함합니다. . 그리고 하나의 코드 세트가 다양한 화면 크기에 맞게 조정됩니다.

위 내용은 Thinkphp를 사용하여 웹 라이브 방송을 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.