搭建简单的直播系统

一、简介

简单介绍在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地址),点击播放就可以观看直播了。

观看直播

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,482评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,377评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,762评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,273评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,289评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,046评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,351评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,988评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,476评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,948评论 2 324
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,064评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,712评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,261评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,264评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,486评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,511评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,802评论 2 345

推荐阅读更多精彩内容