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

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

 前言

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

ffmpeg的基本使用:Android音视频开发 ffmpeg基本命令的使用。

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

image.png


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

1.RTMP简介

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

2.环境搭建

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


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

  $ 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服务

image.png

配置完成后,保存文件。

执行下列命令重启nginx:

sudo /usr/local/nginx/sbin/nginx -s stop

sudo /usr/local/nginx/sbin/nginx

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

那么我们使用工具来测试,你也可以使用webrtc-android端来测试,这里我们使用工具SmarterStreaming,下载地址:GitHub - daniulive/SmarterStreaming: 业内为数不多致力于极致体验的超强全自研跨平台(windows/linux/android/iOS)流媒体内核,通过模块化自由组合,支持实时RTMP推流、RTSP推流、RTMP播放器、RTSP播放器、录像、多路流媒体转发、音视频导播、动态视频合成、音频混音、直播互动、内置轻量级RTSP服务等,比快更快,业界真正靠谱的超低延迟直播SDK(1秒内,低延迟模式下200~400ms)。

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

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

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

image.png

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

效果如下图所示:

image.png

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

目录
相关文章
|
2月前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
176 61
|
1月前
|
弹性计算 负载均衡 网络协议
ECS中实现nginx4层7层负载均衡和ALB/NLB原SLB负载均衡
通过本文的介绍,希望您能深入理解并掌握如何在ECS中实现Nginx四层和七层负载均衡,以及如何使用ALB和NLB进行高效的负载均衡配置,以提高系统的性能和可靠性。
135 9
|
1月前
|
存储 编解码 应用服务中间件
使用Nginx搭建流媒体服务器
本文介绍了流媒体服务器的特性及各种流媒体传输协议的适用场景,并详细阐述了使用 nginx-http-flv-module 扩展Nginx作为流媒体服务器的详细步骤,并提供了在VLC,flv.js,hls.js下的流媒体拉流播放示例。
188 1
|
2月前
|
Ubuntu 网络协议 关系型数据库
超聚变服务器2288H V6使用 iBMC 安装 Ubuntu Server 24.04 LTS及后续系统配置
【11月更文挑战第15天】本文档详细介绍了如何使用iBMC在超聚变服务器2288H V6上安装Ubuntu Server 24.04 LTS,包括连接iBMC管理口、登录iBMC管理界面、配置RAID、安装系统以及后续系统配置等步骤。
315 4
|
3月前
|
Ubuntu 应用服务中间件 开发工具
Ubuntu16.04搭建gitlab服务器,搭建pip源服务器(两种方式),搭建apt源服务器
这篇文章是关于如何在Ubuntu 16.04系统上搭建GitLab服务器、pip源服务器(使用pypiserver和NGINX两种方式),以及apt源服务器的详细教程。
53 0
Ubuntu16.04搭建gitlab服务器,搭建pip源服务器(两种方式),搭建apt源服务器
|
3月前
|
缓存 NoSQL Ubuntu
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
73 3
|
3月前
|
Ubuntu API Python
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
98 1
|
弹性计算 安全 应用服务中间件
ECS动手搭建Nginx
在ECS的centos7上搭建一个Nginx
2090 7
ECS动手搭建Nginx
|
10天前
|
弹性计算 数据挖掘 应用服务中间件
阿里云轻量应用服务器68元与云服务器99元和199元区别及选择参考
目前阿里云有三款特惠云服务器,第一款轻量云服务器2核2G68元一年,第二款经济型云服务器2核2G3M带宽99元1年,第三款通用算力型2核4G5M带宽199元一年。有的新手用户并不是很清楚他们之间的区别,因此不知道如何选择。本文来介绍一下它们之间的区别以及选择参考。
229 87
|
3天前
|
存储 弹性计算 应用服务中间件
阿里云轻量应用服务器出新品通用型实例了,全球26个地域可选
近日,阿里云再度发力,推出了首款全新升级的轻量应用服务器——通用型实例。这款服务器实例不仅标配了200Mbps峰值公网带宽,更在计算、存储、网络等基础资源上进行了全面优化,旨在为中小企业和开发者提供更加轻量、易用、普惠的云计算服务,满足其对于通用计算小算力的迫切需求。目前,这款新品已在全球26个地域正式上线,为全球用户提供了更加便捷、高效的上云选择。