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

 更新时间:2023年10月18日 11:22:34   作者:andflow  
Nginx RTMP是一个Nginx插件,支持将RTMP和HLS流添加到媒体服务器,本文将以ubuntu为例为大家介绍一下如何安装使用nginx Rtmp 插件的步骤,需要的可以参考下

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

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

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服务集成到您的应用程序或者网页中。

到此这篇关于详解如何基于Nginx搭建流媒体服务器的文章就介绍到这了,更多相关nginx搭建流媒体服务器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Nginx配置详解(推荐)

    Nginx配置详解(推荐)

    Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能
    2017-05-05
  • Linux上搭载Nginx负载均衡配置使用案例详解

    Linux上搭载Nginx负载均衡配置使用案例详解

    这篇文章主要介绍了Linux上搭载Nginx负载均衡配置使用案例详解,针对此情况而衍生出来的一种廉价有效透明的方法以扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术就是负载均衡(Load Balance),需要的朋友可以参考下
    2022-01-01
  • 在Nginx中配置image filter模块来实现动态生成缩略图

    在Nginx中配置image filter模块来实现动态生成缩略图

    这篇文章主要介绍了在Nginx中配置image filter模块来实现动态生成缩略图的方法,包括缩略图尺寸的设置等方面的介绍,需要的朋友可以参考下
    2015-12-12
  • 云服务器使用宝塔搭建Python环境,运行django程序

    云服务器使用宝塔搭建Python环境,运行django程序

    本文详细讲解了在云服务器使用宝塔搭建Python环境,运行django程序的方法。对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • 基于nginx获取代理服务ip以及客户端真实ip详解

    基于nginx获取代理服务ip以及客户端真实ip详解

    最近在研究nginx中如何获取真实客户端IP的方法,下面这篇文章主要给大家介绍了基于nginx获取代理服务ip以及客户端真实ip的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • Nginx的伪静态配置中使用rewrite来实现自动补全的实例

    Nginx的伪静态配置中使用rewrite来实现自动补全的实例

    这篇文章主要介绍了Nginx的伪静态配置中使用rewrite来实现自动补全的实例,文中对rewrite的相关参数和正则表达使用也做了介绍,需要的朋友可以参考下
    2015-12-12
  • nginx增加健康检查接口的实现示例

    nginx增加健康检查接口的实现示例

    Nginx作为一款强大的反向代理服务和负载均衡服务,而健康检查是为了保障nginx能够准确的转发到后端的可用服务,本文主要介绍了nginx增加健康检查接口的实现示例,感兴趣的可以了解一下
    2024-02-02
  • Nginx重写功能和反向代理的用法详解

    Nginx重写功能和反向代理的用法详解

    这篇文章主要介绍了Nginx重写功能和反向代理,文中通过代码示例和图文给大家讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-02-02
  • Nginx限流配置详解

    Nginx限流配置详解

    限流是服务降级的一种方式,通过限制系统的输入和输出流量以达到保护系统的目的,本文主要介绍了Nginx限流配置详解,感兴趣的可以了解一下
    2023-11-11
  • 解决nginx报错信息 client intended to send too large body: 1331696 bytes

    解决nginx报错信息 client intended to send too large body: 1331696

    这篇文章主要介绍了解决nginx报错 client intended to send too large body: 1331696 bytes的相关资料,需要的朋友可以参考下
    2017-02-02

最新评论