服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Nginx - 如何基于Nginx搭建流媒体服务器

如何基于Nginx搭建流媒体服务器

2023-10-13 15:16andflow Nginx

Nginx RTMP是一个Nginx插件,支持将RTMP和HLS流添加到媒体服务器。以ubuntu为力,下面介绍如何安装使用nginx Rtmp 插件的步骤。

如何基于Nginx搭建流媒体服务器

HLS是最常见的视频流媒体协议,HLS是一种自适应流媒体技术,可以根据用户的设备和网络条件对播放媒体内容,以获得最佳播放性能。

Nginx RTMP是一个Nginx插件,支持将RTMP和HLS流添加到媒体服务器。以ubuntu为力,下面介绍如何安装使用nginx Rtmp 插件的步骤。

如何基于Nginx搭建流媒体服务器

1.更新apt库


	apt-get update

2.安装ffmpeg等所需要的软件


	apt-get install -y git build-essential ffmpeg libpcre3 libpcre3-dev libssl-dev zlib1g-dev

3.下载RTMP模块


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

 

4.下载并解压Nginx


	wget http://nginx.org/download/nginx-1.17.6.tar.gztar -xf nginx-1.17.6.tar.gzcd nginx-1.17.6

5.配置Nginx拷贝一份nginx配置文件出来


	mv /usr/local/nginx/conf/nginx.confnano /usr/local/nginx/conf/nginx.conf

将以下内容复制到nginx.conf文件中:


	worker_processes auto;
events {
  worker_connections 1024;
}
# RTMP configuration
rtmp {
  server 
  {
    listen 1935; 
    # Listen on standard RTMP 
    portchunk_size 4000;
    application show 
    {
      live on;
      # Turn on HLS
      hls on;
      hls_path /mnt/hls/;
      hls_fragment 3;
      hls_playlist_length 60;
      # disable consuming the stream from nginx as rtmpdeny 
      play all;
    }
  }
}

http {
  sendfile off;
  tcp_nopush on;
  directio 512;
  default_type application/octet-stream;
  server {
    listen 8080;
    location / {
      # Disable cache
      add_header 'Cache-Control' 'no-cache';
      # CORS setup
      add_header 'Access-Control-Allow-Origin' '*' always;
      add_header 'Access-Control-Expose-Headers' 'Content-Length';
      # allow CORS preflight requests
      if ($request_method = 'OPTIONS') {
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Max-Age' 1728000;
        add_header 'Content-Type' 'text/plain charset=UTF-8';
        add_header 'Content-Length' 0;
        return 204;
      }
      types {
        application/dash+xml mpd;
        application/vnd.apple.mpegurl m3u8;
        video/mp2t ts;
      }
      root /mnt/;
    }
  }
}

6.启动Nginx


	/usr/local/nginx/sbin/nginx

7.测试

该服务器可以从各种来源进行流式传输,包括静态文件、网络摄像头等。由于上面的步骤中安装了ffmpeg,我们可以将example-vid.mp4视频文件流式传输到http服务http://localhost/show/stream。


	ffmpeg -re -i example-vid.mp4 -vcodec libx264 -vprofile baseline -g 30 -acodec aac -strict -2 -f flv rtmp://localhost/show/stream

 

8.最后

根据服务的需求,可以将http服务集成到您的应用程序或者网页中。

原文地址:https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzIyNTA3NDY2NQ==&action=getalbum&album_id=2891760874921951234&scene=173&from_msgid=2247484844&from_itemidx=3&count=3&nolastread=1#wechat_redirect

延伸 · 阅读

精彩推荐
  • NginxLinux环境下nginx搭建简易图片服务器

    Linux环境下nginx搭建简易图片服务器

    这篇文章主要介绍了Linux环境下nginx搭建简易图片服务器,需要的朋友可以参考下 ...

    hebedich4762019-10-24
  • NginxNginx配置ssl证书(https)的全过程

    Nginx配置ssl证书(https)的全过程

    这篇文章主要介绍了Nginx配置ssl证书(https)的过程,在文中大家需要特别注意,如果有防火墙的话,记得开通443端口,本文给大家介绍的非常详细,需要的朋友...

    喜枝儿3572022-11-02
  • Nginxnginx 如何实现if嵌套的方法示例

    nginx 如何实现if嵌套的方法示例

    这篇文章主要介绍了nginx 如何实现if嵌套的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    it书童5472020-03-12
  • Nginxnginx日志分割 for linux

    nginx日志分割 for linux

    默认情况下,nginx是不分割访问日志的,久而久之,网站的日志文件将会越来越大,占用空间不说,如果有问题要查看网站的日志的话,庞大的文件也将很...

    nginx教程网2702019-10-15
  • Nginxnginx 配置跨域失效修复的方法示例

    nginx 配置跨域失效修复的方法示例

    这篇文章主要介绍了nginx 配置跨域失效修复的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    luckyjiet6852020-01-16
  • NginxNginx 服务器 SSL 证书安装部署

    Nginx 服务器 SSL 证书安装部署

    本文档指导您如何在 Nginx 服务器中安装 SSL 证书。当前服务器的操作系统为 CentOS 7,由于操作系统的版本不同,详细操作步骤略有区别。...

    卡布奇诺-海晨4232023-10-11
  • Nginx使用nginx正向代理实现内网域名转发过程解析

    使用nginx正向代理实现内网域名转发过程解析

    这篇文章主要介绍了使用nginx正向代理实现内网域名转发过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    羊草8642020-01-10
  • Nginxwindows10 系统配置nginx文件服务器的图文教程

    windows10 系统配置nginx文件服务器的图文教程

    这篇文章主要介绍了windows10 系统配置nginx文件服务器的图文教程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    ChironW9732020-03-13