前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RTMP服务器搭建(crtmpserver和nginx)简介

RTMP服务器搭建(crtmpserver和nginx)简介

作者头像
用户2929716
发布2018-08-23 13:26:52
3.2K0
发布2018-08-23 13:26:52
举报
文章被收录于专栏:流媒体流媒体

简介

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

环境搭建

需要安装 wget cmake libssl-dev

代码语言:javascript
复制
apt-get install wget cmake
apt-get install libssl-dev

crtmapserver编译

获取代码

可以从github上获取crtmapserver

代码语言:javascript
复制
wget https://codeload.github.com/j0sh/crtmpserver/zip/centosinit
编译
代码语言:javascript
复制
unzip centosinit
cd builders/cmake
cmake . 
make
启动
代码语言:javascript
复制
./crtmpserver/crtmpserver ./crtmpserver/crtmpserver.lua

FFmpeg推流

下载FFmpeg

官网上下载即可FFmpeg

0.png

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

推流
代码语言:javascript
复制
ffmpeg -i wz.mp4 -f flv rtmp://192.168.136.131/live/test

2.png

rtmp流拉取

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

3.png

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

4.png

使用nginx配置rtmp服务器

下载安装nginx和nginx-rtmp-module

6.png

编译安装nginx
代码语言:javascript
复制
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。添加以下配置

7.png

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

代码语言:javascript
复制
ffmpeg -re -i wz.mp4 -c copy -f flv rtmp://192.168.136.131/live/

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

5.png

推流状态查看

在nginx.cnf的http块下添加

代码语言:javascript
复制
    location /stat {    
            rtmp_stat all;
        rtmp_stat_stylesheet stat.xsl;
    }

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

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

2.png

FFmpeg使用语法

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

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

格式:

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

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

示例

H264视频转mp4

代码语言:javascript
复制
ffmpeg -i test.h264 -vcodec copy -f mp4 test.mp4

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

代码语言:javascript
复制
ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -i ~/test.avi -s 800×600 ~/test-800-600.avi

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

代码语言:javascript
复制
ffmpeg  -f video4linux -s 320*240 -r 10 -i /dev/video0 test.asf

udp视频流的推送

代码语言:javascript
复制
ffmpeg -re  -i 1.ts  -c copy -f mpegts   udp://192.168.0.106:1234```
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.10.06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
    • 环境搭建
      • crtmapserver编译
        • FFmpeg推流
          • rtmp流拉取
            • 使用nginx配置rtmp服务器
              • FFmpeg使用语法
              相关产品与服务
              云直播
              云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档