流媒体服务器的VJMS

流媒体服务器的VJMS,第1张

功能模块概述
通过obs客户端推流到nginx流媒体服务器上,对流媒体用ffmpeg将流剪切为若干段ts流文件并保存到临时目录中,通过访问m3u8格式拼接ts流文件段来观看直播。
推流端
采用开源工具OBS客户端进行推流
根据项目的推流地址,填入OBS客户端(下载地址)中,并设置场景,保存后重启,便可开始推流。
为更加稳定的推流,建议使用以上链接中的v0625稳定版本,按提示安装完成后,打开设定在广播设定中,伺服器统一填写我们项目的流媒体接收流地址:
rtmp://127001:1935/hls/
以上这几个数据都是可以更改的。
127001——你的流媒体服务器ip
1935——你的rtmp端口号
hls——你的直播nginx配置模块
具体在下文中也有详细介绍
配置地址
回到主界面,右键来源,选择添加视频捕捉设备或获取窗口等(相关设置默认即可),点击开始串流,便可开始直播。
添加场景
图为添加视频捕捉设备后的直播画面:
直播中
流媒体服务器
Nginx接收推流模块
rtmp_auto_push on;
rtmp {
server {
listen 1935;
application hls {
live on;
hls on;
hls_path /tmp/hls;
on_publish 项目地址/liveOnPublish;
on_publish_done 项目地址/liveOnDone;
notify_method get;
}
}
}
配上我在word上的注解
注解1
Nginx处理直播流模块
>

直播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。

一、直播的技术架构:

直播视频采集SDK(PC/IOS/Anddroid)——直播CDN

(直播流分发加速)——直播视频播放器SDK(PC/IOS/Android)

二、音视频处理的一般流程:

数据采集→数据编码→数据传输(流媒体服务器)→解码数据→播放显示

1、数据采集:

摄像机及拾音器收集视频及音频数据,此时得到的为原始数据

涉及技术或协议:

摄像机:CCD、CMOS

拾音器:声电转换装置(咪头)、音频放大电路

2、数据编码:

使用相关硬件或软件对音视频原始数据进行编码处理(数字化)及加工(如音视频混合、打包封装等),得到可用的音视频数据

涉及技术或协议:

编码方式:CBR、VBR

编码格式

视频:H265、H264、MPEG-4等,封装容器有TS、MKV、AVI、MP4等

音频:G711μ、AAC、Opus等,封装有MP3、OGG、AAC等

3、数据传输:

将编码完成后的音视频数据进行传输,早期的音视频通过同轴电缆之类的线缆进行传输,IP网络发展后,使用IP网络优传输

涉及技术或协议:

传输协议:RTP与RTCP、RTSP、RTMP、>

控制信令:SIP和SDP、SNMP等

4、解码数据:

使用相关硬件或软件对接收到的编码后的音视频数据进行解码,得到可以直接显示的图像/声音

涉及技术或协议:

一般对应的编码器都会带有相应的解码器,也有一些第三方解码插件等

5、播放显示:

在显示器(电视、监视屏等)或扬声器(耳机、喇叭等)里,显示相应的图像画面或声音

涉及技术或协议:

显示器、扬声器、3D眼镜等

三、常见的视频直播相关协议:

1、RTMP(RealTimeMessagingProtocol,实时消息传送协议)

RTMP是AdobeSystems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议。它有三种变种:

1)、工作在TCP之上的明文协议,使用端口1935;

2)、RTMPT封装在>

3)、RTMPS类似RTMPT,但使用的是>

RTMP协议是被Flash用于对象、视频、音频的传输。这个协议建立在TCP协议或者轮询>

2、RTSP(RealTimeStreamingProtocol,实时流传输协议)

RTSP定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP提供了一个可扩展框架,数据源可以包括实时数据与已有的存储的数据。该协议目的在于控制多个数据发送连接,为选择发送通道如UDP、组播UDP与TCP提供途径,并为选择基于RTP上发送机制提供方法。

RTSP语法和运作跟>

3、RTP(Real-timeTransportProtocol,实时传输协议)

RTP是针对多媒体数据流的一种传输层协议,详细说明了在互联网上传递音频和视频的标准数据包格式。RTP协议常用于流媒体系统(配合RTCP协议),视频会议和一键通系统(配合H323或SIP),使它成为IP电话产业的技术基础。

RTP是建立在UDP协议上的,常与RTCP一起使用,其本身并没有提供按时发送机制或其它服务质量(QoS)保证,它依赖于低层服务去实现这一过程。

RTP并不保证传送或防止无序传送,也不确定底层网络的可靠性,只管发送,不管传输是否丢包,也不管接收方是否有收到包。RTP实行有序传送,RTP中的序列号允许接收方重组发送方的包序列,同时序列号也能用于决定适当的包位置,如在视频解码中,就不需要顺序解码。

4、RTCP(Real-timeTransportControlProtocol,实时传输控制协议)

