搭建Nginx-rtmp流媒体服务器+使用ffmpeg推流

硕士毕业后,一直从事算法工程师,具有丰富的深度学习,图像视频处理经验,因此录制了一些课程,欢迎大家观看,有问题可以找我私聊:QQ:81664352,谢谢
基于web端的人脸识别算法视频教程
1.掌握深度学习图像处理(基于keras、tensorflow、opencv)
2.掌握web前后端设计(基 于flask框架)
3.开发基于web端的深度学习图像,把web端应用与人工智能相结合
视频教程
https://edu.csdn.net/course/detail/28400/391614?pre_view=1

https://www.jianshu.com/p/06c2025edcd3

sudo apt-get install build-essential

sudo ./configure --prefix=/usr/local/nginx --with-pcre=…/nginx-dependence/pcre-8.40 --with-zlib=…/nginx-dependence/zlib-1.2.11 --with-openssl=…/nginx-dependence/openssl-1.1.0 --with-http_ssl_module --add-module=…/nginx-dependence/nginx-rtmp-module

安装Nginx依赖

我是在根目录下安装的依赖。首先在根目录下创建一个叫做nginx-dependence的文件夹
sudo mkdir nginx-dependence
然后在nginx-dependence中安装依赖,按行依次运行以下命令。这些依赖一定不要使用apt-get 安装 ,因为后面在配置Nginx的时候,要提供这些依赖的源码路径。(我一开始是使用apt-get 安装 依赖的,结果在nginx 的configure 步骤出现问题,所以我就重新安装了)
cd nginx-dependence
sudo wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
sudo tar -zxvf pcre-8.40.tar.gz
cd pcre-8.40/
sudo ./configure
sudo make
sudo make install

sudo wget http://zlib.net/zlib-1.2.11.tar.gz

sudo tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
sudo ./configure
sudo make
sudo make install

sudo wget https://www.openssl.org/source/old/1.1.0/openssl-1.1.0.tar.gz
sudo tar -zxvf openssl-1.1.0.tar.gz
cd openssl-1.1.0/
sudo ./config
sudo make
sudo make install
在nginx-dependence目录中,先下载nginx-rtmp-module
git clone https://github.com/arut/nginx-rtmp-module.git

所以在此文件中有,如图:

安装Nginx
首先运行:
apt-get install build-essential
apt-get install libtool

然后下载并安装Nginx,我安装的版本是1.12.0,我也是安装在根目录的。
依次运行下面的指令。
回到nginx-dependence上一层目录
sudo wget http://nginx.org/download/nginx-1.12.0.tar.gz
sudo tar -zxvf nginx-1.12.0.tar.gz
cd nginx-1.12.0/

sudo ./configure --prefix=/usr/local/nginx --with-pcre=…/nginx-dependence/pcre-8.40 --with-zlib=…/nginx-dependence/zlib-1.2.11 --with-openssl=…/nginx-dependence/openssl-1.1.0 --with-http_ssl_module --add-module=/nginx-dependence/nginx-rtmp-module
sudo make
sudo make install

–with-pcre=…/nginx-dependence/pcre-8.40 就是我的pcre依赖所放置的位置,这个位置可根据自己的安装位置进行灵活配置。–add-module=。。/nginx-dependence/nginx-rtmp-module 这个module 的路径也要正确设置为之前下载nginx-rtmp-module的路径。如果出现找不到什么文件,那么就是目录设置错误。
启动Nginx
如果上面的步骤都没有出错,则可以检验一下nginx是否已经安装正确了:在命令行中输入这个命令启动nginx服务器:
sudo /usr/local/nginx/sbin/nginx

如果没有报任何错误,则可以打开浏览器看看nginx是否启动成功。打开浏览器,输入localhost 或本机的IP地址,按回车,如果看到这样的界面,说明nginx已经安装成功并且启动成功了。如图

如果有的时候启动时出现这样的提示如图:

这是重复启动导致的。运行sudo /usr/local/nginx/sbin/nginx -s stop可以先停止运行之前启动的,然后再次运行
sudo /usr/local/nginx/sbin/nginx就没有问题了。

