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"就会失败。如下图所示: