使用nginx实现rtmp的推流和点播

@[toc]

RTMP简介

  1. 是流媒体协议。
  2. RTMP协议是 Adobe 的私有协议,未完全公开。
  3. RTMP协议一般传输的是 flv,f4v 格式流。
  4. RTMP一般在 TCP 1个通道上传输命令和数据。

详细资料:https://cloud.tencent.com/developer/article/1038381
RTMP

nginx简介

nginx是一个高性能的HTTP和反向代理服务器,其特点是占用内存少,并发能力强。

代理服务器:

代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站,去获取信息。

主要的功能有:

  1. 突破自身IP访问限制,访问国外站点。教育网、169网等网络用户可以通过代理访问国外网站。
  2. 访问一些单位或团体内部资源,如某大学FTP(前提是该代理地址在该资源 的允许访问范围之内),使用教育网内地址段免费代理服务器,就可以用于对教育 网开放的各类FTP下载上传,以及各类资料查询共享等服务。
  3. 突破中国电信的IP封锁:中国电信用户有很多网站是被限制访问的,这种 限制是人为的,不同Serve对地址的封锁是不同的。所以不能访问时可以换一个国 外的代理服务器试试。
  4. 提高访问速度:通常代理服务器都设置一个较大的硬盘缓冲区,当有外界 的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。
  5. 隐藏真实IP:上网者也可以通过这种方法隐藏自己的IP,免受攻击.

安装与使用

安装

1
2
3
sudo apt-get install nginx # 安装Nginx
sudo apt-get install libnginx-mod-rtmp # 安装libnginx-mod-rtmp
sudo apt install ffmpeg --推流,拉流工具

配置nginx

1
2
vim /etc/nginx/nginx.conf  #打开配置文件
set mouse=a #支持鼠标操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
rtmp {
server {
listen 1935; #rtmp server 缺省端口
chunk_size 4096; #d配置 RTMP 消息块 4096 字节

# 点播配置
application vod {
play /home/haska/videos; #video path
}

# 直播流配置
application live{
live on;
}
}
}

nginx常用指令

1
2
3
sudo service  nginx reload   #不重启重新载入最新配置文件内容
sudo service nginx stop #停止服务
sudo service nginx restart #重启服务

使用ffmpeg推流

推流指令

上次更新 2021-01-28