直播APP源码实现直播都有哪些流程需要注意?

直播APP源码实现直播都有哪些流程需要注意?,第1张

直播APP源码可以是原生的或混合型的。原生直播APP源码专为特定平台设计的,这种APP的代码是通过使用该平台所采用的编程语言来创建的。混合型的是同时支持多个平台的APP,代码是用HTML,CSS或JavaScript编写。

一、直播APP源码架构

直播APP源码的产品架构,可以理解为以服务器为信息载体,将用户的观看请求与直播的实时画面内容相串联,而用户端和主播端分别通过播放URL、推流URL的协议封装起来;在信息转化过程中主播端需要涉及降噪、流量控制、美颜等优化手段,而用户端则涉及硬件加速、视频解码、卡顿监控等方式提升用户体验。

二、直播APP源码实现直播流程上需要注意的内容

首先,音视频采集及编码环节,通过调用手机摄像头等采集设备,依托美颜及图像处理工具,实现音视频内容的采集以及处理。音视频编码格式的选取也是十分有讲究的。音频编码格式常见的为Mp3、ACC等;视频编码格式常用的则是Mpeg4、H264、H265等。

其次,推流环节特别要关注的是流媒体传输协议的选择。比较常见的流媒体传输协议有UDP、RTSP、RTMP、HLS等。现如今,绝大多数情况下开发直播APP软件采用的是RTMP协议,这是专为视频直播量身定制的,直播延时很容易就可以控制在5s以内,提升了直播观看的体验度。

最后,内容分发层面多采用三方CDN服务,除非有特殊需求的情况下会选择自建流媒体服务器。三方CDN服务商拥有众多的节点服务器,能够快速实现直播内容的传输分发,极大地增强直播体验,但高额的流量费用也是后期直播平台运营中需要精打细算的。

除了直播APP源码开发直播实现流程上需要注意的这些内容外,完整的直播APP源码开发工作还会涉及到众多的服务模块。WEB服务主要负责PC直播,管理后台,接口逻辑的实现;REDIS服务提供的则是数据的缓存,用于存储常用的动态数据;Mysql服务提供的是直播中的静态数据存储;socket服务则属于nodejs组件,用于实现直播群聊、私聊、消息通知等功能实现;视频直播服务提供视频直播、旁路直播、转码、点播、存储等;监控服务提供的是主播异常掉线监听,直播消息推送等。

三、直播APP源码的难点和细节  

1、在网络信号弱的情形下,需求保障食品质量。假如发生信号不好需求缓存的情形,那么会大大减少用户体验。  

2、直播画面的延迟情形。数据传输是依照客户端下载到服务器,服务器再上传到客户端的模式,数据越大特别是高清视频画面,那么整体上传下载速度越慢,客户端显示出现延迟,会员会出现不停缓冲等状况,影响会员的采取。  

3、页面交互动画。互动直播的内在就是主播与观众互动历程。主流的直播APP通常会增添诸如送花、打赏等等,对于系统兼容性、直播APP运行速度以及流畅度都会导致肯定的影响,甚至会出现BUG。

sewise流媒体服务器软件系统是一整套流媒体编码、分发和存储的软件系统,包含直播、点播、虚拟直播、剪切、转码、视频管理系统。这些软件支持多屏多系统播放,终端客户使用手机、平板、电脑、电视等终端,ios、安卓、windows、linux等系统,都能支持播放。 UMS通过使用RTMP协议向Flash Player传输或接收多种比特率的直播/点播媒体流、数据以及远程调用信息UMS服务器支持基于Adobe Flash/AIR技术平台的流媒体点播/直播及其他功能

AMS流媒体服务系统是一套完整的基于IP网络的音视频应用平台,采用模块化,跨平台的架构设计,采用自主研发的高性能流媒体服务引擎,支持多种主流流媒体协议(RTP、RTSP、RTMP、http、HLS等);支持直播、点播、录播等多种应用模式;支持PC机、手机、机顶盒等多种接入终端。方便用户建立多种应用模式

