Linux(ubuntu)搭建基于nginx-http-flv-module的视频推拉流服务器

1,464 阅读2分钟

前言

     上篇说到基于MacOS的服务器搭建,是自己在本地电脑上的小尝试,真正用的时候还是要上linuxOS 的,下面来看下ubuntu系统的搭建过程。

正文

环境准备

操作系统: Ubuntu 16.04 x86_64 软件版本: Nginx-1.9.7 注意下载tar.gz 格式的(nginx.org/download/) 注意: 因为要重新编译,所以下载源码包 Nginx-http-flv-module-master(github.com/winshining/…) FFmpeg(cli命令行安装) 软件目录(此处放目录截图):

编译&安装nginx

1、进入nginx目录

cd /usr/local/src/nginx-1.9.7

2、将nginx-http-flv-module-master 编译到nginx中

sudo ./configure --add-module=/usr/local/src/nginx-http-flv-module-master

在这里插入图片描述 3、编译及安装

# 在nginx 目录下执行
sudo make
sudo make install

在这里插入图片描述 在这里插入图片描述

配置nginx.conf

events {
    worker_connections  1024;
}

# 新增部分---start----
# 1935 和 myapp 可自定义
rtmp {
        server {
            listen 1935;
            application myapp {
                # 开启实时流模式
                live on;
                record off;
            }
        }
    }
    # 新增部分---end----
    server {
        listen       80;
        server_name localhost;

        # 新增部分-----start----------
        # rtmpLive 自定义
       location /rtmpLive {
           flv_live on;
           chunked_transfer_encoding  on; #open 'Transfer-Encoding: chunked' response
           add_header 'Access-Control-Allow-Credentials' 'true'; #add additional HTTP header
           add_header 'Access-Control-Allow-Origin' '*'; #add additional HTTP header
           add_header Access-Control-Allow-Headers X-Requested-With;
           add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
           add_header 'Cache-Control' 'no-cache';
        }
         # 新增部分-----end----------

        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

启动Nginx

sudo /usr/local/nginx/sbin/nginx -c /usr/local/src/nginx-1.9.7/conf/nginx.conf

注意: 启动nginx时用编译时nginx提示的bin文件,具体路径看nginx编译时的提示信息 如下图: 在这里插入图片描述

安装FFmpeg

sudo apt install ffmpeg
# 查看ffmpeg版本
fmpeg -version

在这里插入图片描述

遇到问题

pcre not found

在这里插入图片描述 解决:

sudo apt-get install libpcre3 libpcre3-dev  

openssl not found

在这里插入图片描述 解决:

sudo apt-get install openssl libssl-dev 

测试效果

1、服务器上执行推流:

# rtsp://xxxx 为可正常预览视频流的rtsp协议地址,可以用vlc测试
# 24 为自定义部分
ffmpeg  -i rtsp://xxxx -vcodec copy -acodec copy -f flv -s 800x600 rtmp://ip:1935/myapp/24

2、视频流访问地址(http和rtmp两种协议)

# 80 为nginx.conf配置监听端口 
# rtmpLive 为nginx.conf中server中配置location部分 
# myapp 为nginx.conf配置中rtmp中的application部分 ,1935为nginx.conf配置中rtmp中的监听端口
# 24为流名称,自定义
http://IP:80/rtmpLive?port=1935&app=myapp&stream=24
rtmp://IP:1935/myapp/24

3、访问效果 在这里插入图片描述

参考链接

blog.csdn.net/somanlee/ar… github.com/winshining/… blog.csdn.net/string_kai/… www.ruanyifeng.com/blog/2020/0…

总结

     接受过去和现在的模样,才会有能量去追寻自己的未来。