搭建简单的直播系统

作者: 一叶知秋0830 | 来源:发表于2019-07-05 09:14 被阅读0次

一、简介

简单介绍在mac系统上搭建Nginx服务器以及ffmpeg的安装。Nginx服务搭建好后测试一下本地推流和iOS端推流。

二、搭建流媒体服务

1.编辑并安装Nginx服务(如安装报错可以参考:常见问题)

a. 在mac终端输入下面命令来安装brew。
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
b. 在mac终端输入下面命令来安装nginx模块。
brew tap denji/nginx
c. 在mac终端输入下面命令来安装rtmp模块。
brew install nginx-full --with-rtmp-module
d. 在mac终端输入下面命令来查看nginx的安装目录
brew info nginx-full

执行命令后会看到输出很多信息,拉到最下面找到Caveats。
nginx服务器根目录所在位置为/usr/local/var/www;
nginx安装的目录为/usr/local/opt/nginx-full;
nginx配置文件为/usr/local/etc/nginx/nginx.conf。

查看nginx的安装目录
e. 执行下面命令来启动nginx(也就是上图的第三个红色框的路径)
/usr/local/opt/nginx-full/bin/nginx

启动后打开浏览器输入http://localhost:8080,如果显示如下界面则说明安装成功了。

nginx启动成功的界面
f. 执行下面命令打开nginx配置文件(也就是上vi+空格+配置文件路径)
vi /usr/local/etc/nginx/nginx.conf

在配置文件的event节点后面添加rtmp节点进行rtmp服务的配置,其他节点的配置信息就用默认的,可以不改动。

#配置rtmp服务器
rtmp {
    server{
        #指定服务端口为1935(1935是rtmp通信协议端口)
        listen 1935;
        #音视频传输时每个传输块的大小是4000字节
        chunk_size 4000;

        #指定流应用,rtmp_test是自己取的应用名
        application rtmp_test{
            #将其功能打开
            live on;
            #关闭录制
            record off;
            #允许任何人向我发起请求
            allow play all;
        }
    }
}
rtmp服务的配置

配置完成后按esc键,然后输入:wq保存退出。

g. 执行下面命令重启nginx服务
nginx -s reload

重启服务后执行下面命令查看网络状态

netstat -an |grep 1935

执行后可以看到1935的端口号目前处于LISTEN状态。这样直播服务器就算搭建好了。


三、电脑本地推流测试

1. 执行下面命令安装ffmepg(时间会比较久)
brew install ffmpeg
2.通过FFMPEG将本地mp4文件推到rtmp服务器

-i后面是自己本地视频的路径(qinjian是自己的 用户名),flv后面是rtmp服务地址,room可以修改,rtmp_test是rtmp服务配置文件中取的应用名

ffmpeg -re -i /Users/qinjian/Downloads/test.mp4 -vcodec copy -f flv rtmp://localhost:1935/rtmp_test/room

执行命令后会看到如下图所示的结果。


执行推流命令的显示
3.查看推流结果

需要先下载flashplayer进行播放,由于mac不能打开swf文件,所以还需要下载一个iSwiff来打开flashplayer.swf(也可以直接将flashplayer.swf拖进浏览器打开,可能有些浏览器不支持,可以多试几个浏览器,我测试的Filefox可以打开)。
flashplayer.swf和iSwiff的下载地址:https://pan.baidu.com/s/1VGFE3wnv-PC-AFFASQ0xFA 提取码:8SaM
下载后打开iSwiff,iSwiff是没有界面的,点击左上角的"文件--打开",选择flashplayer.swf文件进行打开。

iSwiff操作说明
如果打开flashplayer显示下图界面,先点击“Get Adobe Flash Player”去下载并安装,安装好后退出iSwiff,然后重新启动iSwiff,再打开flashplayer.swf文件。
image.png

flashplayer.swf正常打开后的界面如下图所示,在红框中输入rtmp服务器地址,然后点击播放就会看到视频内容了(可能会有点延迟)。


flashplayer播放效果

四、iOS手机端进行推流

iOS端推流使用的是LiveVideoCoreSDK,github地址如下LiveVideoCoreSDK
打开项目后找到LiveVideoCoreDemo文件夹下的ViewController.m文件,将viewDidLoad方法里面的rtmp地址改为自己的地址。

- (void)viewDidLoad {
    [super viewDidLoad];
    [self UIInit];
    _RtmpUrlTextField.text = @"rtmp://192.168.20.242:1935/rtmp_test/room";
}

这里需要注意一下,上面本地推流测试时rtmp服务地址写的是rtmp://localhost:1935/rtmp_test/room,如果在手机上进行推流需要先查一下rtmp服务所在电脑的IP地址(终端输入ifconfig进行查询),然后用IP地址替换rtmp服务地址中的localhost(rtmp://192.168.20.242:1935/rtmp_test/room)。另外手机和rtmp服务所在的电脑要在同一个局域网内。
然后在真机上运行程序(记得在Info.plist文件中添加Privacy - Microphone Usage Description和Privacy - Camera Usage Description这两个隐私权限,否则点击开始直播会闪退),点击开始直播进入直播页面,如下图所示:

直播页面

然后在打开的flashplayer中输入rtmp://localhost:1935/rtmp_test/room(这里可以不用替换IP地址),点击播放就可以观看直播了。

观看直播

相关文章

网友评论

    本文标题:搭建简单的直播系统

    本文链接:https://www.haomeiwen.com/subject/fldwqctx.html