linux怎么架设RTSP流媒体服务器

linux怎么架设RTSP流媒体服务器,第1张

Linux下利用gnump3d架设流媒体服务器

库文件被安装到:/usr/lib/perl5/586/gnump3d目录

man被安装到:

/usr/man/man1/gnump3d1

/usr/man/man1/gnump3d-index1

/usr/man/man1/gnump3d-top1

/usr/man/man1/gnump3dconf1

3、配置

gnump3d的配置文件被存放在/etc/gnump3d/gnump3dconf ,我们可以对配置文件进行修改。

gnump3d的themes被存放在/usr/share/gnump3d/目录中,所以要想换theme,可以在 gnump3dconf中指定。

媒体文件存放在目录gnump3dconf中,是/home/mp3 ,您也可以改为您媒体文件的目录,或者在/home中建一个mp3目录,把所有的媒体文件拷过去。

4、运行gnump3d流媒体服务器

[root@localhost gnump3d-295]# gnump3d&

[root@localhost gnump3d-295]# gnump3d2&

5、访问gnump3d流媒体服务器

访问地址是:http://localhost:8888/ ,您也可以让局域网的其它电脑来访问,当然要把localhost改为您的机器的IP地址,举例来说,如果您的流媒体服务器所在电脑的IP是19216816 ,那么,局域网访问地址应该是:

http://19216816:8888

对属性的配置页面:

http://localhost:8888/prefs/

6、汉化theme让界面变成中文

WebRTC经过这么多年的发展,目前已经比较成熟的协议之一,播放也比较稳定,协议也已经成为了RFC,相应的开源项目也越来越多,但是基于WebRTC协议的部署简单,性能强悍,功能强大流媒体服务器的项目还比较稀少。之前了解到的服务器比如Mediasoup,Janus,Medooze ,要么就是设计复杂,接入成本要,要么就是性能较差,还就是多种语言结合,学习成本较高。 而SRS聚焦视频相关,功能专一,语言使用了高性能的c++,并且支持Rtmp转Webrtc等其他强大的功能的媒体服务器。

1源码编译安装运行SRS

使用这个命令开启RTC支持

2SRS常用命令

3配置nginx代理

若不需要浏览器推流,可以不用设置nginx代理,使用localhost访问

注意:your 代表需要配置你自己的域名信息,由于使用浏览器推流必须使用https协议,所以我这边配置了证书

4访问配置的域名

访问nginx配置的网址 https://webrtcyourhostcom/

出现如下内容,则服务端架设成功

虽然整片文章看起来不复杂,流程很简单。但是官网的文档中的知识点比较分散,所以大家要想快速的搭建的话就参考我这篇文章

一个视频直播系统开发平台的技术搭建,按照程序开发的顺序,直播系统搭建过程如下:

1、采集端:

视频直播系统通过摄像头拍摄直播画面并录制声音做架构时一定要注意多终端适配,另外,离线采集技术,人工聚焦等都会影响用户体验

2、前处理:

视频直播系统开发最重要的部分是实时GPU渲染美感。实时美颜的算法本身,就相当考验APP厂商的技术经济实力;如何发展能够充分利用能力有限的GPU资源管理进行美颜处理,也是我们一个很关键的点。国内研究很多网络直播系统产品迭代都比较快,所以没有直接影响后果就是信息技术适配做得差,很多常见的机型都会闪退和骤停。前处理中还要去除是水印、时间戳等,因为现在很多小平台,会互相偷链,恶性竞争,这是必要的防范措施。

3、 编码:

我们都知道,视频直播系统上传到视频网站就是源码的过程,现场也如此。但是,前者依靠云计算,这是由手机本身的CPU性能编码。考虑到大量的网络流量的现状有一个编码的流程,以及适应当地网络速度后,一次上传编码就完成有点不现实。

在有的问题是发热程度,因为CPU和GPU同时在用于在没有很好地优化条件很长的时间全部容量。这会带来双重问题,一个是用户体验差,二是电力消耗很快。

4、算法:

