Mac上搭建直播服务器

在Mac上搭建nginx+rtmp进行直播推流

Posted by Ted on May 1, 2018

1、安装Nginx

通过homebrew来安装支持rtmp协议模块的nginx

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

通过下面的命令来查看安装位置

brew info nginx-full

img

通过浏览器访问http://localhost:8080

img

在nginx.conf里配置

rtmp {
    server {
        listen 1935;
        application zbcs {
            live on;
            record off;
        }
    }
}

重启

nginx -s reload

2、安装ffmpeg来推流本地视频

brew install ffmpeg

推流命令为

ffmpeg -re -i /Users/imac/Documents/demo.mp4 -vcodec copy -f flv rtmp://127.0.0.1:1935/zbcs/room
ffmpeg -re -i 你的视频文件的绝对路径 -vcodec copy -f flv rtmp://localhost:1935/nginx配置的application名称/room

这就开始推流了

3、VLC直播

mac端

下载vlc播放器,在File->open network输入

rtmp://127.0.0.1:1935/zbcs/room

img

iPhone

下载VLC播放器,同一局域网,打开网络流,输入

rtmp://电脑的本地IP:1935/zbcs/room

img

4、推流桌面或者摄像头直播

ffmpeg -f avfoundation -list_devices true -i ""

img

可以看到在视频设备:

0:摄像头

1:桌面捕获

音频设备:

0:麦克风

所以如果要直播摄像头

ffmpeg -f avfoundation -i "0" -vcodec libx264  -f flv rtmp://localhost:1935/zbcs/room

加上声音

ffmpeg -f avfoundation -i "0:0" -vcodec libx264  -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://localhost:1935/zbcs/room

还可以设置频率和分辨率

// 设置帧率为30帧,图像大小为320x240
ffmpeg -f avfoundation -framerate 30 -video_size 320x240 -i "0" -vcodec libx264 -f flv rtmp://localhost:1935/zbcs/room

如果要实现电脑屏幕和摄像头一起直播

ffmpeg -f avfoundation  -framerate 30 -i "1:0" -f avfoundation -framerate 30 -video_size 320x240 -i "0" -vcodec libx264 -filter_complex 'overlay=main_w-overlay_w-10:main_h-overlay_h-10'  -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://localhost:1935/zbcs/room