专栏首页代码男人在ubuntu 上搭建Nginx-RTMP 直播服务器

在ubuntu 上搭建Nginx-RTMP 直播服务器

前言

近段时间在学习Android直播,那么毋庸置疑ffmpeg和WebRTC是音视频界的两个大佬。

ffmpeg的基本使用:https://blog.csdn.net/huangliniqng/article/details/81842273

看过很多教程讲解直播环境的搭建,大都是在mac环境上搭建的,对于windows用户来说搭建起来比较繁琐,昨天的这个时候我尝试了在windows本地搭建Nginx-rtmp直播服务器,最终可以成功运行。效果图如下所示。

不过我们今天不讲解如何在windows上搭建直播服务器,如果有问题的朋友可以一起探讨。今天来讲解如何在ubuntu服务器上搭建直播服务器。(此处不造轮子,完全为了以后搭建更加方便)

1.RTMP简介

   RTMP全称是Real Time Messaging Protocol(实时消息传输协议),rmtp是一种通讯协议。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。

2.环境搭建

  如果对linux操作命令不熟悉,可以移步至我的linux系列文章:

https://mp.csdn.net/postedit/82469566

首先创建源码编译的目录然后进入。

   $ mkdir nginx-src    $ cd nginx-src

  下载源码   $ git clone https://github.com/nginx/nginx.git   $ git clone https://github.com/arut/nginx-rtmp-module.git   $ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz   $ tar -xzvf pcre-8.39.tar.gz   $ cd nginx$ git checkout release-1.9.9

编译安装

#将configure的命令封装成脚本 $ vim cfg.sh

#  cfg.sh文件的内容 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/

$ chmod a+x cfg.sh $ ./cfg.sh $ make  $ make install

3.配置服务环境

安装完成后修改配置文件执行下列操作:

进入 cd /usr/local/nginx/conf

编辑 nginx.conf,如果提示没有权限,可执行sudo chmod 777 nginx.conf即可取得所有权限

编辑nginx.conf文件,主要是添加rtmp服务

配置完成后,保存文件。

执行下列命令重启nginx: sudo /usr/local/nginx/sbin/nginx -s stop

sudo /usr/local/nginx/sbin/nginx

如果没有出现错误,这时已经成功搭建好了rtmp流媒体,

那么我们使用工具来测试,你也可以使用webrtc-android端来测试,这里我们使用工具SmarterStreaming,下载地址:https://github.com/daniulive/SmarterStreaming

测试之前首先我们要推送一个视频流

我们使用命令  ffmpeg -re -i soft/2.mp4 -c copy -f flv rtmp://localhost:1935/live/film

soft/2.mp4 是服务器上的视频地址,运行如果出现下图所示,说明上述环境搭建的没有问题

我们使用测试工具测试,输入地址 rtmp://123.207.55.74:1935/live/film

效果如下图所示:

当推流结束后则播放结束(仔细想想像电视台一样推送之后结束再接着推送广告等)

分享技术文章,投稿分享,不限技术种类,不限技术深度,让更多人因为分享而受益。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 百度地图开发,在地图上显示当前位置

                          // 在地图上显示当前位置 double jingdu = location.getLongitude(); d...

    黄林晴
  • Android Gradle 多渠道打包

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    黄林晴
  • ListView下拉刷新

    <dependency>   <groupId>com.huanglinqing</groupId>   <artifactId>RefreshListvi...

    黄林晴
  • 生产环境 Nginx 在线平滑升级

    生产环境 Nginx 需要增加支持 TCP 反向代理功能,需要再添加--with-stream参数重新编译后,在线升级 Nginx。

    叨叨软件测试
  • nginx安装卸载操作1. nginx安装2. nginx卸载

    直接访问nginx官方网站,下载适合windows系统的安装包,是一个压缩包,下载完成后解压即可使用。

    大牧莫邪
  • Contos7安装Nginx就是这么简单

    最近隔壁部门接到一个微服务的项目,但是rpc框架采用的淘宝的hfs,做了几个demo,然后他们开始进行开发了。但是因为前端不好调试接口,所以又需要搭建一个ngi...

    程序员_备忘录
  • Ubuntu 17.04 编译安装 Nginx 1.9.9 配置 https 免费证书

    Ubuntu 17.04 编译安装 Nginx 1.9.9 配置 https 免费证书 安装 Nginx 安装依赖 $ apt-get update $ apt...

    搜云库
  • Linux系统下Nginx支持ipv6配置的办法

    需要执行以下命令,查看现有nginx是否支持ipv6,如果参数中具有–with-ipv6,则支持,如 果没有,则不支持,需要重新编译nginx。

    砸漏
  • nginx常用命令

    平滑启动的意思是在不停止nginx的情况下,重启nginx,重新加载配置文件,启动新的工作线程,完美停止旧的工作线程。

    用户2936342
  • 解决Centos7安装nginx后提示“Welcome to nginx on Fedora!”,conf.d目录下无default.conf文件

    以上所述是小编给大家介绍的Centos7安装nginx后提示“Welcome to nginx on Fedora!”,conf.d目录下无default.co...

    砸漏

扫码关注云+社区

领取腾讯云代金券