21 使用UMSMonitor配置UMS服务

UMSMonitor是一款专门用于管理Ultrant MediaServer服务器软件的工具软件,使用它可以方便地启动、停止、重启Ultrant Media Server服务,并可以设置各种运行参数。您可以通过鼠标右键点击Windows托盘右下角的蚂蚁图标来弹出系统菜单,见下图:

弹出上图菜单后,用鼠标左键选取“打开Ultrant Media Server Monitor”选项,即可弹出UMSMonitor的主控界面,如下图:

在UMSMonitor软件主控界面上,您可以通过左边的“服务状态”列表查看已经安装的UMS相关服务及其工作状态,要管理其中某一项服务,您需要先选中左边的列表项,然后找到右边的三个服务控制按钮,分别是“启动服务”、“停止服务”、“重启服务”,这三个按钮分别对应的功能是:启动UMS相关服务、停止UMS相关服务、重启UMS相关服务。 在UMSMonitor软件主控界面上,您需要先选中“Ultrant Media Server(UMS)”项,然后通过鼠标左键点击右边的“配置服务”按钮来进入Ultrant Media Server服务器软件配置界面。配置界面如下图:

配置完成后,您需要点击“应用”以确认修改,然后点击“确定”使修改立刻生效,此时软件会提示您是否重启Ultrant Media Server服务以使修改生效,选择“确定”是配置生效。

22 测试点播功能

要使用点播功能,您需要自己准备一个FLV格式的视频文件,并将其拷贝至任一媒体库路径下(媒体库路径可以通过UMSMonitor来添加),或将该FLV格式视频文件所在路径添加至媒体库路径。

视频文件及媒体库路径准备好后,请确保修改的设置已经生效,以及文件名没有冲突。如果您使用的是安装程序自带的Nginx Web服务器,请将nginx安装目录下html子文件夹中的vodhtml文件用记事本打开;如果您使用已有的Web服务器,请将Web服务器根目录下的UMS\vodhtml用记事本打开,找到下述代码:

soaddVariable('file','6roomsflv');

soaddVariable('start','0');

soaddVariable('streamer','rtmp://127001:1935/vod');

将127001改为您当前服务器的IP地址;如果您使用自己准备的FLV格式视频文件,请将vodhtml文件中上述代码中的“6roomsflv”改为您自己准备的视频文件名称。

如果您使用安装程序自带的Nginx Web服务器,您可以通过浏览器访问http://{服务器IP地址}/vodhtml来访问点播页面;如果您使用您的计算机原有的Web服务器,您可以通过浏览器访问http://{服务器IP地址}/UMS/vodhtml来访问点播页面。

播放页面正常出现后,点击播放器即可播放。

23 测试直播功能

您可以使用Adobe公司提供的免费软件Adobe Flash Media Live Encoder31来测试UltrantMedia Server软件的直播功能。

231 安装Adobe Flash Media Live Encoder31

安装过程及帮助详见Adobe官方网站。

232 准备摄像设备

您可以使用USB网络摄像头或专业的视频采集卡(需要Adobe Flash Media Live Encoder31程序能够识别)来作为视频源。

233 使用Adobe Flash Media Live Encoder31发布直播流

打开Adobe Flash MediaLive Encoder31软件,确保视频采集设备和音频采集设备能正常工作,正常工作的硬件设备看似应该如下图所示:

请正确设置好坐图红色矩形框所标注的位置,其中,FMS URL位置处的URL地址应该为”rtmp://{UltrantMedia Server所在服务器IP地址}/live”,Stream位置处应该为”livestream”。设置完成后,要首先按下”Connect”按钮,如果“Connect”按钮上的文字变成“Disconnect”,则表明连接成功;然后按最下边红色矩形框标注的“Start”按钮,以启动直播发布。正常工作的Adobe Flash Media LiveEncoder31看似应该如下图所示:

234 查看直播视频

如果您使用的是安装程序自带的NginxWeb服务器,请将nginx安装目录下html子文件夹中的livehtml文件用记事本打开;如果您使用已有的Web服务器,请将Web服务器根目录下的UMS\livehtml文件用记事本打开,找到下述代码:

