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

Posted 奔跑的大白啊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux(ubuntu)搭建基于nginx-http-flv-module的视频推拉流服务器相关的知识,希望对你有一定的参考价值。

前言

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

正文

环境准备

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

编译&安装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、访问效果

参考链接

https://blog.csdn.net/somanlee/article/details/69808788
https://github.com/winshining/nginx-http-flv-module
https://blog.csdn.net/string_kai/article/details/100598268#comments_13464335
https://www.ruanyifeng.com/blog/2020/01/ffmpeg.html

总结

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

以上是关于Linux(ubuntu)搭建基于nginx-http-flv-module的视频推拉流服务器的主要内容,如果未能解决你的问题,请参考以下文章

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

基于 Ubuntu 搭建 FTP 文件服务

基于Linux自己初步搭建Kubernetes(k8s)集群基础,详细教程

[原创]基于Zynq Linux环境搭建

Linux简介和环境的搭建

Linux安装apue.3e(基于ubuntu16.0.4)