配置Nginx流媒体服务器

nginx服务器有一个配置文件叫做nginx.conf ,这个文件默认是位于/usr/local/nginx/conf 目录下。
我将这个文件改成这样:
worker_processes 1;

error_log logs/error.log debug;

events {

worker_connections 1024;

}

rtmp {

server {

listen 1935;

application videotest{

live on;

}

}

}

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

server {

listen 80;

server_name localhost;

location / {

root html;

index index.html index.htm;

}

redirect server error pages to the static page /50x.html

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}

}

其中rtmp就是rtmp服务器模块,端口是1935,application我理解为一个路径。可以通过访问rtmp://localhost/videotest 来访问videotest这个资源。live on 表示这是实时的传输,这不同于点播,点播就好比我在某视频网站上想看一个视频,无论我什么时候去点击,它会从头开始播放。而实时传输(直播),就是好比看电视,我在19:20去打开电视(打开直播路),视频不会从头开始播放,而是从当前(19:20)的视频数据开始播放。
除了配置rtmp服务器,还可以配置HTTP和HTTPS服务器。这方面我还没有深入去了解。更多关于nginx服务器和其配置方式,请阅读nginx官网 。

安装ffmpeg

首先安装h264 视频编解码库:
sudo apt-get update
sudo apt-get install libx264-dev

安装ffmpeg ,依次输入以下命令:
wget http://ffmpeg.org/releases/ffmpeg-3.0.9.tar.bz2
tar jxvf ffmpeg-3.0.9.tar.bz2
cd ffmpeg-3.0.9/
sudo ./configure --enable-shared --enable-pthreads --enable-gpl --enable-avresample --enable-libx264 --enable-libtheora --disable-yasm

动态
sudo ./configure --disable-shared --enable-static --enable-pthreads --enable-gpl --enable-avresample --enable-libx264 --enable-libtheora --disable-yasm
静态

如果出现错误 ,可能需要安装sudo apt-get -y install libtheora-dev
sudo make
sudo make install
其中sudo make 这个过程会比较久。安装完ffmpeg之后,在命令行中输入ffmpeg:
如果出现找不到库,说明是使用动态编译,库的路径无法找到。
因为这里我重新用静态命令编译一遍,然后就成功了。

推流与拉流

配置好nginx.conf之后,重新启动sudo /usr/local/nginx/sbin/nginx
然后在命令行中使用 ffmpeg 进行推流:
ffmpeg -re -i /home/hjh/nginx/video.mp4 -vcodec copy -acodec copy -b:v 800k -b:a 32k -f flv rtmp://localhost:1935/videotest/test
/home/hjh/nginx/video.mp4自己需要播放的文件。
在本机器上用vlc打开串流rtmp://localhost:1935/videotest/test如图:

这里有一个bug,局域网中其他电脑访问服务器需要使用:
rtmp://10.150.90.230:1935/videotest/test
10.150.90.230 表示服务器的IP地址,并且需要加入端口号,否则只能在本机服务器上播放,其他电脑如法播放。