soaddVariable('file','livestream');

soaddVariable('streamer','rtmp://127001:1935/live');

将127001改为您当前服务器的IP地址;如果您重新命名了发布的视频流的名称,请将livehtml文件中上述代码中的“livestream”改为您自己命名的视频流的名称。

如果您使用安装程序自带的Nginx Web服务器,您可以通过浏览器访问http://{服务器IP地址}/livehtml来访问直播页面;如果您使用您的计算机原有的Web服务器,您可以通过浏览器访问http://{服务器IP地址}/UMS/livehtml来访问直播页面。 UMS支持可伸缩的无限级连直播集群组网功能,通过简单的可视化配置,您就可以将多台装有UMS服务器软件的服务器组成一个统一的直播网络群,其中的每一个节点都可以对外提供一致的直播服务。

31使用UMSMonitor管理工具配置直播集群组网功能

打开UMSMonitor的服务配置界面,找到其中的”CDN配置”选项页,如下图:

如果您选择“使用直播流转发服务器功能”,则UMS可以作为直播流转发服务器使用。当您选择“应用”配置,选择“确定”并重启服务使配置生效后,您当前配置的UMS服务器软件将自动连接到上级UMS直播源服务器的同步地址和端口,以获取直播同步信息。注意:您必须启用上级UMS服务器的“使用直播流服务器功能”,也就是启用上级UMS服务器同等的上述配置页面的下半部分选项。只有在与上级UMS服务器的同步端口和同步口令一致的情况下,当前配置的UMS服务器才能连接到上级直播源服务器的同步端口,才能进行直播信息同步。

“上级直播源服务器服务地址”理论上与“上级直播源服务器同步地址”是一致的,都是上级服务器的地址(当设置UMS的对外视频直播服务IP与UMS对外直播同步服务IP不一致的情况除外),“上级直播源服务器服务端口”就是上级UMS服务器在UMSMonitor配置工具服务配置页面中的“基本配置”页面上的“IP地址和端口”栏中设置的监听端口,上级UMS通过这个端口对外提供视频数据直播服务。当前配置的UMS服务器也是从上级服务器的对外视频数据直播服务端口获取实时视频直播数据,并经由本地转发的。

启用本地的“使用直播流源服务器功能”后,当前配置的UMS服务器即可作为直播源服务器,为下级UMS服务器提供直播信息同步服务和直播视频流传输服务。

UMS服务器在进行上下级组网同步直播信息和直播数据流的同时,还能对用户提供视音频数据的点播和直播功能。下图描绘的是使用UMS进行直播组网后的效果图:

从版本189开始,Ultrant Media Server引入了一种新的服务器程序,即媒体内容访问控制服务器(UMAS,即Ultrant Media Access Service)。UMAS为Ultrant Media Server服务器系统提供了强大而灵活的网络授权功能,可以有效地保护您的媒体内容。

41 UMAS服务模式介绍

UMAS是一个口令生成与管理服务器软件。UMAS提供访问口令的生成、管理与分发功能,并提供友好的开发集成接口。UMAS与UMS对外服务主程序的协作图如下:

或见下图:

42 配置UMAS及UMS以使用访问控制功能

您可以通过UMSMonitor程序来配置UMAS服务,以及配置UMS与UMAS的连接参数。

421配置UMAS服务

请首先确保UMAS服务已经安装。打开UMSMonitor配置工具(方法见22),您可以从已安装的服务列表中查看UMAS服务是否已经安装。要配置UMAS服务,先用鼠标选中Ulrant Media Access Service(UMAS)行,点击面板右边的“配置服务”按钮,即会弹出UMAS服务的配置页面,如下图。其中,口令分发服务相关参数影响UMS主服务程序与UMAS服务的连接,包括口令分发服务配置栏目和口令分发服务连接设置栏目;口令获取服务相关参数影响通过HTTP连接接口创建并返回口令功能,该部分设置包括口令获取服务配置和口令获取服务连接设置栏目。要获取各个参数的使用方法,请将鼠标移动至相关文本框,您可以通过界面提示信息来修改参数。

