如何快速搭建一个直播平台?

如何快速搭建一个直播平台?

文章目录

  • 如何快速搭建一个直播平台?
    • 缘由
    • 原材料
    • 你需要懂
    • 开始操刀
      • 服务器搭建
      • 快速搭建
      • 访问
      • 开启直播!
      • 观看直播!
    • 拓展
    • 最后

缘由

首先呢,我是一个程序员,本篇文章简述如何快速使用现有的开源工具搭建一个直播平台,大概花了一天时间研究,现在要搭建也就是几分钟的事。

本来呢,是想要研究如何搭建一个视频流媒体服务器,为了使用手机或者电脑在任何地方都能看存在家里服务器上的电影、MV什么(~~小电影?~~你说啥?)的,并支持边下边播的功能,结果,研究的一半跑偏了,最后搭建了一个直播平台,但同时也学习了不少东西。我会写另外一篇继续完成我的目标。

原材料

硬件:Linux服务器

软件:Docker、Nginx、FFmpeg、nginx-rtmp-module、OBS Studio、VLC播放器

协议:RTMP/RTSP

你需要懂

  • Docker的基本使用
  • Nginx的配置使用
  • 域名解析

开始操刀

服务器搭建

这里呢可以在阿里云上或者腾讯云上买,我呢是直接买了一个小服务器在家里(配上2800M路由器+7类网线不要太爽)。然后安装Docker(安装教程有很多,百度就可以,而且现在很多云服务可以直接购买带Docker的服务器),一定要用Linux的,我个人习惯用Ubuntu。

还有OBS Studio(直播软件)和VLC(流媒体播放器)这两个软件直接下载安装啊即可,官网连接已经附上。

快速搭建

经过资料查证,不得不说Nginx和FFmpeg是真的牛皮。这里我们要用到的是Nginx+nginx-rtmp-module模块实现一个流媒体服务器,但需要去编译,这个就比较头疼了。好在我突然想到另外一个牛皮的软件,Docker,在DockerHub里有成千上百的好东西,我找到了个这个哥们(真的是帮大忙了)的镜像tiangolo/nginx-rtmp简直完美,在看过他的DockerFile后,他已经将模块nginx-rtmp-module整合到Nginx中并且编译安装好了,并且配置了一个模板nginx.conf(这个需要去GitHub上去寻找),你只需要把他的这个镜像拉倒你的服务器上。

代码我给你放这儿了:

docker pull tiangolo/nginx-rtmp

// 一下代码选一个执行

// 运行,一般有这个就够用了
docker run -d -p 1935:1935 --name nginx-rtmp tiangolo/nginx-rtmp
// 替换原有的配置文件,需要创建/var/nginx.conf,如果还需要配置其他的话,只需要重启容器就可以了
docker run -d -p 1935:1935 -v /var/nginx.conf:/etc/nginx/nginx.conf --name nginx-rtmp tiangolo/nginx-rtmp

或者牛皮的话,直接写一个新的DockerFile,按照你的需要求任意定制,GitHub上已经给出示范:

FROM tiangolo/nginx-rtmp

COPY nginx.conf /etc/nginx/nginx.conf

Nginx.conf示范:

worker_processes auto;
rtmp_auto_push on;
events {}
rtmp {
    server {
        listen 1935;
        listen [::]:1935 ipv6only=on;

        application live {
            live on;
            record off;
        }
    }
}

这个时候,服务器就搭建好了,是不是So easy。

访问

访问格式为:rtmp:///live/

这里假设你的主机地址为:rtmp.local.com

那么你的访问地址为:rtmp://rtmp.local.com:1935/live/

不要问为啥,先记住这个地址。

开启直播!

关于如何推流,那是另外的一种技术了,这里不做展开,有机会的话在研究。这里直接使用工具。

  1. 打开OBS Studio
  2. 设置
  3. 选择流部分
  4. 流类型选择:自定义流服务器
  5. url中输入rtmp://rtmp.local.com:1935/live,在秘钥中随意写一个单词,例如test,那么你在访问时就应该访问:rtmp://rtmp.local.com:1935/live/test
  6. 回到主界面,选择一个视频源,捕获屏幕。
  7. 点击开始推流。
  8. 你就开始直播了!

用了这个软件,你就知道直播哪些切换场景什么的怎么做的的,会给你打开新世界的大门。

观看直播!

开了直播得看不是,这里也用软件VLC。

  • 单击“媒体”菜单
  • 点击“打开网络流”
  • 输入上面的URL:rtmp://rtmp.local.com:1935/live/test
  • 点击“播放”
  • 等一等
  • 现在VLC应该开始播放从OBS Studio传输的任何内容

到这里,你就完美的开始直播了!

拓展

  • 这是一个基本的实现,对于流量太大的问题,关于负载均衡和集群,参考Nginx配置,这个暂且不谈(网络上将负均衡的太多了)。

  • 关于推流和播放的问题,通过FFmpeg都可以实现,但怎么实现,我觉得又可以写两篇文章,推流目前还没有研究,但关于播放,网上有太多的Demo,包括Android的几个视频框架都自带支持流媒体播放,所以直接永久好了。

  • 关于做视频站的问题,这个我会再写一篇,这个也是用刀FFmpeg,但是是使用nginx-rtmp-module的配置实现服务器本地推流,或者使用其他服务器推流的方式。这个再说。

最后

如果你要是想开直播、当网红,你还是去第三方平台吧,这里只负责搭建,至于怎么运营是另外一门学问。这里仅共内部使用,玩耍,如果要搭建直播平台也可以,但还要配合其他技术。这里基于Docker和Nginx,灵活性很强,你可以任意配置。

你可能感兴趣的:(技术)