RTCP是RTP的配套协议,为RTP媒体流提供信道外的控制。RTCP和RTP一起协作将多媒体数据打包和发送,定期在多媒体流会话参与者之间传输控制数据。

RTCP的主要功能是为RTP所提供的服务质量(QoS)提供反馈,收集相关媒体连接的统计信息,例如传输字节数,传输分组数,丢失分组数,单向和双向网络延迟等等。网络应用程序可以利用RTCP所提供的信息来提高服务质量,比如限制流量或改用压缩比小的编解码器。

HLS协议允许流媒体分段下载,不过这种>直播APP开发1
做直播app开发前,首先要考虑自身对这套直播app的功能需求点在哪里,包括功能布局等。一个稳定的直播app开发系统还要考虑的是能否减少甚至避免直播过程中出现的延迟和卡顿。75%的业内人士表明,延迟和卡顿阻碍了直播行业的发展。时下“直播”可谓是互联网行业最引人瞩目的风口,仅仅是“直播”已经不能引起人们的注目,创新技术将成为直播app开发的核心竞争力。因此选择一个专业的直播app开发商也需要慎之又慎。
视频直播软件开发发展势头非常之猛,企业要想分一杯羹还得加把劲才行。目前拦在企业开发面前的是技术难题、直播模式还停留在电脑时代和盈利方式简单等。难点分析:技术难题:支持几个人同时直播和让上百万人一起直播是两回事。要想做一个上规模的直播平台,不仅需要比较强的宽带吞吐能力,而且在一定范围内用户数据的波动也是要求比较高的。画面还原、不出现卡屏等也都是企业在开发视频直播平台时需要解决的问题。直播模式还停留在电脑时代:2016是手机视频直播的元年,由于电脑端经验的积累,其主要的直播方式还是和电脑端一样。都是主播与用户的互动,并没有什么新意,对于移动互联网的新技术等运用得也是非常少,可以说整个行业还存在着一定的瓶颈。盈利方式简单:虽然直播的盈利方向是最为清晰的,广告、打赏等。但是各大平台与网红、明星等签约的价格都不菲,单单只是靠广告和打赏来盈利还是存在着一定的问题。直播开发应做好以下:一方面,有清晰的盈利方案,如通过广告植入变卖流量,或者成立可持续发展的PGC会员增值体系,并借此争取融资继续不断扩大市场份额以站稳脚跟。另一方面,直播app开发不断调整产品功能,积极利用VR和AR技术并投入到视频直播平台。最后的是,需要找可信的开发团队,具有技术和开发经验的启汇网络。
APP开发费用
APP开发的价格:其实具体要看你开发什么软件了,根据自己的功能需求选择合适的方案,才能给出更精准的价格。如果你的app业务需求较简单,功能要求不高,可以选择简单的套餐或者模板,大致预算在十万以内(一个端),有人会说简单的为什么都这么贵是不是坑钱,我只能说正规公司做APP基本都是4-6万起步,不管你做什么类型的APP功能多简单,上不上架哪怕只是一个空壳APP的价格也是万元起步。当然也有人听到一些只要几千块或者一两万就做个特别牛的,或者在淘宝看到的价格非常便宜,这里不多说,你试试就知道了。如果要求定制开发,费用有所上涨,这个费用比较高。但是也不建议您自己组建团队开发,可以选择一个可靠的app开发公司,可控的周期与合理的价格,比如我们中联科技。定制开发先不说产品不同价位不同,目前的主流开发方向都是定制开发型,这种按需定制的软件都是看客户的要求进行价格估定的,看你的谈判能力了!确认app开发的价格,首选你要确定自己的业务需求,按需求选择合适的方案,才能更精准的给出价格。如果要求复杂性,费用有所上涨,大致可能在十万以上,当然价格可能还会更高,APP的主要成本包括人力成本,沟通成本,和其他成本比如服务器的维护费用,因为开发工程师和设计师的工资都比较高的原因,如果项目比较复杂,花费的时间周期比较长的话,就会增加开发的成本,最后开发一个APP的价格也会增高。一般根据需求不同,价格也不同,都是当面了解的。做好需求和预算的心里准备,下一步就是找一个专业的app制作平台,制作专属的app。APP的制作流程:一、APP的需求分析在这个时间段你可能对项目只有一些简单的抽象的不是太具体的想法,这个时候就要对自己想到的这些想法进行讨论和研究,看看这些想法的可行性,将一个个想法细致化,最终演变成一个个有着明确的功能。二、进行对APP的原型设计在确定好APP软件需要的各种功能以后,紧接着就是对其中的每个功能进行规划,确定好每个功能在页面的布局,以及各个页面如何去跳转等,最后生成了APP软件每个页面的设计图。三、进行APP的UI设计在设计图都确定完毕以后就需要设计师来进行页面的配色了让整个页面看起来更加舒适,最终设计出来的页面效果图基本和开发完成后再APP内所看到的是一样的了;四、开始开发APP在设计图设计完毕以后,开发人员根据所拿到的设计图,进行对UI界面效果图的界面开发还有各个功能的开发。五、进行APP的测试修改以上的流程都走完以后,一个完整的APP就出现了,但是可能还会有各种BUG,这时候就需要测试人员对整个APP的所有功能逐一测试,根据发现的各种问题进行修改和完善。六、发布APP在项目完成测试修改以后,就可以把APP打包起来了,然后签名以后就可以把开发好的APP软件投入到APP应用市场了。