注意:这里设置的IP地址是UMAS服务要绑定的IP地址,通常设置为0000,即绑定任意地址;两个端口值分别是UMAS要监听的口令分发服务端口和口令获取服务端口,配置适当的UMS服务主程序将连接到口令分发服务端口与UMAS进行通信,Web系统集成则需要后端服务脚本通过口令获取服务端口创建和获取访问控制口令。与上述两个端口对应的口令则是服务的接入口令。

422配置UMS以连接UMAS

要配置UMS服务,请打开UMSMonitor配置工具(方法见22),先用鼠标选中Ulrant Media Server(UMS)行,点击面板右边的“配置服务”按钮,即会弹出UMS服务的配置页面,再选中“综合配置”页面,如下图所示。

上图中,右下角的“媒体访问控制配置”包含了需要配置的若干选项。其中,UMAS服务器地址是UMAS服务器软件对外提供服务的IP地址(注意:这个IP地址跟章节321配置的UMAS的绑定地址不是一回事);UMAS服务器端口应与章节321中配置的分发服务器端口一致;UMAS服务器口令应与章节321中配置的分发服务器口令一致。

注意:一旦您选定连接访问控制服务器(UMAS)选项,对于所有访问该UMS服务的连接,均需提供正确的访问控制口令才能访问媒体内容,否则将无法继续访问媒体内容。该功能必须与UMAS一起使用,您需要参照章节321和章节33来设计您的内容管理系统。

43 UMAS内部集成接口

UMAS为方便与现有web系统集成,设计为通过标准HTTP请求创建并获取口令,在此同时,UMAS会自动将新生成的访问口令分发到连接至自身的UMS服务器。UMAS与web系统以及UMS主服务器程序可以分别部署在不同的硬件服务器上。 参数中文释义 参数项 说明 页面 gettoken UMAS提供的获取访问口令的接口页面(内部虚拟页面)。 服务接入口令 token 外部应用访问口令获取接口必须提供的接入口令,该口令通过UMSMonitor程序设置,是为了防止不合法用户使用口令获取功能。 应用名称 app 设置要获取的口令所能访问的应用名称,如果不设置该参数,则获取的口令可以访问所有可用应用。 有效时间 duration 设置要获取的口令的有效时间,超过有效时间的访问口令将不再起作用。(数值类型:整数;单位:秒) 使用次数 limit 设置要获取的口令的使用次数,超过使用次数的访问口令将不再起作用。(数值类型:整数;单位:次)。

注意:如果一个访问口令在有效次数内超过有效时间,其仍会失去有效性。 返回格式 format 设置UMAS返回的口令的格式。(数值类型:枚举(xml和json),如果不设置则返回文本类型)。返回的xml格式举例:

<xml version =10 encoding=utf-8>

<Token>CiQY56Fy6X65ltXH</Token>

返回的json格式举例:

{Token:xDDcnR4V07Iqyn3n}

返回的文本格式举例:

39VvZGpnrmVcsSiZ 44接口使用示例

在使用之前请先确保UMAS服务器程序在正常运行,并开启相关的防火墙端口。您需要先向UMAS管理员获取UMAS对外提供服务的IP地址和端口值,以及服务访问口令,通过下述形式访问UMAS服务以获取媒体访问控制口令(protocol仅支持HTTP):

{protocol}://{umas_ip}:{umas_port}/gettokentoken={umas_token}&app=vod&duration=100&limit=10&format=xml

45媒体访问控制口令的使用

媒体访问控制口令是一个16位的字符串,在播放器与UMS主服务器程序建立RTMP连接的时候使用,使用方式如下(protocol仅支持rtmp、rtmpe):

{protocol}://{ums_ip}:{ums_port}/{app_name}token={从UMAS获取的媒体访问控制口令}

