首先了解一下相关协议,可以阅读

安装不赘述。如果已有yum等安装的Nginx,通过 nginx -V 得到编译参数, 下载相同版本的Nginx源码,在编译参数最后添加 –add-module=[下载解压的RTMP模块目录]重新编译安装即可。

配置 Nginx,在主配置文件 nginx.conf 的 http 模块下新增 rtmp 模块:

rtmp {

server {

allow publish all;

listen 1935;

ping 30s;

notify_method get;

application myapp {

live on;

# sample play/publish handlers

#on_play http://localhost:8080/on_play;

#on_publish http://localhost:8080/on_publish;

# sample recorder

#recorder rec1 {

# record all;

# record_interval 30s;

# record_path /tmp;

# record_unique on;

#}

# sample HLS

hls on;

hls_path /tmp/hls;

# hls_sync 100ms;

hls_fragment 5s;

hls_cleanup off;

record all;

record_path /tmp/record;

record_unique on;

}

# Video on demand

application vod {

# play /var/Videos;

play /usr/local/video;

}

# Video on demand over HTTP

#application vod_http {

# play http://localhost:8080/vod/;

#}

}

}

上边定义了一个名为 myapp 的应用, 开启了直播 live, 同时也开启了 hls 和视频录制 record .此时若进行直播,hls功能会将直播流录制成 ts 视频片段, record 功能则将直播流完整录制成flv视频文件,视频使用 h.264 编码,音频是 aac 编码. hls 主要是为H5移动端服务,还需要配置一个 http 服务器:

server {

listen 8090;

server_name 134.175.xxx.xxx;

#charset koi8-r;

#access_log logs/host.access.log main;

# location / {

# root /tmp/hls;

# index index.html index.htm;

#}

#HLS配置开始,这个配置为了`客户端`能够以http协议获取HLS的拉流

location / {

# Serve HLS fragments

types {

application/vnd.apple.mpegurl m3u8;

video/mp2t ts;

}

root /tmp/hls;

add_header Cache-Control no-cache;

}

#HLS配置结束

# rtmp stat

location /stat {

rtmp_stat all;

rtmp_stat_stylesheet stat.xsl;

}

location /stat.xsl {

# you can move stat.xsl to a different location

# root /usr/build/nginx-rtmp-module;

root /usr/local/src/nginx-rtmp-module-1.2.1;

}

# rtmp control

location /control {

rtmp_control all;

}

#error_page 404 /404.html;

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

#

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}

万事具备,可以在服务器端使用 ffmpeg 进行流测试:

ffmpeg -re -i /usr/local/video/WeChat_20200206235642.mp4 -c copy -f flv rtmp://134.175.xxx.xxx/myapp/wechat

这里推向的主机不是localhost, 这也是上边 rtmp 中添加 allow publish all 的原因, 不添加这一句是只能向 localhost 推的. 我们在本地打开支持 rtmp和hls协议的客户端如 potplayer, 打开链接即可观看:

rtmp地址是: rtmp://134.175.xxx.xxx/myapp/wechat

http地址是: http://134.175.xxx.xxx/wechat.m3u8

http 地址,在移动端使用自带浏览器打开也能播放, Android 和 IOS 均支持, 只是实际测试效果并不理想.

也可以在本地进行真实推流测试, 安装 OBS Studio 软件,在设置的推流一项,服务选择自定义, 服务器是写到 rtmp 中创建的应用名部分, 串流密钥则是我们随便自定义的,类似上边使用 ffmpeg 推流中最后的 wechat .

假如我们填写串流密码为 live,这样我们实际推流后, 生成的 m3u8 文件是 live.m3u8, 生成的 ts 视频片段就是 live-0.ts, live-1.ts等,录制的视频文件是 live-1583229603.flv,命名会默认添加时间戳后缀.

以上就是最简单的直播系统, 当然实际生产环境中要比这个复杂得多,前端录制,上传,后端转码,推流,各方面还有很多的优化,否则根本无法流畅观看.除了最基本的画面,还有聊天系统,奖赏,特效,连麦等等,一般商用还是得接入第三方大厂如阿里,腾讯,七牛等成熟的解决方案!