搭建Nginx-rtmp流媒体服务器+使用ffmpeg推流相关推荐

  1. 宝塔 搭建 nginx rtmp 流媒体服务器

    宝塔 搭建 nginx rtmp 流媒体服务器 安装环境说明 系统环境: Centos 7 机型: DELL R540 准备工作 nginx 添加模块,编译安装 nginx ,下载 nginx-rtm ...

  2. win7系统搭建流媒体服务器,windows7 下 搭建 nginx + rtmp 流媒体服务器

    成果分享:https://github.com/ziq358/Nginx-Rtmp 材料准备: 1.Microsoft Visual Studio 2010 下载安装. 2.MinGW 安装. 3.下 ...

  3. 手把手教你搭建Nginx-rtmp流媒体服务器+使用ffmpeg推流

    手把手教你搭建Nginx-rtmp流媒体服务器+使用ffmpeg推流 转载自:https://www.jianshu.com/p/06c2025edcd3 by – paperfish 最近尝试着搭建 ...

  4. i.MX6ULL - 远程视频监控方案实现(nginx-rtmp流媒体服务器、ffmpeg推流)

    i.MX6ULL - 远程视频监控配置(nginx-rtmp流媒体服务器.ffmpeg推流) 目录 i.MX6ULL - 远程视频监控配置(nginx-rtmp流媒体服务器.ffmpeg推流) 1.前 ...

  5. Ubuntu16.04下配置nginx + RTMP流媒体服务器

    目录 前言 1.安装nginx需要的环境 1.1 查看gcc版本 gcc -v 1.2 pcre.pcre-devel安装 1.3 zlib安装 1.4 安装openssl 2.开始安装 2.1 创建 ...

  6. Windows nginx + rtmp 流媒体服务器搭建(uniapp可用)

    准备: 所有文件目录请不要中文命名,请使用英文 nginx服务 官网下载 niginx服务 视频推流版 3. 配置文件 nginx-rtmp-module 4. 推流文件 ffmpeg 5. 拉流工具 ...

  7. Android Nginx + RTMP流媒体服务器搭建

    1.下载nginx #下载Nginx: http://nginx.org/en/download.html wget http://nginx.org/download/nginx-1.15.3.ta ...

  8. 搭建Nginx+rtmp直播服务器

    目录 安装搭建 lnmp 环境 安装 Nginx 的扩展模块 关闭 nginx.php-fpm 服务 查看 nginx 配置参数 重新编译 nginx Centos7 端口开放 查看防火墙状态 开启防 ...

  9. 树莓派使用nginx+rtmp搭建音频直播流媒体服务器

    前言 想使用树莓派连接usb音频采集卡实时采集收音机接收到的音频,树莓派上运行着由nginx+RTMP 搭建的直播流媒体服务器,这样就可以在客户端上通过支持rtmp串流协议的播放器就可以正常接收到音频 ...

最新文章

  1. 英特尔5G基带发布时间提前半年以上,但2019款iPhone支持5G仍有点悬
  2. Flink从入门到精通100篇(六)-Flink 应用之 对Release 文档进行深度解读
  3. Modbus RTU 通信应用案例
  4. linux tcp在传输数据的时候断网了_选择最合适的协议 让传输数据更灵敏
  5. Keiichi Tsuchiya the Drift King
  6. 洛谷P6302:回家路线(斜率优化)
  7. Redis入门之二6379端口
  8. Jeasyframe 开源框架 V1.6 发布
  9. 蚂蚁上市员工人均一套大 House,阿里程序员身价和这匹配吗?
  10. c#利用反射+特性实现简单的实体映射数据库操作类(表与类的映射)
  11. 适合Java初学者练手的网站
  12. visio画图常见问题解答
  13. 两平面平行方向向量关系_空间向量,如果一条直线与一平面平行,那么直线的方向向量与平面的法向量有什么关系??垂直呢?...
  14. java计算机毕业设计BS景区票务管理系统设计与实现源码+mysql数据库+系统+lw文档+部署
  15. 利用openssl之 htps服务端和客户端编写
  16. Qt读写Excel--QXlsx插入图表5
  17. 基于CUDA的并行lammps编译及测试
  18. python箭头向下怎么变_实现点击下箭头变上箭头来回切换的两种方法【推荐】
  19. 必领空投一:4EVERLAND部署奖励
  20. win7系统安装信息服务器不可用怎么办,Win7电脑RPC服务器不可用怎么办 RPC服务器不可用解决方法...

热门文章

  1. 豪掷 5 亿美元,国外支付巨头 CEO 帮助斯坦福女友实现科研自由!
  2. Nacos学习之初识Nacos
  3. word的使用学习笔记(一)
  4. 关于微信小程序简单瀑布流的制作
  5. bbr是什么?有什么用?如何安装使用?
  6. heatmap.js来绘制热力图
  7. 开机后黑屏看不到桌面_电脑开机后不显示桌面图标怎么回事 电脑开机后不显示桌面图标解决办法大全!...
  8. css 权重及!important
  9. vue.js中created()与activated()
  10. CRI HITFM 88.7的网络电台