M3U8文件是指UTF-8编码格式的M3U文件(M3U使用Latin-1字符集编码)。M3U文件是一个记录索引的纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放。

M3U8是一种常见的流媒体格式,主要以文件列表的形式存在,既支持直播又支持点播,尤其在Android、iOS等平台最为常用。

m3u8文件实质是一个播放列表(playlist),其可能是一个媒体播放列表(MediaPlaylist),或者是一个主列表(MasterPlaylist)。但无论是哪种播放列表,其内部文字使用的都是utf-8编码。

(1)当m3u8文件作为媒体播放列表(MediaPlaylist)时,其内部信息记录的是一系列媒体片段资源,顺序播放该片段资源,即可完整展示多媒体资源。其格式如下所示:

对于点播来说,客户端只需要顺序下载上述片段资源,依次进行播放即可。而对于直播来说,客户端需要定时重新请求该m3u8文件,看下是否有新的片段数据需要进行下载并播放。

(2)当m3u8作为主播放列表(MasterPlaylist)时,其内部提供的是同一份媒体资源的多份流列表资源(VariantStream)。其格式如下所示:

该备用流资源制定了多种不同的码率,不同格式的媒体播放列表,并且,该备用流资源也可同时提供不同版本的资源内容,比如不同语言的音频文件,不同角度拍摄的视频文件等等。客户可以根据不同的网络状态选取合适码率的资源,并且最好根据用户喜好选择合适的资源码率。

M3U8的优点

1、可以做多码率的适配。根据网络带宽,客户端会自动选择一个适合自己码率的文件进行播放,保证视频流的流畅,代表是苹果的HLS(HTTPLiveStreaming)。HLS有一个特点:自适应码率流播(adaptivestreaming),客户端可以根据网络状况自动选择不同码率的视频流,条件允许的情况下使用高码率,网络繁忙的时候使用低码率,并且自动在二者间随意切换。这对移动设备网络状况不稳定的情况下保障流畅播放非常有帮助。

2、降低源服务器的负载压力。M3U的特点是将流媒体切分为若干TS片段,然后通过一个扩展的m3u列表文件将这些TS片段集中起来供客户端播放器接收。这样做相比使用RTSP协议的好处在于,一旦切分完成,之后的分发过程完全不需要额外使用任何专门软件,普通的网络服务器即可,大大降低了CDN边缘服务器的配置要求,可以使用任何现成的CDN。分发使用的协议是最常见HTTP,代理服务器对这个协议的缓存优化相当成熟,而很少有代理服务器对RTSP的进行缓存优化。

3、对于非实时视频,好处同样存在:播放使用HTTP协议的单个MP4格式的视频文件时,需要代理服务器支持HTTPrangerequest以获取大文件中的一部分,但不是所有的代理服务器都对此有良好的支持。而M3U则只需要根据列表文件中的时间轴找出对应的TS片段下载即可,不需要rangerequest,对代理服务器的要求小很多。所有代理服务器都支持小文件的高效缓存。

4、为什么要用TS而不是MP4,这是因为两个TS片段可以无缝拼接,播放器能连续播放,而MP4文件由于编码方式的原因,两段MP4不能无缝拼接,播放器连续播放两个MP4文件会出现破音和画面间断,影响用户体验。

、转发服务端设置

首先将一个性能好的电脑作为转发服务器,运行VLC Media Player软件,在菜单栏里,通过[文件]→[打开文件],选择[网络],选“HTTP/HTTPS/FTP/MMS”传输协议,在网址填写框内填写需要播放卫星节目的网址,网上的教程均介绍应该填写“ xxx/videom3u”,但发现不能成功,正确的方式应该填写卫星节目的详细网址,这就和在WEB页面调用VLC Media Player软件时,必须先下载后方能播放成功是一样的道理。

如何知道卫星节目的详细网址呢?以我们转发705°E的“Trace TV”音乐频道为例,具体方法如下:

首先进入DM500S接收机的WEB管理控制界面,选择“Trace TV”频道,点击“VLC”,待下载完成后点击播放,此时出现VLC Media Player软件播放该频道的界面。在菜单栏里,通过[查看]→[串流及媒体信息],选择[一般]。

