流媒体(Streaming media),也叫做:流式媒体。
流媒体的一个非常典型、火爆的应用场景:直播。近几年,直播行业是蒸蒸日上。
下面放几张图片,简单了解一下直播技术的基本架构。
你可能会有个疑问:信令服务器是干嘛用的?用来处理分享端和观看端的一些信令指令,比如创建房间、加入房间等。
用文字总结一下基本流程是:
常见的流媒体协议有:RTMP、HLS等。
本文主要介绍RTMP协议相关知识。
首先,要搭建好RTMP服务器环境,主要步骤如下:
推荐网站:centoschina,上面有CentOS的各种版本,这里下载CentOS-7-x86_64-DVD-1810.iso,大小是4G多。
在nginx官网下载目前最新的稳定版:nginx-1.20.1.tar.gz。
在nginx-rtmp-module的github下载目前最新的稳定版:v1.2.2.tar.gz。
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
./configure --prefix=/usr/local/nginx --add-module=ngnix的rtmp模块目录 --with-http_ssl_module
vim conf/nginx.conf
- rtmp {
- server {
- listen 1935; # 端口
- chunk_size 4000;
- application live { # 请求路径
- live on;
- }
- }
- }
export PATH=$PATH:/usr/local/nginx/sbin
nginx
端口占用:lsof -i:1935杀死进程:kill -9 pid
- # 查看端口情况(返回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 -i xx.mp4 -f flv rtmp://ip地址:1935/live/xx
ffplay rtmp://ip地址:1935/live/xx
本文福利, 免费领取C++音视频学习资料包+学习路线大纲、技术视频/代码,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,编解码,推拉流,srs),有需要的可以进企鹅裙927239107领取哦~