Android-多媒体

RTMP服务器搭建(crtmpserver和nginx)

2017-10-06  本文已影响1809人  第八区

简介

环境搭建

需要安装 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

0.png

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

推流
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
cd nginx-1.12.1
./configure --add-module=/root/nginx-rtmp-module
make
make install

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

配置nginx的rtmp服务

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

7.png

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

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

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

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/;
    }

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


2.png

FFmpeg使用语法

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

格式:

命令行加入-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```
上一篇下一篇

猜你喜欢

热点阅读