复制“URI”栏目内的网址(注:“URI”应该为“URL”,汉化错误),粘贴到[文件] →[打开文件] →[网络] →[网址]框内,再将[串流/保护]前选项框内打“√”,即可点击“设置”按钮。

进入[串流输出]设置界面。

首先选择[输出]方式,这里选用MMSH协议,地址栏填写转发服务端的IP地址“19216812”。然后选择[封装方法],一般选用ASF,也可采用MP4、WAV封装方法,不过只能采用MMSH协议输出,如果采用HTTP协议输出,则客户端播放没有画面。

通过VLC串流转码。实际上就是VLC Media Player解码DM500S的TS流,然后VLC Media Player又重新封装打包并且传回网络的过程,这个封装方式可以在[转码选项]中自行变更。在[转码选项]中,选择视频编码器、音频编码器的编码格式时,应考虑客户端有无相应的解码包。一般视频编码器可选择常用的WMV1、WMV2格式,音频编码器选用MP3格式。比特率的选择应考虑网络带宽及转发服务器的性能,在条件允许的情况下,选择较大的比特率有利于画质和音质的提高。选择时注意,视频编码器中的“尺寸”是指播放画面的大小;音频编码器中的“频道”为汉化错误,应该为“声道”,通常选择“2”,表示双声道。

以上的设置完成后,按两次“确定”后退出设置界面,此时VLC Media Player播放器底端会有计时器出现,说明软件已开始进行串流发送。至于成功不成功,我们可以通过菜单栏[查看]→[串流及媒体信息]→[Statistics]来查看。

在下面的[串流]区域内,已有各项发送数据统计数字,表示转发功能正常。注意:在转发时,VLC Media Player软件是没有画面显示和声音输出的,因此其视频和音频区域的“已显示的帧”和“已播放的缓冲器”的统计数字均为“0”。

2、客户端播放

由于转发服务端采用MMSH协议输出,因此只要打开Windows Media Player播放软件,通过[文件]→[打开URL],输入mms://19216812:1234或,播放软件经过片刻的连接和缓冲后,就可观看节目了,界面的最下方为播放速率。注意:如果转发服务端采用HTTP协议输出,则客户端只能输入地址。

3、使用注意事项

采用该方案关键是转发服务端设置,如果客户端无法播放,首先应该检查转发服务器有无串流输出。对于客户端只有伴音输出而没有画面播出的,则应该检查所选用的输出协议是否正确,其次是所选的视频编码器在客户端有无相应的解码包。

对于广播来讲,它是一种同时向大量客户传输数据的方法。在广播时,是通过使用广播发布点来实现的。在我们上面所介绍的两种方案中,广播发布点就是客户端要输入网址和端口号。使用广播方案时,接收广播的客户端是不能切换频道的,只能是播什么看什么。当服务端(DM500S)或转发服务端(台式机)换机时,客户端(笔记本电脑)软件需要重新启动播放功能。

IOS系统终端、Android40以上系统终端、Windows设备,Web、APP播放支持;

Android40以下系统终端,Web播放不支持,APP播放支持; l rtmp输出,这种方式主要支持pc上flash播放器的直播应用,也支持android设备的直播应用,其芯片需要有adobe官方授权。

l http-flv输出,以flv封装实时音视频流,通过http协议分发,这种方式既支持pc上的flash播放器,也支持android设备的直播应用。

l HLS输出,这种方式支持iphone、ipad、ipod等设备的播放应用。

l RTSP输出,这种方式支持android原生媒体播放应用。 输出时进行实时转协议

1. udp输入,rtmp输出

2. udp输入,http-flv输出

3. udp输入,HLS输出

4. udp输入,RTSP输出

5. rtmp输入,http-flv输出

6. rtmp输入,HLS输出

7. rtmp输入,RTSP输出

8. http ts输入,rtmp输出

9. http ts输入,http-flv输出

