直播平台搭建

前言:

      相信很多小伙伴在日常开发中,都有遇到开发直播的需求,是不是感觉无从下手,如果你刚好看到这篇博客,那么你真的来对地方,本篇文章将详细的讲解,如果手把手的搭建直播平台,最终效果为手机或者电脑端实时抓取摄像头数据实现推流,服务端拉流。

一、概念理解:

       要做一个这样的直播平台,首先要理解概念,就是数据怎么传输的,概括的说,现在实现直播通常用的协议是RTMP/RTSP,当然不仅仅是这两个,只是主流是这两个。参考文章RTSP协议学习,我截取了一张结构图片供参考:

直播平台搭建_第1张图片

        通过上述图片相信大家都能够理解RTSP协议,简单来说就是实时传输协议TCP和UDP之上建立的应用层协议。至于什么是应用层协议,你可以这样理解,就好像四川人之间用四川话交流,河南人之间用河南话交流一样,只是双方约定好的一种消息传输格式。如果你感兴趣,也可以去百度看看,如何自定义网络通信协议。

其实我们本次实现利用的是RTMP协议,RTSP只是为了帮助我们理解,只要对比RTMP和RTSP的相同点和不同点,那么就可以很好的理解RTMP协议,RTMP和RTSP的异同,大家可以去查阅相关文档理解,这里不做赘述。

二、实战

1.流媒体服务器搭建

       理解了上面的概念之后,我们会发现问题更加的清晰了,我们要如何才能实现这样一个功能,核心就是需要搭建一个服务,这个服务能够通过RTMP协议实现音视频流的接收并推送。那么问题又来了,搭建一个这样的服务难吗?要用什么语言开发呢?我完全不知道怎么下手?别担心,既然我们能够想到,肯定有大佬早都想到了这个问题了,开源项目srs可以完美的解决我们的问题,这个项目是国人开源的,不得不感慨国人真的越来越牛了。同时srs支持docker部署,参考链接https://github.com/ossrs/srs-docker/tree/dev#usage,只要5分钟,你就可以搭建一个自己的流媒体服务器了。搭建成功后你可以访问服务器地址查看是否正确启动访问地址:http://192.168.1.9:1985/console/,我在虚拟机启动,所以这里是我们虚拟机地址,你只需要修改为自己的地址即可。启动后的界面大致张下面这样:

直播平台搭建_第2张图片

2.windows端实现推流

     windows端推流,可以参考一款软件叫做OBS,这款软件可以实现摄像头推流和你本地视频推流。

直播平台搭建_第3张图片

上传视频后,点击设置推流地址

直播平台搭建_第4张图片

设置成功后,即可在srs看到有新的流接入

直播平台搭建_第5张图片

点击预览即可观看,该地址也可以通过其他进行播放,例如VLC等流媒体播放器。

3.android端实现推流

android端要稍微麻烦一点,这里推荐一个开源项目https://github.com/begeekmyfriend/yasea,这个项目是一个安卓应用,克隆代码后导入android studio;如果你完全不懂怎么导入项目,你可以参考下面两篇博客:

安装 | Android studio 3.5.2安装教程

规范导入android项目

导入项目后,即可使用android生成自己的apk包,生成后即可安卓到手机,安装后效果如下:还可以通过右上角开美颜额,

直播平台搭建_第6张图片

点击pushlish即可实现向流媒体服务器推流,即可通过流媒体服务器实时接收音视频数据,这个和windows端一样,这个推流地址也可以通过VLC等播放器播放,最终流媒体效果如下:

直播平台搭建_第7张图片

上面的基础,我们就可以基于上述做很多定制化的开发,例如流媒体播放器,我们完成可以通过ffmpeg实现实时拉流,通过webscoket展示在浏览器等操作等等。在android端,也可以改造Yasea代码,加入自己的一些操作等等。

如果你都看到这里了,刚好这篇文章对你也有一定的帮助,给个点赞鼓励一下吧,谢谢!如果不正确的请指正。

你可能感兴趣的:(业务开发)