搭载rtmp直播服务器
这次我们搭建一个rtmp直播服务器,用于电脑或手机直播推流到服务器,然后其他终端如电脑或手机可以观看直播的视频画面。 我们这里用电脑录屏软件将实时录制的电脑屏幕画面直播给其它人看。总共需要3部分,第一,录屏软件录制电脑屏幕,并传递画面流到服务器; 第二,服务器rtmp搭建,应能接收来自录屏软件上传的画面;第三,视频播放器客户端能连接到rtmp服务器,接收rtmp服务器推送的视频流,从而可实时观看第一部分录屏软件的实时画面。这里最核心的就是第二部分,搭建rtmp服务器。
1. 下载nginx
nginx是一个服务器软件,类似于tomcat,用于发布服务器程序
(1)下载地址:在linux下执行 wget http://nginx.org/download/nginx-1.15.3.tar.gz命令,下载压缩包。
(2)解压,使用tar命令: tar xvf nginx-1.15.3.tar.gz
2. 下载nginx rtmp模块
wget https://codeload.github.com/arut/nginx-rtmp-module/tar.gz/v1.2.1 同样解压tar xvf v1.2.1
3. 编译nginx
./configure --prefix=./bin --add-module=../nginx-rtmp-module-1.2.1
4. 修改nginx-rtmp-module中的conf文件
cd nginx-rtmp-module-1.2.1打开文件夹,cd test文件夹,修改nginx.conf文件的内容为:
worker_processes 1;error_log logs/error.log debug;events {worker_connections 1024;
}rtmp {server {listen 1935;application myapp {live on;#record keyframes;#record_path /tmp;#record_max_size 128K;#record_interval 30s;#record_suffix .this.is.flv;#on_publish http://localhost:8080/publish;#on_play http://localhost:8080/play;#on_record_done http://localhost:8080/record_done;}}
}http {server {listen 8080;location /stat {rtmp_stat all;rtmp_stat_stylesheet stat.xsl;}location /stat.xsl {root /path/to/nginx-rtmp-module/;}location /control {rtmp_control all;}#location /publish {# return 201;#}#location /play {# return 202;#}#location /record_done {# return 203;#}location /rtmp-publisher {root /path/to/nginx-rtmp-module/test;}location / {root /path/to/nginx-rtmp-module/test/www;}}
}
到时候推流地址就是 rtmp://IP:PORT/myapp/{abc},其中{abc}中的abc是可选的,一般是一个推流密码,往服务器推送或接收视频流时,可填写一个密码,如abc。rtmp默认服务器端口是1935,如果这个端口被占用,可以杀死占用这个端口的进程,使用如下命令:
kill -9 pid (其中pid是进程id)。
然后用这个conf 替换 nginx-1.15.3/bin/conf下的nginx.conf ,
使用mv nginx.conf nginx.conf.bak命令重命名原来的nginx.conf,可以不用删除原文件。
5. 启动nginx
cd nginx-1.15.3
打开nginx文件夹
/root/nginx-1.15.3/bin/sbin/nginx
启动nginx
6. 验证nginx rtmp流媒体是否部署成功
启动后,从浏览器里访问122.112.220.253:8080。
如果打不开,
1. 在服务器上建立安全规则,开发入口规则,把1935,8080这两个端口开启,协议是TCP.
2. nginx-1.15.3/bin/conf下的nginx.conf里最顶部 修改用户: user root;
此时,nginx.conf的内容如下:
user root;
worker_processes 1;error_log logs/error.log debug;events {worker_connections 1024;
}rtmp {server {listen 1935;application myapp {live on;drop_idle_publisher 5s;}}
}http {server {listen 8082;location /stat {rtmp_stat all;rtmp_stat_stylesheet stat.xsl;}location /stat.xsl {root /root/nginx-rtmp-module-1.2.1/;}location /control {rtmp_control all;}location /rtmp-publisher {root /root/nginx-rtmp-module-1.2.1/test;}location / {root /root/nginx-rtmp-module-1.2.1/test/www;}}
}
3. 重启nginx,再次访问122.112.220.253:8082,成功。
下次我们就用一个录屏软件录制电脑屏幕,使用rtmp协议向服务器上推送电脑屏幕画面,同时用播放器来播放服务器上的rtmp直播流。
搭载rtmp直播服务器相关推荐
- 默默前行的livego--基于go语言的rtmp直播服务器
转载地址:http://blog.csdn.net/sweibd/article/details/76229296 为什么go语言,原因太多了! 轻量级协程,随时goroutine 方便的channe ...
- FFmpeg入门详解之99:基于nginx的rtmp直播服务器(nginx-rtmp-module实现)
基于nginx的rtmp直播服务器(nginx-rtmp-module实现) 首先,在搭建服务之前先了解下目前主流的几个直播协议: 1.RTMP: 实时消息传输协议,Real Time Messagi ...
- 搭建Nginx+rtmp直播服务器
目录 安装搭建 lnmp 环境 安装 Nginx 的扩展模块 关闭 nginx.php-fpm 服务 查看 nginx 配置参数 重新编译 nginx Centos7 端口开放 查看防火墙状态 开启防 ...
- 基于nginx的rtmp直播服务器实现OBS直播
首先,在搭建服务之前先了解下目前主流的几个直播协议: 1.RTMP: 实时消息传输协议,Real Time Messaging Protocol,是 Adobe Systems 公司为 Flash 播 ...
- 使用Nginx做RTMP直播服务器
今天来简单记录一下nginx来配置一个RTMP服务器的过程,实际特别简单,我们使用的是集成好的解压版软件,下载地址如下: https://download.csdn.net/download/lp84 ...
- php rtmp服务器搭建,rtmp直播服务器的搭建(小白踩坑)
好的我懒.. 开始编译 centos7 ./configure --disable-all --with-ssl --with-hls --with-nginx --with-http-serve ...
- java 直播服务器_MyLive--使用JAVA实现的直播RTMP服务器
MyLive 使用JAVA实现的直播RTMP服务器 介绍 MyLive 是一个我用业余时间使用Java实现的RTMP直播服务器,它并不是一个全功能的RTMP实现,也就是说不支持seek和play2命令 ...
- 通过Nginx搭建直播带货平台的直播服务器
01 前言 前段时间在输入法评测过程中,需要将视频流实时上传给服务器进行解析,接触RTMP直播服务器.因此将搭建直播带货平台的RTMP服务器的过程分享给大家. 02 搭建RTMP服务器 [一.下载rt ...
- 【Android RTMP】安卓直播推流总结 ( 直播服务器搭建 | NV21 图像采集 | H.264 视频编码 | PCM 音频采集 | AAC 音频编码 | RTMP 包封装推流 )
文章目录 一. 安卓直播推流专栏博客总结 二. 相关资源介绍 三. GitHub 源码地址 四. 整体 Android 直播推流数据到服务器并观看直播演示过程 Android 直播推流流程 : 手机采 ...
- 【Android RTMP】RTMP 直播推流阶段总结 ( 服务器端搭建 | Android 手机端编码推流 | 电脑端观看直播 | 服务器状态查看 )
文章目录 安卓直播推流专栏博客总结 一. 服务器搭建 二. 手机端推流 三. 电脑端观看直播 四. RTMP 服务器端状态 安卓直播推流专栏博客总结 Android RTMP 直播推流技术专栏 : 0 ...
最新文章
- C++流的streambuf详解及TCP流的实现
- linux sleep alarm,Linux环境编程之信号处理(三、利用alarm()和pause()函数实现sleep()函数)...
- mysql之日志和mysqlbinlog工具的使用
- 聚合链路出现Destination host unreachable
- scanf函数具体解释与缓冲区
- html如何查找文件,如何查找网站上HTML的CLASS文件并下?如何查找网站上HTM 爱问知识人...
- 极客学院视频源码资料
- 贵州大学考博计算机学院官网,贵州大学研究生院
- etcd v2文档(2) -- 客户端http请求管理集群成员api
- Nginx常用使用解读及配置
- 终极版Servlet——我只能提示您路过别错过
- 局域网联机游戏找不到服务器,国庆想局域网联机,除了“吃鸡”,这些Steam游戏别错过...
- 多线程实现飞花令-多诗库版
- 【ICCV2019论文阅读】PU-GAN:点云上采样对抗网络
- java用jaxb三步解析xml_三步解决JAXB生成XML包含CDATA问题
- String的intern()方法浅析
- 感动的眼泪流下来。。。。中文ecli…
- 立体仓库货物识别率99.9%!AI让仓储管理事半功倍
- SOPHGO SM5智算模组二次开发散热设计参考
- 第四届世界互联网大会人工智能论坛:AI让生活更美好
热门文章
- MFC 键盘鼠标钩子
- 诗词才女武亦姝将入读清华理科试验班类,学霸是如何炼成的?
- nuke 11 for mac(视频后期合成软件)破解教程
- java正则表达式版本_java 正则表达式 版本号_java正则表达式?=.*_密码的正则表达式java...
- 关于“ 解决对COM组件的调用返回了错误HRESULT E_FAIL” 的方法
- 考研高数笔记(数一)--pdf文档 百度网盘自取
- jeb 导出java_[原创] JEB2插件,导出APK资源文件
- 实战一:输出“王者荣耀”的游戏角色
- 【STP】STP(802.1D)端口状态及拓扑变更
- 超市管理系统(JavaWeb版)