首页 > 编程知识 正文

怎么做一个自己的直播平台,描述开设直播平台的步骤

时间:2023-05-05 14:05:27 阅读:172626 作者:746

2019独角兽企业重金招聘Python工程师标准

现场直播依然很受欢迎,想要分成的人也非常多。 看到如此热情的直播市场,开发程序员对直播的进一步开发和研究不可避免,但即使直播如此“赤裸裸”,很多人对直播也非常陌生。 那么,就介绍一下直播平台、直播系统的开发方法吧。

首先在直播视频采集端,播音员通过摄像头手机等采集设备,对声像流进行采集和编码,然后采用RTMP协议流媒体传输到直播流服务器。 这里,我们使用H.264编码对视频流进行编码,并使用AAC对音频流进行编码。 使用这两种编码的原因是hls协议必须同时使用这两种编码。

然后,实时服务器对从收集方推送的流执行一定的处理。 例如,hls协议将视频流切片并在服务器上缓存各个TS视频文件,同时生成记录视频流中包含的TS文件的m3u8文件。

直播的整体流程图如下。

然后,当播放器请求实时链接时,服务器使用RTMP或hls协议向播放器推送流。 那么,应该根据情况选择这两个协议吗? 首先,需要明确的是,这两项协议各有优缺点。

RTMP

公司: adobe

平台支持:部分web端播放器(如FlashPlayer )、移动端Vitamio

延迟:延迟3秒左右,实时性高

HLS

公司:苹果

平台支持: Apple产品本机支持、Android3.0及以上本机支持、桌面浏览器需要JWPlayer等第三方库

延迟:根据TS的长度而定,一般会有10s以上的延迟

综合以上情况,如果要求实时性的话,可以认为使用RTMP比较好。 在网页方面使用RTMP比较好吧。 因为FlashPlayer是本机支持的,而且大多数浏览器都安装了FlashPlayer。 如果移动端对实时性要求不高,最好采用hls。 因为ios中包含3.0以上的Android,本机支持hls协议。

视频采集与编码

视频采集有电脑摄像头、OBS等录像软件进行录像画面,手机摄像头采集等多种方法。 目前室外直播和移动互联网很受欢迎,所以我们决定用安卓设备通过摄像头收集视频流。 为了实现这个功能,我们使用了开源项目javacv。 javacv在计算机视觉领域包括许多库,主要使用FFMpeg库。 使用FFMpeg的FFMpegFrameRecoder类可以轻松地将从android摄像机收集的帧传输到服务器。

直播流服务器

关于直播服务器,我们选择使用我们中国人开发的开源项目——srs。 它支持RTMP/HTTP/RTSP等协议的流输入,支持rtmp/Hitachi/HLS/http等协议的流输出,还支持集群。 关于srs的安装和使用,可以直接看到github上的wiki,但在此不赘述。 需要注意的是,虽然可以在centos6.x和ubunut12.x上成功编译此项目,但例如,在我的ubuntu14.04上,存在依赖包丢失。 所以为了便于思考,在centos和ubuntu12.x上进行test比较好吧。

播放器

在实验过程中,使用多种播放器和库在全平台实现了rtmp和hls的播放。 网站方面使用了videojs,安卓方面使用了vitamio。

当然,本文的解决方案是最简单的,对直播服务器集群、直播机房的创建与管理、直播机房的直播密码与权限、内容发布网络CDN都没有深入的研究。 所以,如果你在直播平台开发的建设上还有太多问题的话,可以找一家专门开发直播的公司。 例如,一家专门开发直播系统和直播平台的公司,比如美丽直播,不仅可以降低成本,还可以很快实现直播的梦想。 http://www.meilibo.net (美丽广播) ) )。

转载于:https://my.oschina.net/u/3677777/blog/1552075

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。