视频监控系统

mac环境搭建流媒体环境ffmpeg&srs&n

2018-01-23  本文已影响142人  程序员小超

ffmpeg安装

mac上执行如下命令,可以安装ffmpeg和ffplay

brew install ffmpeg --with-ffplay

注意

如果已经安装了ffmpeg,但是没有安装ffplay。可以通过brew uninstall ffmpeg卸载ffmpeg,再从新安装。

nginx安装

1、安装nginx

brew tap homebrew/nginx

brew install nginx-full --with-rtmp-module

2、增加环境变量

编辑.bash_profile中增加

export PATH=$PATH:/usr/local/Cellar/nginx-full/版本信息/bin

再执行source .bash_profile文件,使其生效

3、执行

nginx

在浏览器访问http://localhost:8080如下图所示:

4、增加rtmp支持

vim /usr/local/etc/nginx/nginx.conf

在最后末尾增加:

rtmp{

     server {

          listen 1935;

          application live{

               live on;

               record off;

           }

         }

}

如下图所示:

其中1935为监控的端口号,live为app名。通过如下命令刷新nginx配置:

nginx -s reload

5、测试

通过如下命令进行推流:

ffmpeg -stream_loop -1 -re -i ~/Desktop/aaa.mp4 -vcodec h264 -acodec aac -f flv "rtmp://localhost:1935/live/testYzc"

如下界面则证明运行正常:

通过如下命令进行拉流:

ffplay "rtmp://localhost:1935/live/testYzc"

效果:

SRS配置

1、下载并编译SRS

git clone https://github.com/ossrs/srs.git

./configure --osx --disable-all  && make

2、配置srs

vim conf/srs.conf

将max_connections改为200(mac不支持太大数值)

如下图所示:

3、启动

./objs/srs -c conf/srs.conf

如果前面nginx还未关闭,会因为端口占用启动失败。执行如下命令关闭nginx

nginx -s stop

4、推流

ffmpeg -stream_loop -1 -re -i ~/Desktop/aaa.mp4 -vcodec h264 -acodec aac -f flv "rtmp://localhost:1935/live/testYzc"

5、拉流

ffplay "rtmp://localhost:1935/live/testYzc"

结果同nginx播放效果

注意

推拉流地址必须为如下格式:

rtmp://host/app/stream

host:推拉流的host地址

app:应用名

stream:流名字

rtmp://localhost:1935/app/stream(合法)

rtmp://localhost:1935/app(不合法,缺少流名)

rtmp://localhost:1935/app/stream/fjsdklf/gfdkg(合法)

rtmp://localhost:1935/live?vhost=www.baidu.com/testYzc(合法,执行vhost为www.baidu.com)

6、配置vhost

配置/etc/hosts增加一条解析规则

127.0.0.1 www.baidu.com

并且修改conf/srs.conf的配置文件

vhost www.baidu.com{

}

如下图所示:

推流:

ffmpeg -stream_loop -1 -re -i ~/Desktop/aaa.mp4 -vcodec h264 -acodec aac -f flv "rtmp://www.baidu.com:1935/live/testYzc"

拉流:

ffplay "rtmp://www.baidu.com:1935/live/testYzc"  (或者rmtp://localhost:1935/live?vhost=www.baidu.com/testYzc 都可以)

此时如果推流到ffmpeg -stream_loop -1 -re -i ~/Desktop/aaa.mp4 -vcodec h264 -acodec aac -f flv "rtmp://localhost:1935/live/testYzc"就会失败。如下图所示:

上一篇 下一篇

猜你喜欢

热点阅读