linux nginx rtmp 直播,nginx+rtmp简单直播相关推荐

  1. Linux上利用nginx搭建一个简单的rtmp视频流服务器(不涉及直播)

    文章目录 Linux上利用nginx搭建一个简单的rtmp视频流服务器(不涉及直播) 一.基础环境搭建 二.构建Nginx 下载nginx-rtmp-module 安装Nginx 编译nginx,代理 ...

  2. ffmpeg,rtmpdump和nginx rtmp实现录屏,直播和录制

    ffmpeg,rtmpdump和nginx rtmp实现录屏,直播和录制 2014年 四月 19日 周六 | tags: ffmpeg, rtmp, rtmpdump, nginx, -- (perm ...

  3. 使用nginx的第三方模块rtmp搭建直播服务器

    一.前言 本文主要介绍如何基于nginx的第三方模块rtmp搭建一个流媒体服务器,实现直播的简单推拉流. 二.环境准备 1.系统版本 Ubuntu 18.04.1 2.Nginx版本 nginx/1. ...

  4. nginx的rtmp搭建流媒体服务器实现直播流

    最近自己搞了一个用nginx的rtmp来搭建流媒体服务器,从而实现直播的过程,参考了网上很多资料,有些资料对于初学者来说比较难以理解,在此将我搭建的过程记录下来,分享给大家. 1.下载nginx-rt ...

  5. Nginx做流媒体服务Windows版实现直播

    声明:网上有很多关于Linux系统的配置,这里就不记录了.刚开始搭建直播室,用的是Java语言, Java开源的流媒体服务有Red5,但是很久没更新了,而且文档较少不容易上手,对于直播功能相对要求较低 ...

  6. 利用nginx搭建http和rtmp协议的流媒体服务器

    利用nginx搭建http和rtmp协议的流媒体服务器 一.准备工作 1.安装依赖包: yum install gcc glibc glibc-devel libtool make openssl-d ...

  7. 【Android RTMP】NV21 图像旋转处理 ( 快速搭建 RTMP 服务器 Shell 脚本 | 创建 RTMP 服务器镜像 | 浏览器观看直播 | 前置 / 后置摄像头图像旋转效果展示 )

    文章目录 安卓直播推流专栏博客总结 一. 编写快速搭建 RTMP 服务器 Shell 脚本 二. RTMP 快速搭建方法 三.创建阿里云 RTMP 服务器镜像 四.浏览器查看直播内容 五.前置 / 后 ...

  8. php直播推流rtmp,直播推流nginx-rtmp-module集成

    战斗民族俄罗斯人民开发的一款NGINX的流媒体插件,除了直播发布音视频流之外具备流媒体服务器的常见功能 比如推拉流媒体资源 基于HTTP的FLV/MP4 VOD点播 HLS (HTTP Live St ...

  9. 使用nginx结合nginx-rtmp-module搭建rtmp流媒体服务器

    环境:centos7.nginx 1.15.2.nginx-rtmp-module(nginx模块).win7主机,vmvare虚拟机(已安装号centos7系统) 安装前提:centos已安装Ope ...

  10. 如何搭建Rtmp服务结合uni-app开发直播APP

    前言: 由于自己有一个IM类的应用,为了完善它所以决定也加上直播和短视频功能.做直播目前有两种方法,一是直接对接第三方的直播服务产品,二是自己搭服务再开发.所以这里也从这两个方法推荐简单的实现方式,阿 ...

最新文章

  1. 算法基础知识科普:8大搜索算法之AVL树(下)
  2. 实践,用tornado实现自定义协议server
  3. TF-IDF与余弦相似性的应用(二):找出相似文章
  4. 【BLE】TLSR8258开发记录之10--更改MTU为245
  5. MyBatis-Plus 快速开始及详测 SpringBoot 集成Mybatis-Plus
  6. Python 中的url,Base64和MD5编码解码的使用
  7. JS和CSS中引号的使用
  8. angular 字符串转换成数字_3种方法搞定Excel中数字大小写转换? 123...变为壹贰叁......
  9. OpenShift 4 - 用Buildah定制UBI容器镜像
  10. MIT自适应律MRAC的理解和MATLAB实现
  11. spring-retry小结
  12. Android之Input子系统事件分发流程
  13. MATLAB中saveas函数使用
  14. onvif python3 推送音频_Python3-onvif协议之相机截图
  15. 如何Oracle_RAC恢复一个节点总结
  16. 加密解密-对称加密与非对称加密
  17. 陈梓立tison:投身开源,需要持之以恒的热爱与贡献
  18. Day23(CopyFile,InputStreamReader,OutputStreamWruiter,Buffered,BufferedInputStream,BufferedOutputStr)
  19. android面试手册
  20. 利用条形码扫描技术的智能仓储管理解决方案

热门文章

  1. matlab 拟合优度检验,χ~2拟合优度检验在教学中的应用及Matlab实现
  2. java messagedigest_Java自带的加密类MessageDigest类代码示例
  3. 破解qq上网限制 突破限制上QQ
  4. proteus8.0绘制元器件pcb封装
  5. 信息安全实验二、漏洞扫描与病毒防治
  6. 技术是如何推动内容产业的。
  7. 无线通信课程实验报告
  8. paip.一千 常用汉字 高频汉字 覆盖率90%
  9. 收集常用汉字6725个
  10. 机器学习笔记 - 什么是图神经网络?