一方面要减小CPU的使用率,另一重要方面我们又要进行控制码率更低。如果你自己企业或者网络服务商的编码技术标准问题不是H264或者H265,基本上就可以一票否决了。

5、传输:

视频直播系统开发重点是推流:因为如果传输路径上只有一个点有故障,只有一些人看不到,但如果推出问题,所有的人都看不到。 而且,移动直播平台的竞争非常激烈,如果技术不通过,一旦停机影响用户体验,后果将非常严重。

这是一种实时传输技术。这样基本上最成熟的国内直播平台,都选择把专业的CDN供应商去做。毕竟,能源初创公司通常专注于自己的业务,甚至许多非技术操作人员和维修人员不理解,再加上服务器,带宽成本等,做它自己非常困难的。这涉及到一个CDN的选择。

6、CDN节点:

视频直播系统开发最核心的资源比拼就是研究内容分发节点,但是我们如果没有涉及到直播的话,流传输的技术管理架构也同样具有重要。

#!/usr/bin/env pythonfrom flask import Flask, render_template, Responsefrom camera import Camera

app = Flask(__name__)@approute('/')def index():

    return render_template('indexhtml')def gen(camera):

    while True:

        frame = cameraget_frame()        yield (b'--frame\r\n'

               b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')@approute('/video_feed')def video_feed():

    return Response(gen(Camera()),

                    mimetype='multipart/x-mixed-replace; boundary=frame')if __name__ == '__main__':

    apprun(host='0000', debug=True)

网页链接

你好~

在许多网吧或者局域网用户来说,一般都有自己的影片和音乐库,以供来在上网之余观看。而观看的方式大多都是将影片和音乐文件放在一台或是几台电脑里,用户要观看影片或听音乐时,直接调用文件进行观看。

这种方式不仅耗系统资源,而且还占网速,只有几个人在观看还好,要是观看的人多了,那存放影片的电脑可就惨了。其实我们可以模仿在线**网站一样(即内嵌式播放),做一个自己的服务器。

方案优点:能减轻电脑的负荷,便于用户方便地浏览影片库里的**。

要实现在线**网站,先行得架设流媒体服务器,为方便启见,笔者以Win2000Server自带的Windows Media Service举便说明,对其架设过程作一个简单的介绍。

Windows Media 服务的安装

步骤1 打开“控制面板”,双击“添加/删除程序”,打开“添加/删除程序”对话框,再在出现在对话框中单击“添加/ 删除Windows 组件”。

步骤2 在“Windows 组件”对话框中,将“组件”列表中的“WindowsMedia 服务”选中,单击“下一步”。然后稍等几秒钟,点击“完成”按钮,重新启动计算机,完成WindowsMedia 服务的安装。

创建点播单播发布点

步骤1 依次单击“开始”→“程序”→“管理工具”→“W i n d o w sMidea”,打开“WindowsMedia 管理器”,单击界面左侧配置服务器功能列表中的“单播发布点”,转到“单播发布点”界面。

步骤2 单击界面上的“点播”按钮可创建一个点播单播点。创建好了点播单播点后,服务器的架设就基本完成了。

步骤3 服务器的配置完成,打开IE 浏览器,在浏览器地址栏中输入m m s : / /server/you-fileasx 来播放服务器上的流媒体文件了。

注意:Server 是服务器地址,you-fileasx 指asx 文件路径。

OK,简单的流媒体服务器架设成功!但不足之处是播放影片是在独立的窗口中进行的。下面我们再来完善一下服务器的功能,就是将播放器嵌入到网页里,这样用户使用起来也就更方便些。

在网页里嵌入多媒体播放器

大家都知道,在线音乐网站和在线**网站都是通过内嵌播放器的方式来播放音乐和**的,前提是你必须安装播放流媒体的软件,就能在网页里进行播放。那它是如何实现的呢?其实很简单,只要你稍为了解一些HTML 方式的知识就能够做出来了。

在页面加入流媒体的方法很简单,只需要在网页中做一个超级链接,将链接指向Web Server的asx文件,这个.asx文件是我们刚才在创建单播发布点时生成的一个指针文件,它是一个纯文本文件,在创建了点播单以后,就会自动创建。我们先来看一下它的文件内容:

< asx version = '30'>

< title> piaoying< /title>

< entry>

< ref href = 'mms://

JJXIAOYAN/piaoyingwma'/>

< /entry>

< /asx>

提示:文件中的第一行是版本信息,< entry> < /entry> 表示有多个流要播放,也就是播放列表,可以有多个。

如果我们在网页中,加入这个文件的超链接,网页就会自动调用合适的播放器来播放文件中链接到的流媒体文件。当然,用这种方式是要另外打开一个窗口才能播放的。要在在Web页中嵌入播放器,首先我们要建立一个网页文件,在此只要用到HTML中的< Object> < /Object> 可以了,其代码如下,在网页中的界面。

< html>

< head>

< meta http-equiv='Content-Type'

content='text/html charset=gb2312'>

< title> 网页内嵌多媒体播放器< /title>

< /head>

< body>

< object id='MediaPlayer1' width=600

height=225

classid='CLSID:22D6F312-B0F6-11D0-94AB-

0080C74C7E95'

codebase='http://activexmicrosoftcom/

activex/controls/mplayer/en/nsmp2inf

cab#Version=5,1,52,701'

standby='Loading Microsoft Windows Media

Player components'

t y p e = ' a p p l i c a t i o n / x - o l e o b j e c t '

align='middle'>

< param name='FileName' value='d:

ASFRootluyiasx '>

< param name='ShowStatusBar' value='True'>

< p a r a m n a m e = ' D e f a u l t F r a m e '

value='mainFrame'>

< embed type='application/x-mplayer2'

pluginspage = 'http://wwwmicrosoftcom/

Windows/MediaPlayer/'

src=' d:ASFRootluyiasx ' align='middle'

autostart=1showcontrols=0>

< /embed>

< /object>

< /body>

< /html>

提示:其中”Width”和“Height”表示播放器窗口的大小 'FileName' 参数表示M e d i a P l a y e r 要播放的文件活或流。'ShowControls'表示在播放时是否显示控制条。

另外我们也可以用到F r o n t P a g e 或Dreamweaver 网页制作软件,通过添加流媒体对象的方式来完成以上的操作。其MediaPlayer的参数很多,提供的功能也很多,由于篇幅所限,笔者在此就不再一一详述。读者如果需要了解更多的功能及流媒体操作的详细内容可以参考Media Player SDK 中的相关部分。

对于网页内嵌播放器,小生也只是作了一些简单的介绍,如果要做一个功能齐全的影音服务器,还要涉及到网页制作方面的一些知识,此文也只是起到抛砖引玉的作用,希望对网吧的管理员们能起到一些帮助。

希望可以帮助到你~望采纳哦~谢谢~

一、服务端选择:服务端可采用AuraStone固态流媒体系统,系统嵌入式硬件设计,集直播、点播、转码、录制、回看、权限管理等功能于一体,多协议并发,多终端适配。用户可通过一体机,电脑,笔记本,手机等智能终端进行观看。支持2000+/10000+并发。

二、服务端部署:

 1 将AuraStone固态流媒体系统部署于核心机房,接入核心交换设备(多网口聚合设计,4x1G电口 +2x10G光口)

 2 通过按键与液晶显示屏配置IP地址

3 完成AuraStone固态流媒体系统的IP设置,即可通过局域网内的任意一台智能终端访问观看页面。(统采用B/S架构,H5页面设计,无需安装任何播放插件即可观看)

三、前端搭建

    直播节目源(演播室、录播,报告厅、会议,电视节目)等通过AU-NME9000高清网络媒体编码器接入,AU-NME9000高清网络媒体编码器采用嵌入式设计,广电级编码设备,支持多种视频接口(SDI,HDMI,CVBS),以顶以高效能编码、压缩、流媒体封装推送至AuraStone固态流媒体系统。

  1将直播信号源和网络接入AU-NME9000高清网络媒体编码器

 2 进入AuraStone固态流媒体系统后台创建直播节目,生成推流地址 。

  

  3 将推流地址配到编码器,开始直播。

  

  4 通过手机,电脑等智能终端访问AuraStone固态流媒体系统地址观看直播。

  

移动直播行业的火热会在很长一段时间内持续,通过和各行业的整合,从而成为具有无限可能性的行业。主要因为以下三个原因:

第一,移动直播的UGC生产模式比PC端的直播更明显,人人都有设备,随时随地开播,完全顺应了互联网时代的开放性原则,能刺激更多人去创造和传播优质内容。

第二,网络带宽和速度在逐渐提高,网络成本在逐渐下降,为移动直播提供一个极佳的发展环境。文字、声音、视频、游戏等都会在移动直播中呈现,创造出更加丰富的用户体验。直播可以以SDK的形式接入到自己的应用中,比如,教育领域中的课后辅导完全可以以直播的形式开展业务、电商也可借助直播让用户挑选商品,促进销售。

第三,一个与VR/AR技术相结合的移动直播为整个行业的未来提供了新的发展空间。VR/AR直播能够让用户身临其境,带动主播与观众更贴切真实的互动,大大提高平台的用户参与度。

当下,有技术实力和流量优势的互联网从业者都不愿错过直播这个风口,如何快速搭建一个直播系统成了大家关心的问题,我想和大家分享下我的经验。我从事于一家直播产品开发商,我们的产品为了快速赶上市场,并没有自己完全去自己做,而是使用了趣拍云服务提供的直播SDK。

从业者都知道,一个完整直播产品应该包含以下环节:推流端(采集、前处理、编码、推流),服务端处理(转码、录制、截图、鉴黄),播放器(拉流、解码、渲染)、互动系统(聊天室、礼物系统、赞)。 下面我就一一讲述下直播SDK在各个环节所做的工作。

一、移动直播推流端需要做哪些工作?

直播推流端即主播端,主要通过手机摄像头采集视频数据和麦克风采集音频数据,经过一系列前处理、编码、封装,然后推流到CDN进行分发。

1、采集

移动直播SDK通过手机摄像头和麦克风直接采集音视频数据。其中,视频采样数据一般采用RGB或YUV格式、音频采样数据一般采用PCM格式。采集到的原始音视频的体积是非常大的,需要经过压缩技术处理来提高传输效率。

2、前处理

在这个环节主要处理美颜、水印、模糊等效果。美颜功能几乎是直播的标配功能。我们调研中发现太多case是因为没有美颜功能被抛弃使用的。另外国家明确提出了,所有直播都必须打有水印并回放留存15天以上。

美颜实际上是通过算法去识别图像中的皮肤部分,对皮肤区域进行色值调整。通过颜色对比找到皮肤区域,可以进行色值调整、添加白色图层或调整透明度等来等来达到美白效果。在美颜处理方面,最著名的GPUImage提供了丰富的效果,同时可以支持iOS和Android,支持自己写算法实现自己最理性的效果。GPUImage内置了120多种常见滤镜效果,添加滤镜只需要简单调用几行代码就可以了。

3、编码

为了便于手机视频的推流、拉流以及存储,通常采用视频编码压缩技术来减少视频的体积,现在比较常用的视频编码是H264。在音频方面,比较常用的是用AAC编码格式,其它如MP3、WMA也是可选方案。视频经过编码压缩大大提高了视频的存储和传输效率,当然,经过压缩后的视频在播放时必须进行解码。

相较于之前的H264,2012年诞生的H265编解码标准有了相当大的改善,做到了仅需要原来一半带宽即可播放相同质量的视频,低于15Mbps的网络也能传输1080p的高清视频。像阿里云、金山云都在推自己的H265编解码技术,随着直播的快速发展和对带宽的依赖,H265编解码技术已有全面取代H264的趋势。

H264和H265个模块技术差异:

另外,硬件编码已经成为移动直播的首选方案,软编码处理在720p以上的视频颓势非常明显。在iOS平台上硬件编码的兼容性比较好,可以直接采用,但在 Android 平台上,MediaCodec 编码器针对不同的芯片平台表现差异还是非常大的,要完全实现全平台兼容的成本还是非常高的。

4、推流

要想用于推流还必须把音视频数据使用传输协议进行封装,变成流数据。常用的流传输协议有RTSP、RTMP、HLS等,使用RTMP传输的延时通常在1_3秒,对于移动直播这种实时性要求非常高的场景,RTMP也成为移动直播中最常用的流传输协议。最后通过一定的Qos算法将音视频流数据推送到网络断,通过CDN进行分发。在直播场景中,网络不稳定是非常常见的,这时就需要Qos来保证网络不稳情况下的用户观看直播的体验,通常是通过主播端和播放端设置缓存,让码率均匀。另外,针对实时变化的网络状况,动态码率和帧率也是最常用的策略。

当然,在网络传输方面全部自己来做基本不现实,找提供推流服务的CDN服务商提供解决方案是最好的选择,可参考文章开头介绍的云视频服务商。据了解,阿里云是国内唯一能自研CDN缓存服务器的厂商,性能非常有保障。当然,大多数直播平台都会同时接入多个视频云服务提供商,这样可以做拉流线路互备,对推流后视频集群再进行优化也可提高直播的流畅性和稳定性。

二、服务端处理需要做哪些工作?

要想适配各终端和平台,服务端还需要对流进行转码,如支持RTMP、HLS、FLV等格式拉流,支持一路转多路适配不同网络和分辨率的终端设备。

1、截图、录制、水印

像阿里云等云服务商都提供了实时转码技术,将用户推流码率较高(比如720P)实时转化成较低清晰度(比如360P)的流以适应播放端的需求。如果要自己搭建实时转码系统,这个成本是极高的,一台8核设备只能实时转10路流,如果一个正常的直播平台有1000路流,就需要100台设备,加上后期的运维成本,一般公司就吃不消了。

2、鉴黄

2016年4月14日,文化部查出了斗鱼、虎牙、YY、熊猫TV、六间房、9158等涉嫌提供含宣扬*秽、暴力、教唆犯罪的网络直播平台,被列入查处名单。政府介入管制有利于直播行业打造健康的生态,进入良性发展。这也意味着为了安全直播产品鉴黄成了必需环节,使用技术手段去鉴黄是移动直播平台必然采用的方案。

市面上提供鉴黄服务的方案主要有两种,第一种是对视频进行截图,然后对进行鉴黄,返回鉴黄结果和分值。典型的企业有阿里(绿网)、图谱科技,他们目前都支持直接传入视频,经过服务端分析返回结果。通常由业务系统接入鉴黄服务,根据鉴黄结果对直播流进行控制,如切断直播流、封禁账号等。第二种是和CDN结合,直接对直播流进行分析,识别结果分为色情、疑似色情、性感和正常,业务系统根据识别结果直接控制直播流。典型的企业是Viscovery,这套方案的优点是实时性保证比较好,缺点是必须部署到CDN或自己的机房,使用成本相对高一些。

还有像趣拍云服务这种一站式直播解决方案提供商,他们的做法是,用户只需在控制台对鉴黄服务进行配置就可以针对每个应用、每一路直播流进行实时审核。在控制台中,趣拍视频云服务实时将鉴黄结果返回,用户可以直接查看色情直播和违规界面的截图,同时可以对直播流进行控制,切断问题直播流。该服务商还提供了短信、邮件和站内信功能,避免漏掉任何一个非法视频,给平台造成损失,我们就使用了这种方式。

三、播放器端需要做哪些工作?

在播放器端如何做到秒开,直播过程中保证画面和声音清晰度的同时,稳定、流程、无卡顿的直播流量,这些工作都需要播放器端配合服务端来做优化,做到精确调度。

1、拉流

拉流实际是推流的逆过程。首先通过播放端获取码流,标准的拉流格式有RTMP、HLS、FLV等。RTMP是Adobe的专利协议,开源软件和开源库都支持的比较好,如开源的librtmp库,播放端只要支持flashPlayer的就能非常简单的播放RTMP直播,直播延迟一般在1_3秒。HLS是苹果提出的基于HTTP的流媒体传输协议,HTML5可以直接打开播放,通过微信、QQ等软件分享出去,用户也可以直接观看直播,可以说移动直播app,HLS拉流协议是必须支持的,缺点是延迟通常大于10秒。FLV(HTTP-FLV)协议是使用HTTP协议传输流媒体内容的一个协议,也不用担心被Adobe的专利绑架,直播延迟同样可以做到1_3秒。

各拉流协议的差异:

我们使用的趣拍视频云服务的直播拉流技术提供了以上三种格式,满足不同业务场景的需求,如对即时性要求较高或有互动需求的可以采用RTMP或FLV格式进行直播拉流播放;对于有回放或跨平台需求的,推荐使用HLS。当然,三种协议是可以同时使用的,分别用到自己的场景就可以了。

2、解码和渲染

拉流获取封装的视频数据后,必须通过解码器解码、渲染后才能在播放器上播放。它是编码的逆过程,是指从音视频的数据中提取原始数据。前面介绍的H264和H265编码格式都是有损压缩,所以在提取后的原始数据,并非原始采样数据,存在一定的信息丢失。因此,在视频体积最小的情况下通过各种编码参数保留最好的原始画面,成为了各视频公司的核心机密。

考虑对高清的支持,解码肯定还是要选择硬解码的。前面介绍过,iOS系统由于硬件比较单一、比较封闭,支持的比较好,Android系统由于平台差异非常大,编解码要完全兼容各平台还需要很多工作要做。

四、移动直播中的交互系统

移动直播中最常见的交互有聊天室(弹幕)、点赞、打赏和礼物等,交互系统涉及消息的实时性和互动性,在技术实现上大多是使用IM的功能来实现的。对于在线人数比较多的房间,弹幕消息量是非常大,主播与用户其实都看不过来,为了缓解服务器压力,在产品策略需要做一些必要的优化。

1、聊天室

移动直播中的弹幕交互是用户和主播互动的主要方式,实际上就是IM中的聊天室功能。聊天室和群聊功能类似,但聊天室的消息是不需要分发给不在线的用户的,历史消息也不需要查看,用户只有进入聊天室后才能查看聊天消息和群成员信息。面对复杂多变的网络状况,还需要根据用户位置就近选择近对应运营商的单线机房接入弹幕消息服务,让弹幕更及时。

2、礼物系统

礼物系统更是绝大多数移动直播平台的标配了,它是这些平台主要的收入来源。送礼物的形式也增强了用户和主播之间的互动交流,也是主播依赖平台的最主要原因。

礼物的收发在技术实现上也是用聊天室接口做的,通常采用IM中的自定义消息实现,当用户收到或发送礼物时将自定义消息对应的礼物图形渲染出来。

以上就是我们在使用了第三方SDK服务后总结出来的直播产品经验,希望能帮助到创业者和从业者们。

蒋先生(微信号love-drunk-hard),直播行业老兵。

用Helix Server做流媒体服务器,搭建过程先参考下http://wenkubaiducom/linkurl=uWcq__lG3WALYryGPuIftqmt1scFXNJzV4Jlu5L5J31tGD9EPHwSrr8DEcTL2upUyd6TMGvOvT_pCSdVUi2NKEoVsK6aiDaiaWvWpB3pM4e,如果不成功,后期我会在csdn上写篇博客,到时候把链接发给你。我搭过很多流媒体服务器,这个就是专门支持rtsp协议的,视频格式为rmvb或rm,音频格式为ra,就是用helix server做流媒体服务器,helix producer plus做视音频编码器,realplayer做客户端播放器,这三个组合起来使用,配置通畅就好了,那么都和你说了用哪些软件了,其实网上都能搜到相关软件的使用说明了,不懂的再问我吧!

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » linux怎么架设RTSP流媒体服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情