江邊微影 / linux / 基于Nginx搭建RTMP/HLS視頻直播服務器

0 0

   

基于Nginx搭建RTMP/HLS視頻直播服務器

2020-03-10  江邊微影

服務器環境

服務器OS:CentOS Linux release 7.2.1511
nginx版本:1.14.1
nginx-rtmp-module:基于Nginx的開源流媒體服務器

安裝nginx + nginx-rtmp-module

nginx官網官網下載最新的源碼包,到nginx-rtmp-module項目地址下載最新源碼
編譯安裝nginx,注意在參數里指定nginx-rtmp-module

  1. # cd /software
  2. # rz nginx-1.14.1.tar.gz
  3. # tar xf nginx-1.14.1.tar.gz
  4. # git clone https://github.com/arut/nginx-rtmp-module.git
  5. # cd nginx-1.14.1
  6. # ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --add-module=/soft/nginx-rtmp-module
  7. # make && make install

/soft/nginx-rtmp-module 改為服務器存放的實際地址

配置nginx虛擬主機

nginx.conf中添加rtmp服務配置:

  1. # vim /usr/local/nginx/conf/nginx.conf
  2. rtmp {
  3. server {
  4. listen 1935; #監聽的端口
  5. chunk_size 4096;
  6. application hls {
  7. live on;
  8. hls on;
  9. hls_path /usr/local/nginx/html/hls; #視頻流文件目錄(自己創建)
  10. hls_fragment 3s;
  11. }
  12. }
  13. }

參數說明

  1. rtmp 是協議名稱
  2. server 說明內部中是服務器的相關配置
  3. listen 監聽的端口,rtmp協議的默認端口為1935
  4. application 訪問的應用路徑是hls
  5. live on 啟用rtmp直播
  6. record off 不記錄數據
  7. hls on 啟用hls直播
  8. hls_path 切片保存位置
  9. hls_fragment 每個切片的長度

配置直播,hls支持以及狀態監控頁面

  1. location /hls {
  2. types {
  3. application/vnd.apple.mpegurl m3u8;
  4. #或 application/x-mpegURL
  5. video/mp2t ts;
  6. }
  7. alias /usr/local/nginx/html/hls; #視頻流文件目錄(自己創建)
  8. expires -1;
  9. add_header Cache-Control no-cache;
  10. }
  11. location /stat {
  12. rtmp_stat all;
  13. rtmp_stat_stylesheet stat.xsl;
  14. }

  15. location /stat.xsl {
  16. root /usr/local/extend_module/nginx-rtmp-module/;
  17. }
  18. }
  19. }

nginx最終配置

  1. worker_processes 1;

  2. events {
  3. worker_connections 1024;
  4. }


  5. http {
  6. include mime.types;
  7. default_type application/octet-stream;
  8. sendfile on;
  9. keepalive_timeout 65;
  10. server {
  11. listen 80;
  12. server_name localhost;
  13. location / {
  14. root html;
  15. index index.html index.htm;
  16. }
  17. error_page 500 502 503 504 /50x.html;
  18. location = /50x.html {
  19. root html;
  20. }

  21. location /hls {
  22. types {
  23. application/vnd.apple.mpegurl m3u8;
  24. #或 application/x-mpegURL
  25. video/mp2t ts;
  26. }
  27. alias /usr/local/nginx/html/hls; #視頻流文件目錄(自己創建)
  28. expires -1;
  29. add_header Cache-Control no-cache;
  30. }
  31. location /stat {
  32. rtmp_stat all;
  33. rtmp_stat_stylesheet stat.xsl;
  34. }

  35. location /stat.xsl {
  36. root /usr/local/extend_module/nginx-rtmp-module/;
  37. }

  38. }
  39. }
  40. rtmp {
  41. server {
  42. listen 1935;
  43. chunk_size 4096;

  44. application hls {
  45. live on;
  46. hls on;
  47. hls_path /usr/local/nginx/html/hls; #視頻流文件目錄(自己創建)
  48. hls_fragment 3s;
  49. }
  50. }
  51. }

nginx常用操作

  1. # cp /usr/local/nginx/sbin/nginx /usr/local/bin/ #把nginx加入到環境變量里,不用輸入全路徑了
  2. # nginx #第一次啟動
  3. # nginx -t #檢查配置文件是否正確
  4. # nginx -s reload #平滑重啟,修改配置文件后,不斷服務重啟
  5. # nginx -s stop #停止服務

客戶端推送

直播推流端使用rtmp協議推流,端口為1935。URL格式為:rtmp://ip:端口/hls。推流軟件推薦使用開源的OBS

流名稱要與寫的觀看直播的頁面中的xxxx.m3u8名稱一致

查看直播

瀏覽器輸入http:/xx.xx.xx.xx/hls/test.m3u8就能看直播了

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。如發現有害或侵權內容,請點擊這里 或 撥打24小時舉報電話:4000070609 與我們聯系。

    猜你喜歡

    0條評論

    發表

    請遵守用戶 評論公約

    類似文章 更多
    喜歡該文的人也喜歡 更多

    fun888 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>