RTMP服务器搭建(crtmpserver和nginx)

简介

  • 环境搭建
  • crtmapserver编译
  • FFmpeg推流
  • rtmp流拉取
  • 使用nginx配置rtmp服务器
  • FFmpeg使用语法

环境搭建

需要安装 wget cmake libssl-dev

apt-get install wget cmake
apt-get install libssl-dev

crtmapserver编译

获取代码

可以从github上获取crtmapserver

wget https://codeload.github.com/j0sh/crtmpserver/zip/centosinit
编译
unzip centosinit
cd builders/cmake
cmake . 
make
启动
./crtmpserver/crtmpserver ./crtmpserver/crtmpserver.lua

FFmpeg推流

下载FFmpeg

官网上下载即可FFmpeg

RTMP服务器搭建(crtmpserver和nginx)_第1张图片
0.png

解压后加入到window的系统环境变量中,方便后面的命令操作。

推流
ffmpeg -i wz.mp4 -f flv rtmp://192.168.136.131/live/test
RTMP服务器搭建(crtmpserver和nginx)_第2张图片
2.png

rtmp流拉取

这里使用VLC播放器,下载VLC
开始播放,点击[媒体]->[流]->[网络]
输入刚刚推流的地址。然后选在下方的播放。

RTMP服务器搭建(crtmpserver和nginx)_第3张图片
3.png

接下来就成功的播放了直播流视频

RTMP服务器搭建(crtmpserver和nginx)_第4张图片
4.png

使用nginx配置rtmp服务器

下载安装nginx和nginx-rtmp-module
  • nginx 直接到官网下载
  • nginx-rtmp-module 在github上下载
RTMP服务器搭建(crtmpserver和nginx)_第5张图片
6.png
编译安装nginx
cd nginx-1.12.1
./configure --add-module=/root/nginx-rtmp-module
make
make install

编译安装完后nginx目录在/usr/local/nginx
而nginx的基本命令在sbin下。进入到sbin下

  • 启动 ./nginx
  • 重启 ./nginx -s reload
    其他更多命令可自行查找。
配置nginx的rtmp服务

编辑conf/nginx.conf。添加以下配置

RTMP服务器搭建(crtmpserver和nginx)_第6张图片
7.png

live就是我们推流和拉流的名字。然后重启nginx。
我们继续使用ffmpeg来推流

ffmpeg -re -i wz.mp4 -c copy -f flv rtmp://192.168.136.131/live/

这里采用拷贝的方式,不进行压缩。
然后使用VLC播放。

RTMP服务器搭建(crtmpserver和nginx)_第7张图片
5.png
推流状态查看

在nginx.cnf的http块下添加

    location /stat {    
            rtmp_stat all;
        rtmp_stat_stylesheet stat.xsl;
    }

    location /stat.xsl { 
        root /usr/local/nginx/nginx-rtmp-module/;
    }

打开网页就可以看到正在推流的信息。


RTMP服务器搭建(crtmpserver和nginx)_第8张图片
2.png

FFmpeg使用语法

命令参考资料
推流参考资料
ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]
参数选项:

  • -an: 去掉音频
  • -acodec: 音频选项, 一般后面加copy表示拷贝
  • -vcodec:视频选项,一般后面加copy表示拷贝
  • -re ffmpeg读取文件有两种方式:一种是直接读取,文件被迅速读完;一种是按时间戳读取。一般都是按时间戳读取文件,

格式:

  • h264: 表示输出的是h264的视频裸流
  • mp4: 表示输出的是mp4的视频
  • mpegts: 表示ts视频流

命令行加入-re,表示按时间戳读取文件

示例

H264视频转mp4

ffmpeg -i test.h264 -vcodec copy -f mp4 test.mp4

重新调整视频尺寸大小(仅限Linux平台)

ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -i ~/test.avi -s 800×600 ~/test-800-600.avi

把摄像头的实时视频录制下来,存储为文件(仅限Linux平台)

ffmpeg  -f video4linux -s 320*240 -r 10 -i /dev/video0 test.asf

udp视频流的推送

ffmpeg -re  -i 1.ts  -c copy -f mpegts   udp://192.168.0.106:1234```

你可能感兴趣的:(RTMP服务器搭建(crtmpserver和nginx))