【秒懂音视频开发】26_RTMP服务器搭建
流媒体
基本概念
流媒体(Streaming media),也叫做:流式媒体。
- 是指将一连串的多媒体数据压缩后,经过互联网分段发送数据,在互联网上即时传输影音以供观赏的一种技术与过程
- 此技术使得数据包可以像流水一样发送,如果不使用此技术,就必须得先下载整个媒体文件才能进行观看
流媒体的一个非常典型、火爆的应用场景:直播。近几年,直播行业是蒸蒸日上。
直播架构
下面放几张图片,简单了解一下直播技术的基本架构。
你可能会有个疑问:信令服务器是干嘛用的?用来处理分享端和观看端的一些信令指令,比如创建房间、加入房间等。
用文字总结一下基本流程是:
- 分享端(比如主播) -> 产生音视频 -> 编码压缩音视频 -> 推流到服务器
- 观看端(比如观众) -> 从服务器拉流 -> 解码解压缩音视频 -> 播放音视频
推拉流
- 推流:通过流媒体协议,将音视频数据发送到流媒体服务器
- 拉流:通过流媒体协议,从流媒体服务器上拉取获得音视频数据
流媒体协议
常见的流媒体协议有:RTMP、HLS等。
- RTMP(Real-Time Messaging Protocol)
- 译为:实时消息传输协议,由Adobe公司出品
- 默认基于TCP的1935端口
- HLS(HTTP Live Streaming)
- 基于HTTP的流媒体网络传输协议,苹果公司出品
- 参考:RFC 8216
本文主要介绍RTMP协议相关知识。
服务器环境
首先,要搭建好RTMP服务器环境,主要步骤如下:
- 安装虚拟机VMWare或Parallels Desktop
- 我这里安装的是VMWare
- 在虚拟机上安装CentOS系统
- CentOS是Linux系统的一种,这里用7.6版本,建议跟我的版本保持一致
- 在CentOS系统中安装nginx、nginx-rtmp-module
- nginx:一款高性能的开源web服务器
- nginx-rtmp-module:让nginx支持rtmp
- 配置nginx
- 启动nginx
安装CentOS
下载CentOS
推荐网站:centoschina,上面有CentOS的各种版本,这里下载CentOS-7-x86_64-DVD-1810.iso,大小是4G多。
安装nginx
在nginx官网下载目前最新的稳定版:nginx-1.20.1.tar.gz。
安装nginx-rtmp-module
在nginx-rtmp-module的github下载目前最新的稳定版:v1.2.2.tar.gz。
配置nginx
启动nginx
一些步骤和命令整理
- 安装依赖
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
- 设置共享文件夹
- 查看共享成功与否
- vmware-hgfsclient
- 挂载到对应目录(这里放mnt)
- vmhgfs-fuse .host:/共享目录名称 /mnt/目录名称
- 查看共享成功与否
- 解压ngnix相关内容
- cp 源 目标
- tar -zxvf 解压文件
- 进入nginx目录,执行configure进行配置
./configure --prefix=/usr/local/nginx --add-module=ngnix的rtmp模块目录 --with-http_ssl_module
- 修改nginx配置
- vim conf/nginx.conf
rtmp { server { listen 1935; # 端口chunk_size 4000; application live { # 请求路径live on; } } }
- 配置PATH
- export PATH=$PATH:/usr/local/nginx/sbin
- 启动nginx
- nginx
- 查看
- 端口占用:lsof -i:1935
- 杀死进程:kill -9 pid
- 如果远程连接不上rtmp服务器,有可能是因为防火墙把1935端口关掉了
# 查看端口情况(返回no代表被关闭了)
firewall-cmd --query-port=1935/tcp# 拿到zone名称(一般是public)
firewall-cmd --get-active-zones# 打开端口
firewall-cmd --zone=public --add-port=1935/tcp --permanent# 重启防火墙(再次查看端口情况,应该会返回yes了)
firewall-cmd --reload
- ffmpeg推流
ffmpeg -i xx.mp4 -f flv rtmp://ip地址:1935/live/xx
- ffmpeg拉流
ffplay rtmp://ip地址:1935/live/xx
【秒懂音视频开发】26_RTMP服务器搭建相关推荐
- 【秒懂音视频开发】23_H.264编码
本文主要介绍一种非常流行的视频编码:H.264. 计算一下:10秒钟1080p(1920x1080).30fps的YUV420P原始视频,需要占用多大的存储空间? (10 * 30) * (1920 ...
- 【秒懂音视频开发】15_AAC编码实战
本文将分别通过命令行.编程2种方式进行AAC编码实战,使用的编码库是libfdk_aac. 要求 fdk-aac对输入的PCM数据是有参数要求的,如果参数不对,就会出现以下错误: [libfdk_aa ...
- 【秒懂音视频开发】07_音频录制01_命令行
命令简介 FFmpeg的bin目录中提供了3个命令(可执行程序),可以直接在命令行上使用. 3个命令 ffmpeg ffmpeg的主要作用:对音视频进行编解码. # 将MP3文件转成WAV文件 ffm ...
- 【秒懂音视频开发】07_重识音频
我们平时在互联网上听到的声音,都是先经过录制后,再传输到互联网上的.比如歌曲.电影.主播等的声音. PCM 录音的原理可以简单理解为:把声源的振动记录下来,需要时再让某个物体按照记录下来的振动规律去振 ...
- 【秒懂音视频开发】02_重识声音
关于声音的知识,记得没错的话,是属于初中物理的内容.为了学好音视频,我们有必要重新温习一下声音的相关知识.需要提醒的是:本文的GIF动态图比较多,建议选择在网络较好的环境中阅读. 产生 声音(Soun ...
- 【秒懂音视频开发】06_重识声音
关于声音的知识,记得没错的话,是属于初中物理的内容.为了学好音视频,我们有必要重新温习一下声音的相关知识.需要提醒的是:本文的GIF动态图比较多,建议选择在网络较好的环境中阅读. 产生 声音(Soun ...
- 网页测试本地服务器_音视频开发搭建一个直播服务器
现在抖音.快手等直播实在是太火了,因此对音视频的开发非常感兴趣.查阅了相关资料,使用Nginx搭建一个简单的直播跟点播流媒体服务器,能够实时推流到服务器,同时在网页端播放直播的视频. 先上效果 使用O ...
- 音视频开发-SRS 4.0开发环境搭建丨webrtc丨FFmpeg丨SRS流媒体服务器开发
SRS 4.0开发环境搭建 视频讲解如下,点击观看: 音视频开发-SRS 4.0开发环境搭建丨webrtc丨FFmpeg丨SRS流媒体服务器开发 音视频高级开发学习学习资料链接:FFmpeg/WebR ...
- 音视频开发6. 搭建 ffmpeg Linux远程开发环境
音视频开发6. 搭建 ffmpeg Linux远程开发环境 一.准备环境 二.操作步骤 1. 在CentOS 编译安装 ffmpeg 2. 编译安装ffmpeg后的环境 3. 本地在vscode安装 ...
最新文章
- matlab内存管理(二)
- Google回归中国对SEO们意味着什么
- C语言的词法分析在长度规则方面采用的是什么策略?
- html点击按钮切换图片代码_SVG创意推文—『点击开窗』教程
- Qt Creator使用CVS
- 复选框 全选 全不选 反选 实现
- 23种设计模式之简单工厂
- “有趣”的投影:当PCA失效时怎么办?
- SQL Serve 查询所有可用的数据库语句
- 中国双槽超声波清洗机市场趋势报告、技术动态创新及市场预测
- Win7虚拟Wifi热点(设置后能连接wifi但无法上网的可按后面提示操作)
- lenovo L480 进入bios_如何通过bios关闭pxe启动 - 操作系统
- 手机信令数据怎么获得_如何运用手机信令大数据辅助城市规划决策
- 以flv.js框架为基础,替换flv格式视频
- 华为笔记本已经设置睡眠时间但无法自动进入睡眠状态解决方案(亲测有效)
- 域名过期 脚本_域名宝已过期! …还是垃圾?
- LASSO和LARS
- Spring中的一些常用注解
- 程序员为什么热衷于造轮子,升职加薪吗?
- 关于win7 32bit连接win10共享打印机0x0000011b解决办法