Ubuntu 安装nginx 来搭建推流服务器

news/2024/7/10 19:34:33 标签: 运维, ffmpeg, 开发工具

安装nginx

安装两个依赖库

sudo apt-get install autoconf automake
sudo apt-get install libpcre3 libpcre3-dev
复制代码

安装zlib库

sudo apt-get install openssl
sudo apt-get install libssl-dev
复制代码

如果安装命令回车之后出现如下信息,请参考【Ubuntu “无法获得锁”解决方案】解决,但是我亲测对我没用,直接重启搞定

E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?
复制代码

进入家目录,新建一个文件夹,这里以lxf为例

cd ~
mkdir lxf
复制代码

下载所需源码

// 下载nginx-rtmp源码
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
// 修改压缩包的名字
mv master.zip module.zip
复制代码
// 下载nginx
wget https://github.com/nginx/nginx/archive/master.zip
复制代码
// 下载nginx的依赖pcre源码
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
复制代码

下载完成之后使用unzip命令进行解压

unzip master.zip 
unzip module.zip
tar -zxvf pcre-8.39.tar.gz
复制代码

配置编译文件,准备编译安装

// 先进入nginx-master目录
cd nginx-master/
复制代码

在nginx-master目录下有一个auto文件夹,里面有一个名为configure的配置文件,我们先来通过它进行一些配置

// prefix:指定安装目录
// add-module:指定模块文件夹
auto/configure --prefix=/usr/local/nginx --with-pcre=../pcre-8.39 --with-http_ssl_module --with-http_v2_module --with-http_flv_module --with-http_mp4_module --add-module=../nginx-rtmp-module-master/
复制代码

配置好之后会多出一个Makefile文件(一种配置文件,定义了一系列的规则来指定编译操作)与objs文件夹

// 编译
make
// 安装
sudo make install
复制代码

当你make后,看到则代表编译成功

再执行【sudo make install】,看到这个则代表安装完成

现在我们去测试一下

 cd /usr/local/nginx/sbin/
sudo ./nginx -t
复制代码

看到successful说明配置文件正确!,如果是failed的话看看你是不是没加sudo

启动nginx服务器

sudo ./nginx
复制代码

默认端口是80,所以直接到浏览器中直接敲入本地地址 127.0.0.1,显示【Welcome to nginx!】就代表nginx已经成功安装

配置nginx

创建推流存放文件夹

// 为里以 /usr/local/var/www/hls 为例
cd /usr/local
sudo mkdir -p var/www/hls
复制代码

进入nginx的conf目录,使用vim编辑nginx.conf文件

cd /usr/local/nginx/conf
sudo vim nginx.conf
复制代码

配置Nginx,支持http协议拉流

location /hls {
  types {
    application/vnd.apple.mpegurl    m3u8;
    video/mp2t ts;
  }
  root /usr/local/var/www;
   add_header Cache-Control    no-cache;
}
复制代码

配置Nginx,支持rtmp协议推流

rtmp {
    server {
        listen 1935;
        application rtmplive {
            live on;
            max_connections 1024;
        }
        application hls{
            live on;
            hls on;
            hls_path /usr/local/var/www/hls;
            hls_fragment 1s;
        }
    }
}
复制代码

重启nginx服务器

cd /usr/local/nginx/sbin/
sudo ./nginx -s reload
复制代码

如果执行【sudo ./nginx -s reload】出现下面这个问题

nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
复制代码

就使用nginx -c的参数指定nginx.conf文件的位置,接着再reload一下就好了

sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
复制代码

我Ubuntu地址为192.168.123.191

推流至RTMP到服务器 rtmp://192.168.123.191:1935/rtmplive/lxf

ffmpeg -re -i 异形.契约.mp4 -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://192.168.123.191:1935/rtmplive/lxf
复制代码

推流至HLS到服务器 http://192.168.123.191/hls/lxf.m3u8

ffmpeg -re -i 异形.契约.mp4 -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://192.168.123.191:1935/hls/lxf
复制代码

如果出现如下错误说明你的电脑没安装ffmpeg

-bash: ffmpeg: command not found
复制代码

使用Homebrew来安装FFmpeg

// 安装Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
// 安装FFmpeg
brew install ffmpeg
复制代码

开始推流,终端上就开始不断的刷新推流信息

我们可以用电脑上的VLC这个软件来测试是否推流成功

OK,rmtp打开正常,hls就不演示了,一样的


http://www.niftyadmin.cn/n/1664031.html

相关文章

react native 之Githhub Poular项目分析

##流程图 桥接 通过封装native组件供react-native调用 AndroidStudoi Xcode 技术栈-技术库 react-native-check-box(复选框)react-native-easy-toast (提示框)react-native-splash-screen(启动屏)react-nat…

how to install python3+django on centos6 or 7

2019独角兽企业重金招聘Python工程师标准>>> 友情提示:如果你在搭建python3环境的过程中碰到以下问题,换台服务器重新来吧,真的。 1. /usr/local/python3.6.0/bin/python3.6: error while loading shared libraries: libpython3.6m.so.1.0: c…

Linux文件类型与命令alias

Linux文件类型 alias命令 转载于:https://blog.51cto.com/13515599/2051100

继震网、乌克兰断网后 又一计算机病毒来袭!

不知道大家是否还记得震网Stuxnet以及2016年底导致乌克兰电力系统瘫痪的BlackEnergy,这两种病毒作为破坏工业流程的计算机病毒,可谓是一鸣惊人,让业界都为之“颤抖”。那如果我告诉你,继震网Stuxnet以及BlackEnergy之后&#xff0…

使用PuTTY登录Linux的两种验证方式

2019独角兽企业重金招聘Python工程师标准>>> 一、putty和Xshell一样是远程登录的软件,其远程登录的方式也一样分为两种,即密码登录和秘钥登录,首先先演示一下密码登录的步骤; 1、要登录一个系统,首先要保证…

【只发精品】匠心打造Vue侧滑菜单组件

本文介绍一个简单的DrawerLayout(类似Android的DrawerLayout)布局组件的实现,基于Vue.js。介绍的内容已经制作成 vue-drawer-layout 组件。 前言 大家有兴趣先用手机扫一扫这个二维码,或者点我 然后点击页面中左上角的头像打开dra…

【OpenCV学习笔记】1:配置开发环境

已有的环境:VS2013 下载OpenCV:百度网盘链接OpenCV-2.4.11 [1]安装 直接运行就可以解压安装 [2]环境变量 计算机->属性->高级系统设置->环境变量 加入 E:\Program Files\opencv\build\x86\vc12\bin E:\Program Files\opencv\build\x64…

tableView-删除、插入、多选删除

左滑删除//声明 property (nonatomic, strong) UITableView *tableView; property (nonatomic, strong) NSMutableArray *dataArray;//数据源//懒加载 - (UITableView *)tableView {if (!_tableView) {_tableView [[UITableView alloc] initWithFrame:CGRectZero style:UITabl…