10. http ts输入,HLS输出

11. http ts输入,RTSP输出 Sewise直播1服务器所采用RedHat Enterprise Linux Server 61操作系统,采用最小化安装(Minimal)方式进行安装操作系统

在安装好操作系统后,我们采用了RPM本地包的方式进行快速安装,这里面安装了PHP解析器 NGINX WEB服务器 MYSQL数据库 JAVA环境的应用 基础环境的安装部署

Sewise 提供了一键部署的安装包,可以通过这个方法快捷部署您订购的直播服务具体方法如下:

首先,把安装包拷贝到已经装好操作系统的目标服务器,拷贝的方法:

你可以使用U盘等移动存储把安装包拷贝到目标服务器;

2你可以使用Sewise提供的安装光盘,把安装包拷贝到目标服务器;

3通过SSH把安装包发送到目标服务器以下是上面三种方法的具体操作步骤

1 使用U盘等移动存储

1) 把安装包拷贝到U盘如下图 2) 输入服务器操作系统用户名密码并回车,如下图 3) 把U盘插入目标服务器,插好后,操作系统会提示识别到U盘并记录U盘在系统中识别的盘符,本例中U盘被识别为sdb,如下图 4) 提示识别U盘的信息出现后按键盘上的回车键回到命令录入状态 5) 输入 mount /dev/sdb1 /media 回车 把U盘挂载到服务器的操作系统上命令中的sdb 就是第三步中U盘被系统识别的盘符

6) 输入 cd /media 并回车 进入U盘: 7) 输入 ls 并回车 查看U盘里的文件内容,并记录安装包的文件名 zhibo_script: 8) 输入 cp –af zhibo_script /root 并回车 把安装包拷贝到目标服务器上 9) 稍等一会等待安装包拷贝好过程大概需要1-2分钟,等到操作系统变成命令录入状态,即说明安装包已经拷贝好了,如下图 10) 输入 cd 并回车 去到安装包所在目录 11) 输入 ls并回车 查看安装包是否已经拷贝到该目录下 12) 输入 cd zhibo_script并回车 进入安装包文件夹 13) 输入 ls并回车 查看安装包文件夹下的内容 14) 输入 sh installzb点sh并回车 开始安装直播服务 15) 安装过程根据服务器的性能而定,大概需要5-10分钟安装结束后,系统会自动重启服务器重启完毕后直播服务就安装好了

2 使用安装光盘

1) 把Sewise 提供的安装光盘放入服务器的光驱里

2) 输入服务器操作系统用户名密码并回车,如下图 3) 输入 mount /dev/cdrom /media 并回车 把服务器的光驱挂载到服务器的操作系统上命令中的cdrom 就是服务器的光驱被操作系统识别到的盘符 4) 输入 cd /media并回车 进入服务器光驱 5) 输入 ls并回车 查看服务器光驱里光盘的文件内容,并记录安装包的文件名zhibotargz 6) 输入 cp –af zhibotargz /root并回车 把安装包从光盘拷贝到目标服务器 7) 稍等一会等待安装包拷贝好过程大概需要1-2分钟,等到操作系统变成命令录入状态,即说明安装包已经拷贝好了,如下图 8) 输入 cd 并回车 去到安装包所在目录 9) 输入 ls并回车 查看安装包是否已经拷贝到该目录下 10) 输入 tar –zxvf zhibotargz 并回车 解压安装包 11) 解压完毕后,输入 ls 并回车 查看解压后的安装包 12) 输入 cd zhibo 并回车 进入安装包文件夹 13) 输入 ls 并回车 查看安装包内的文件内容 14) 输入 sh installzb点sh 并回车 开始安装直播服务 15) 安装过程根据服务器的性能而定,大约需要5-10分钟安装结束,系统会自动重启服务器启动完毕后直播服务就安装好了

3 通过SSH工具发送安装包

1) 输入用户名密码,登陆服务器操作系统

2) 输入 ifconfig 并回车 查看服务器的具体IP并记录

