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

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

责任编辑:赵宁宁 来源: andflow
相关推荐

2020-07-23 08:10:54

Nginx服务器流媒体

2022-01-08 19:18:57

OBSLinux实时流媒体服务器

2010-05-06 14:15:02

流媒体服务器负载均衡

2023-03-12 09:22:58

2010-05-04 14:10:00

Media Servi

2014-09-18 10:15:54

2018-10-26 09:52:25

Nginx服务器负载均衡

2011-07-14 14:01:29

网络服务器配置服务器

2010-05-06 14:30:29

流媒体服务器负载均衡

2010-05-24 10:12:41

Ubuntu流媒体服务器

2021-01-29 14:41:43

Nginx直播服务器rtmp

2021-09-10 10:07:17

Nginx虚拟主机服务器

2012-02-27 14:09:39

媒体服务器Ubuntu

2010-04-30 17:30:21

Server 2008流媒体

2019-04-08 08:39:47

Nginx代理服务器

2010-05-25 09:32:04

搭建SVN服务器

2016-08-22 20:37:10

PythonWeb服务器

2016-08-10 16:28:00

WebURLHTTP

2016-10-11 12:45:50

PythonWeb服务器

2009-12-22 16:59:17

Linux环境
点赞
收藏

51CTO技术栈公众号