1 配置环境
1、系统:Windows 10
Easydarwin版本:官方最新版本
本配置为非web配置,在官方文档中有提供web配置攻略
2、 安装步骤
1
获取最新版本
在Github 中下图第一个链接获取最新的EasyDarwin版本源码,自行编译成需要的可执行文件,也可以直接在下图第二个链接中下载已经归档的相应版本进行部署;
2
编译最新版本(可选)
如果直接下载已编译好的Release归档版本,可跳过此步骤
Windows版本编译,可以直接用Visual Studio 2010打开源码文件中的:/EasyDarwin-master/EasyDarwin/WinNTSupport/EasyDarwinsln解决方案文件,直接编译出exe可执行文件EasyDarwinexe;
注意:在编译运行过程中会出现libEasyHLSdll,libEasyPusherdll,libEasyRTSPClientdll,libEasyAACEncoderdll不存在的问题,在这里只需要把下图lib文件中的几个dll文件复制黏贴到WinNTSupport/Debug文件夹中即可,再重新编译运行Easydarwin的项目即可。
3
此时此刻,在WinNTSupport/Debug文件夹下,就存在正确无误的EasyDarwinexe可执行文件。
4
移动Moives文件夹
把EasyDarwin-master\EasyDarwin\WinNTSupport文件夹下的Movies文件夹Copy一份到Debug文件夹下,其他可暂时不动。
注意:这里的Movies文件夹是Copy,不是在Debug下新建Movies文件夹,因为Movies文件夹内还有xml的配置文件,如果是新建的文件夹,请记得把Movies下的xml文件Copy到新的Movies文件夹下。
5
相关配置
所有的配置信息都存放在EasyDarwin-master\EasyDarwin\WinNTSupport\easydarwinxml文件中,相关重要配置说明:
rtsp_port:EasyDarwin RTSP服务监听的端口;
movie_folder:媒体文件存储的路径,包括点播文件、直播切片生成的hls文件;(注意在这里必须要求Movies文件夹是在Debug下的路径)
local_ip_address:配置EasyRelayModule对外服务的ip地址,因为可能会有多网卡或者内网映射,所以需要手动配置;
RTSP_debug_printfs:将easydarwinxml中输出打印配置为true,这样就能在调试模式中看是否有报文发来,也可以在easydarwinxml中配置log输出的目录和文件名称,再根据log确定问题(具体个性化log,需要自己添加代码,编译部署);
6
启动Easydarwin服务
Windows版本运行(控制台调试运行):win+R-》调出运行-》命令提示符-》找到Easydarwinexe文件路径,输入以下指令:
EasyDarwinexe -c /easydarwinxml -d
出现如下结果,表示服务器已经成功开启。
7
说明,官方文档中给出了制作bat快捷运行的方法。具体如下:
将这段脚本做成bat。
制作方法如下:
首先在EasyDarwin-master\EasyDarwin\WinNTSupport\Debug文件下创建一个Startupbattxt(名字随便取)的文本文件,然后把上面的脚本指令Copy进到文本中,保存后重命名Startupbat,之后单击bat文件即可运行服务器。
8
注意:笔者在使用这个方法的过程中,在自己win 10 机上没有成功,笔者使用的脚本指令是
END
3 测试流媒体服务器
1
首先,在网上下载一个MP4视频文件,之后放置到EasyDarwin-master\EasyDarwin\WinNTSupport\Debug\Movies\路径下。之后使用6中的说明开启服务器,在之后就可以使用相关播放器进行播放啦。
END
4 EasyDarwin视频支持格式说明
1
说明:EasyDarwin 支持MPEG-1、MPEG-2、MPEG-4、H264、VC-1等多种标准编码格式的众多主流媒体格式及avi、asf、 wmv、mp4、mov、rm、rmvb、flv、3GP等等全格式的文件Container容器,更加详细的请参考官方文档说明。
END
5 播放器推荐
1
推荐使用的播放器有:ffplay,vlc等开源播放器进行测试,重点推荐VLC播放器,使用非常简单。
END
6 可能会遇到的问题
1
在测试过程中要关注播放器和控制台两方,播放器不播放控制台无消息,表示没有连接上服务器,查看自己的url是否正确;播放器不播放控制台有消息,可细细查看错误所在。
2
首次使用推荐使用mp4格式视频,如在使用中出现415 Unsupported Media Type问题,可以用以下办法解决。
MP4点播返回415错误(Requested movie hasn't been hinted)EasyDarwin点播要求mp4文件需要先经过RTSP/RTP HINT处理,具体方法(用mp4box GUI、MediaCoder等工具):


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10323411.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存