本例中IP 为1921680154 注意:如果服务器有多个网卡,配置了多个IP,请记录用来提供服务的IP

3) 打开SSH 工具 本例中使用的SSH 工具为 SSH Secure Shell 4) 鼠标左键点击Quick Connect 并输入上面记录的服务器IP 和用户名 5) 鼠标左键点击Connect 6) 鼠标左键点击Yes,并在后面弹出的对话框里输入密码 7) 鼠标左键点击OK 这样SSH 工具就连上目标服务器了 8) 如下图所示,鼠标左键点击红框标准图标 9) 弹出的对话框如下图所示 10) 在对话框左边窗口选择计算机,鼠标左键双击该图标 11) 继续选择分区等找到安装包 12) 对安装包点击鼠标右键 13) 鼠标左键点击Upload 14) 发送安装包过程大概需要2-3分钟(视网络带宽情况而定)等待所有文件发送完毕后即可开始安装 15) 关闭发送对话框回到SSH 工具 16) 输入 ls 并回车 查看安装包文件夹是否已经上传成功 17) 输入 cd zhibo_script 并回车 进入安装包文件夹 18) 输入 ls并回车 查看安装包文件夹下的内容 19) 输入 sh installzb点sh 并回车 开始安装直播服务 20) 安装过程根据服务器的性能,大概需要5-10分钟安装结束后,系统将自动重启服务器启动完毕后直播服务就安装好了

直播12服务器的初始化:

服务器启动完毕后再次输入用户名密码,登陆服务器操作系统

输入 ifconfig 并回车 查看服务器的具体IP 并记录 本例中IP 为1921680154 到此我们的直播服务软件已经安装完成,软件的使用方法可以参考直播使用手册

如下图,包含三部分,右边一列为边缘节点;中间一列代表数据中心;左边一列是项目为客户提供的一系列web管理工具:

具体来说在我们项目中有一堆边缘节点,每个节点上部署一台强大的GPU服务器及N个网络摄像头,服务器持续记录摄像头的高清码流,同时跑模型持续分析视频内容;边缘服务器与数据中心之间有一条网络链路,但 带宽非常小 ,通常只作数据、控制命令下发用;数据中心部署了一系列web服务,为不同用户提供审阅系统运行情况及发布操作边缘节点命令的端口。

那么问题来了,终端用户通常并不关心摄像头录制到的视频,但 偶尔 需要抽检部分视频文件确定系统正在正常运行,出问题的时候算法团队需要导出原始高清视频作进一步分析,怎么破?提炼一下关键条件:

数量众多的边缘节点,每天生成海量视频

边缘节点到数据中心带宽有限

需要提供不同清晰度的视频满足不同场景需要

最直观的方案是,将节点上的视频不断推送到数据中心,客户端直接访问存储在数据中心的视频数据,但这明显不符合场景要求,因为边缘节点到数据中心的带宽非常小,没办法支持高清视频文件的持续传输,而且抽检频率很低,全传回来了大多数也是用不上的。

第二种方案可以选择按需调度,即由客户明确发出抽调命令,指定时间范围、边缘节点列表、摄像头列表、清晰度,数据中心按需同步。这种方案有两个问题,一是延迟大,命令从客户端发出后,得等数据中心到边缘节点捞完数据,才能开始推送视频,开始响应;二是需要实现一套调度系统,实现一堆提高可用性的逻辑,比如监控带宽防止打满、实现断点续输、异步任务生命周期管理等。

第三种,也就是本文阐述的技术方案:使用 ffmpeg 动态调整视频码率、分辨率;使用 HLS 分段传输视频内容。

如果读者想到更多可能性,还请联系作者,我们可以讨论讨论。

二、核心技术

21 ffmpeg 简介

ffmpeg 是一个非常有名的高性能音视频处理工具,它可以轻松实现视频转码、分割、码率调整、分辨率调整、元数据解析、帧包解析等等,能满足大多数视频处理场景。网上已经有很多相关的讨论文章,本文就不赘述了。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 直播APP源码实现直播都有哪些流程需要注意?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情