1. > 生活百科 >

rtsp服务器搭建 rtsp服务端

关于架设局域网电影服务器

可以

流媒体

Win2003/win2000流媒体服务器搭建(一)

随着Internet和Intranet应用日益丰富,视频点播也逐渐应用于宽带网和局域网。人们已不再满足于浏览文字和图片,越来越多的人更喜欢在网上看电影、听音乐。而视频点播和音频点播功能的实现,则必须依*流媒体服务技术。就目前来看,最流行的流媒体点播服务器只有两种,即Windows Media服务和Real Server。下面我们在这里主要讨论在Windows 2003 Server环境下如何搭建视频点播服务器。我们大家知道,Windows Media服务采用流媒体的方式来传输数据。通常格式的文件必须完全下载到本地硬盘后,才能够正常打开和运行。而由于多媒体文件通常都比较大,所以完全下载到本地往往需要较长时间的等待。而流媒体格式文件只需先下载一部分在本地,然后可以一边下载一边播放。Windows Media服务支持ASF和WMV格式的视频文件,以及WMA和MP3格式的音频文件。

一、Windows Media服务的安装

Windows Media服务虽然是Windows Server 2003系统的组件之一,但是在默认情况下并不会自动安装,而是需要用户来手动添加。而在Windows Server 2003操作系统中,除了可以使用“Windows组件向导”安装Windows Media服务之外,还可以通过“配置您的服务器向导”来实现。

(1)在刚刚安装好Windows Server 2003操作系统并进入Windows时,系统会自动运行“管理您的服务器”窗口。单击其中的“添加或删除角色”超级链接,将显示“配置您的服务器向导”对话框。

(2)单击该对话框中的“下一步”按钮,计算机将开始自动检测所有的设备、操作系统,并检测所有的网络设置。在检测完成后将显示“配置选项”对话框,选择“自定义配置”选项,以自定义安装自己所需要的网络服务。

(3)单击“下一步”按钮,将显示“服务器角色”对话框,在“服务器角色”列表框中列出了所有可以安装的服务器。系统中大部分服务的安装和卸载都可以在该对话框中进行选择。

(4)选择列表框中的“流式媒体服务器”选项,然后单击“下一步”按钮,将显示“选择总结”对话框,用来查看并确认所选择的选项。

(5)单击“下一步”按钮,将显示“正在配置组件”对话框,并根据提示将Windows Server 2003安装光盘放入光驱。

(6)放入安装光盘后单击“确定”按钮,系统便开始从光盘中复制文件并安装Windows Media服务,并用进度条代表当前的安装进度。

(7)安装完成以后将显示对话框,这表示已经成功地将此服务器设置为流式媒体服务器。

(8)单击“完成”按钮关闭该向导,返回到“管理您的服务器”窗口,将显示流式媒体服务器已成功安装。

另外,Windows Media服务也可以在“控制面板”中,采用传统的“添加/删除程序”方式来添加安装。在“Windows组件向导”对话框中,选中Windows Media Services复选框,并根据系统提示插入Windows安装光盘即可成功安装。

Windows Media服务安装完成后,将返回到“管理您的服务器”窗口。单击其中的“流式媒体服务器”右侧的“管理此流式媒体服务器”超级链接,或依次单击“开始”->“控制面板”->“管理工具”->Windows Media Services选项,将显示Windows Media Services窗口。有关Windows Media服务的所有管理工作均可在该窗口中完成。

该窗口中介绍了关于流媒体的一些基础知识,以作为入门者对它的了解。在“入门”选项卡中,单击左侧基础知识中的某个选项,即可在右侧显示出关于该项的解释说明。

二、制作流式文件

rtsp服务器搭建 rtsp服务端rtsp服务器搭建 rtsp服务端


Web服务可用来发布HTML文件,而视频点播服务自然可用来发布流媒体文件。使用Windows Media编码器,可以将文件扩展名为.wma、.wmv、.asf、.avi、.wav、.mpg、.mp3、.bmp和.jpg等文件转换成为Windows Media服务使用的流文件。.asf、.wma和.wmv文件扩展名代表标准的Windows Media文件格式。其中的.asf文件扩展名通常用于使用Windows Media Tools 4.0创建的基于Microsoft Media的内容。而.wma和.wmv文件扩展名是作为Windows Media编码器的标准命名约定引入的,目的是使用户能够容易区别纯音频(.wma)文件和视频(.wmv)文件,这三种扩展名可以交换使用。

1、安装Windows Media编码器

Windows Server 2003中并没有自带Windows Media编码器,需要到Microsoft官方网站上下载Windows Media编码器的简体中文版,然后再执行安装过程。需要注意的是,编码器既可以安装在Windows Media服务器上,同时也可以安装在其他计算机上。也就是说,编码器只需安装在执行编码(即转换文件格式)工作的计算机上。

(1)双击运行下载的Windows Media编码器安装文件,将显示安装向导对话框,在本安装向导中显示了可以安装的组件。

(2)单击“下一步”按钮,将显示“许可协议”对话框,要求用户阅读最终用户许可协议,可访问用户是否接受许可协议中的条款,然后单击“我接受许可协议中的条款”单选项。

(3)选择完之后单击“下一步”按钮,将显示“安装文件夹”对话框,在“安装文件夹”文本框中显示了Windows Media编码器将要安装的位置。当然,也可以键入其他的安装路径。单击“浏览”按钮以选择其他的安装路径。

(4)单击“下一步”按钮,即可显示“准备安装”对话框,此时表示现在可以开始安装Windows Media服务了。

(5)单击“安装”按钮,安装文件就会向硬盘中开始复制文件,并进行Windows Media 服务安装。在安装完成后就会显示安装完成对话框,提示已经成功地完成Windows Media编码器9系列安装向导。

(6)单击“完成”按钮以完成安装,并根据系统提示重新启动计算机。

依次单击“开始”->“程序”->Windows Media->“Windows Media编码器”选项,将会运行Windows Media编码器,并显示“Windows Media编码器”窗口。

2、转换文件格式

转换文件格式的标准描述应当是“对存储信息源编码”,其实也就是将保存在硬盘或光盘上的多媒体文件转换为Windows Media服务可使用的流媒体文件格式,这个文件格式转换过程叫做编码。Windows Media编码器可以将MPG和AVI格式的多媒体文件编码为WMV格式。

(1)依次单击“开始”->“所有程序”->“Windows Media”->“Windows Media编码器”选项,将显示“新建会话”对话框。选择其中的“转换文件”图标,以准备转换视频文件。

(2)单击“确定”按钮,将显示“新建会话向导”窗口。直接在“源文件”文本框中键入要转换文件所在的文件夹和文件名,或者直接单击“浏览”按钮,以查找要转换的文件。默认状态下,输出文件与源文件均保存在同一文件夹。当然,也可以重新指定保存的文件夹。

(3)单击“下一步”按钮,将显示“内容分发”对话框,以指定分发内容的方式。由于是为Windows Media服务制作节目,所以在这里应该要选择“Windows Media服务器(流式处理)”选项。

(4)单击“下一步”按钮,将显示“编码选项”对话框,在这里可以指定音频和视频编码方式。如果该视频文件只被用于局域网或宽带传输,可选择高质量的视频和音频,并指定较高帧速率,从而获得清晰的图像和逼真的声音。当然,此时所占用的网络带宽也偏高,文件存储空间也就大。在这里每选中一个比特率就会生成一个相应的WMV文件,因此通常情况下只需选中一个比特率即可。

(5)单击“下一步”按钮,将显示“显示信息”对话框,分别可以在相应的文本框中键入该视频文件的相关信息。

(6)单击“下一步”按钮,将显示“设置检查”对话框,在这里可以显示并检查该视频文件的相关信息。如果有任何错误,可以单击“上一步”按钮以返回至相关页面重新进行相关的设置。

(7)单击“完成”按钮,系统将开始文件格式的转换。这可能要花一段时间,需耐心等待。

(8)文件的格式转换完成后,将显示“编码结果”对话框,单击“关闭”按钮,以结束格式转换过程。若要继续转换下一个视频文件,可单击其中的“新建会话”按钮。若要检查刚转换的视频文件,可单击“播放输出文件”按钮

Windows系统live555MediaServer下搭建rtsp服务器

百度云: live555MediaServer 密码:004h

2.1. 双击运行live555MediaServer.exe

由下图中提示可以看出live555MediaServer支持的文件。

运行live555MediaServer后,可以使用VLC进行播放验证。

3.1. 打开VLC软件,选择 “媒体 - 打开网络串流” 选项

EasyDarwin搭建RTSP流媒体服务器(Ubuntu16.04)

进入x64目录

!!!注意:必须以Root用户启动:

否则提示错误:WARNING: You must be root to use the following RTSP port: 554

请问一下,怎么搭建网吧电影服务器,如果要用到相应的电影服务器软件,用什么样的服务器软件最好?

CPU AMD Athlon64 X2 7750(黑盒) ×1 ¥425

主板 华硕 P5KPL-AM SE ×1 ¥460

内存 金士顿 2G DDR3 1333 ×1 ¥200

硬盘 希捷 500G 7200.11 32M(串口/盒) ×1 ¥410

显卡 影驰 9500GT加强版 ×1 ¥390

光驱 三星 TS-H662A ×1 ¥180

液晶显示器 优派 VA1616w ×1 ¥599

机箱 百盛 网飚四号W103 ×1 ¥80

键鼠套装 微软 光学精巧套装 ×1 ¥115

合计金额:2859元

CPU AMD Athlon64 X2 7750(黑盒) ×1 ¥420

主板 昂达 A770S魔固版 ×1 ¥499

内存 威刚 2G DDR2 800 (万紫千红) ×1 ¥160

硬盘 日立 160G 7200转 8M(串口/3年盒) ×1 ¥280

显卡 盈通 R4650-512GD3游戏高手 ×1 ¥499

液晶显示器 长城 M915 ×1 ¥699

机箱 华硕 TT-67带电源 ×1 ¥170

键鼠套装 精灵 极光手套装 ×1 ¥48

合计金额:2775元

绝对的网吧配置版!!!!

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

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

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

man被安装到:

/usr/man/man1/gnump3d.1

/usr/man/man1/gnump3d-index.1

/usr/man/man1/gnump3d-top.1

/usr/man/man1/gnump3d.conf.1

3、配置

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

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

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

4、运行gnump3d流媒体服务器

[root@localhost gnump3d-2.9.5]# gnump3d&

[root@localhost gnump3d-2.9.5]# gnump3d2&

5、访问gnump3d流媒体服务器

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

对属性的配置页面:

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

live555移植到hi3516做rtsp服务器

live555库本身实现了做rtsp服务器,客户端可以通过rtsp客户端访问服务器上的文件并播放,支持的文件格式如下:

本次任务实现了把live555移植到嵌入式海思芯片hi3516上做rtsp服务器,除了支持客户端播放服务器上上面格式文件外,另添加了实时播放hi3516摄像头图像与音频的功能。

live555源码目录如下:

四个基本的库分别是:BasicUsageEnvironment, groupsock, liveMedia和UsageEnvironment。

编译后即生成这4个库文件:

这里我只简单说下liveMedia库的功能,其他三个库是live555运行的基础库,太(mei)简(yan)单(jiu),就不说了。

liveMedia库包含了音视频相关的所有功能,包含音视频文件的解析,RTP传输封装等,我们可以看到这个目录下有对h264、AAC等文件解析的支持:

交叉编译过程:略

这里我主要是修改mediaServer文件夹下的示例程序,添加实时预览摄像头图像与mic声音功能。

hi3516芯片,视频编码格式为h264,音频编码格式为AAC。

1.添加音频AAC支持

添加类 ADTSAudioLiveSource ,继承自FramedSource

在该类的doGetNextFrame函数里实现获取hi3516音频数据做为rtsp服务器音频源。

注意点:

1.1 adts默认是带7字节或者9字节的头,传给rtsp的时候是要去掉头的,实际上RTSP通过rtp传输AAC帧的时候是不带adts头的,而是带4个字节的mpeg4-generic头。

1.2 从FramedSource继承而来的变量

每次doGetNextFrame帧时,从FIFO里取一个完整的AAC帧,把帧拷贝到fTo buf里面,然后比较帧大小与fMaxSize来赋值几个关键的变量:

注意,不管帧长是否大于fMaxSize,每次都需要把完整的帧拷贝到fTo指针,live555内部会根据fNumTruncatedBytes等变量自行处理分包。

1.3 doGetNextFrame函数最后不管有没有取到帧,都需要执行FramedSource::afterGetting

1.4 采样率,通道数,configstr等的计算

这几个变量在mediaSubbsession建立RTPsink时要用到,它直接影响了SDP里对于AAC音频描述字段的产生

添加类 AACAudioLiveServerMediaSubsession ,继承自ADTSAudioFileServerMediaSubsession

createNewStreamSource函数创建上面的ADTSAudioLiveSource做为音频输入源,参数estBitrate为预估的码率,海思AAC编码码率设置为24kbps,所以estBitrate设置为24.

createNewRTPSink有必要继承,因为需要根据音频源的采样率、通道数等创建RTPSink.

2.添加h264支持

添加 H264FramedLiveSource ,继承自FramedSource

unsigned maxFrameSize()函数必须继承,里面设置帧最大可能的大小,我设置为100000,如果不继承就是默认的,会出现画面马赛克

doGetNextFrame函数里面和AAC取帧的处理差不多,我加多了一个步骤,就是第一次取帧的时候会调用接口去产生一个关键帧,并且等待这个关键帧到来才处理,这样连接后出图会比较快。

添加类 H264VideoLiveServerMediaSubsession ,继承自H264VideoFileServerMediaSubsession

这个类就是实现createNewStreamSource时创建H264FramedLiveSource

rtsp服务器搭建 rtsp服务端rtsp服务器搭建 rtsp服务端


3.修改DynamicRTSPServer

修改类DynamicRTSPServer,在lookupServerMediaSession函数里动点手脚,默认在这个函数里面会根据文件名去寻找服务器下相应的文件做为直播源,我这里比较如果是我特定的live源名字则直接返回,相应的live源创建rtsp服务器的时候就添加好

rtsp服务器搭建 rtsp服务端rtsp服务器搭建 rtsp服务端


4.初始化rtsp server

初始化rtsp服务器,添加一个ServerMediaSession,该mediaSession添加一个AACAudioLiveServerMediaSubsession和一个H264VideoLiveServerMediaSubsession,然后把该mediaSession添加给rtsp服务器。

客户端访问 rtsp://x.x.x.x/ch0.live 时就可以看到实时的摄像头图像与声音啦!

如何搭建一个局域网流媒体服务器

所谓流媒体技术,是指将连续的影像和声音信息经过压缩处理后放在网站服务器上,让用户能够一边下载一边观看、收听(即所谓的“在线欣赏”),而不需要等整

个压缩文件下载到自己的机器上才可以欣赏的网络传输技术。目前,在这个领域中的竞争者主要有微软、RealNetworks、Apple三家公司,例如微

软新近发布了Windows Media Services 9、RealNetworks公司新近发布的Helix

Platform、Apple新近发布的Darwin streaming server 4.1,意图在流媒体领域大干一场。

一般来说,一个完整的流媒体服务系统需要三个部分组成:编码器、流服务器和播放器。编码器通过对内容来源(如MP3文件或者麦克风输入)进行编码,并将编

码过的内容发送到流服务器;流服务器再将它们发布到Internet,这样客户端的播放器只要连接到流服务器就可以进行在线播放了。

利用Winamp架设MP3网络电台

当我们静静地在欣赏美妙的MP3音乐时,你是否曾经考虑过将这些原本属于个人的MP3音乐通过网络在局域网内进行发布,甚至还可以通过Internet进

行发布?这样就可以让遍布世界的朋友们与你一起共享MP3音乐之旅。其实,要做到这一点并不难,你只要将本机创建为一台MP3流媒体服务器,将自己所喜爱

的MP3音乐不停播放,然后通知朋友们访问你的这台MP3服务器就可以了。

说起MP3的播放,使用最广泛的莫过于Winamp了。对于MP3流媒体服务这个领域,Winamp的开发者Nullsoft公司当然不会放弃,专门发布

了面向MP3的流服务器SHOUTcast Server。虽然它的功能没有Windows Media Server和Real

Server强大,但它不仅对硬件的要求极低,更关键的是完全免费,使用起来没有后顾之忧。另外你还需要下载一个名为SHOUTcast DSP

Plug-in的插件,只有安装了这个不起眼的插件,Winamp才能支持流媒体服务。

首先打开Winamp(请注意版本号必须在2.22以上),切换到“Options” | “Preferences”|

“DSP/Effect”标签页,选中“Nullsoft SHOUTcast Source DSP

v1.8.2a[dsp_sc.dll]”下的“Configure”按钮。打开“SHOUTcast

Source”窗口,选择“Output”标签页,如图1所示,在“Address”栏内填入本机的IP地址。如果你想在Internet上广播MP3音

乐,则必须键入本机的外部IP地址,然后就可以从程序组中运行SHOUTcast

DAAS(GUI)程序以启动SHOUTcast服务。这时系统会自动连接到服务器,接下来请返回图1窗口点击“Connect”按钮。如果连接成功,该

按钮会变为“disconnect”字样,这样我们就完成了在本机架设MP3流服务器的全部过程。

架设REAL格式的视频点播中心

如果是架设视频点播服务器,那么选择Real格式是非常明智的。因为RealProducer Plus这款功能强大的软件操作相当简单,每次使用时会弹出一个向导对话框进行操作提示。目前最新版本是10.0,我们只要选择8.5.1以上的版本即可。

从“工具”菜单下选择“创建网页”命令,此时会弹出一个如图2所示的向导式对话框,点击“前进”按钮选择你希望用于创建Web页面的Real多媒体文件。

随后RealProducer会询问是创建“弹出式播放器”还是“嵌入式播放器”,一般建议选择后者,因为这样所需要的系统资源更低,当然启动速度也更

快。至于播放器的界面,可以选择“标准播放器”,很快就可以创建成功。

最后,RM文件对象所在的目录会增加一些文件,请将这些文件与RM对象一起上传,不过要注意保证RM文件与HTML文件在同一目录下,否则播放器可能无法找到播放对象。

架设WMP流媒体服务器

微软的手伸得很长,什么领域都要插足一下。凭借着Windows操作系统的影响力,Windows Media Player市场占有率越来越高,而微软的*.asf、*.wmv、*.wma、*.avi等格式也开始被越来越多的用户所接受。

架设WMP流媒体服务器,你需要安装Windows Media

Encoder才行,目前最新版本是9.0简体中文版。如图3所示,我们应该在这里选择“广播实况事件”,接着选择用来编码的音频和视频设备。注意请事先

将音频和视频设备与计算机正确连接,否则会无法检测到。接着你还需要指定服务和发布点,当然也可以使用现有的发布点。然后Windows Media

Encoder会自动创建服务器,并给出HTTP连接地址与局域网内部地址,请记住这些内容,最后点击“开始”按钮正式启动WMP流媒体服务器。

接下来,我们就可以将刚才记下的HTTP连接地址与局域网内部地址告诉给朋友们。他们只要打开IE,输入正确的IP地址和端口号,很快就可以访问WMP流媒体服务器。

架设QT流媒体服务器

平时,我们见到的大多是打造MWF(矢量地图窗口文件,Map Window

File)或RM流服务器,可是你可知道QuickTime(以下简称QT)流媒体服务器应该如何来打造吗?其实,借助苹果的QuickTime

Streaming Server工具,我们可以在短时间内快速打造出一台QT流服务器。

首先我们要准备一些工具,QuickTime媒体播放工具当然是必不可少的。目前最新版本是6.5简体中文版,到处都可以找到,或者直接到苹果公司的网站

下载,并且需要在服务器和客户端同时安装。Perl语言解析器,最低版本要求是5.0以上。QuickTime Streaming

Server与用户见面最早是在1999年,当时以其开放源代码和基于标准的实时传输协议/实时流协议(RTP/RTSP)引擎深深地动摇了流媒体工业的

基础,目前的最新版本是5.0,下载文件共9.2MB。

从地址可以免费下载,但你必须拥有Apple的注册用户名才能登录(注册是免费的),这里有Mac OS X、Red

Hat、Solaris、Windows

NT/2000/XP等版本可供选择。下载回来的是一个自解压文件,释放后执行Install.bat运行安装程序,运行过程在命令提示符窗口中完成,最

后还需要设置登录用户名、密码,如图4所示,当看到“Setup

Complete!”的提示信息时即大功告成。QT流媒体服务器建设过程和RM类似,在这里就不再赘述。

如何共享音频和视频

共享音频

前面,我们利用Winamp、SHOUTcast Server将本机架设为一台MP3流服务器,那么该如何让遍布天南海北的朋友或局域网中的同事欣赏这些美妙音乐呢?

这有两种方法:一种是打开Winamp,从“Play”菜单下选择“Location”命令,或者直接键入“Ctrl-L”组合键打开一个对话框,然后在

这里键入MP3流服务器的URL地址或者IP地址、端口号(缺省为8000),例如“”或者“”即可收听;另一种方法则更为简单,从IE中打开“”进入

Web管理页面,如图5所示,然后点击“收听”按钮就可以在线收听MP3流音乐。

共享视频

虽然苹果的QuickTime Player的市场占有率远远不如Real或Windows Media Player,但忠实的用户依然不少。而且苹果毕竟是网络流媒体的开山鼻祖,因此许多最新大片都是采用QT格式。

首先必须在机器上启动QT服务,然后通知朋友们在远程计算机中打开QuickTime。从“文件”菜单中选择“在新的播放窗口中打开URL”命令,键入

“rtsp://server/file.mov”来访问QT流服务器以实现远程播放。这里的“server”是服务器的IP地址,“file.mov”

是媒体文件名,默认的RTSP传输端口是554端口。如果网络连接没有什么问题的话,如图6所示,那么你很快就可以连接成功。

建立播放列表或点播系统

辛辛苦苦架设了一台流媒体服务器,我们还可以建立播放列表或点播系统,甚至可以进行网络直播,反正已经用上了宽带,不用也是浪费。

配置QT流媒体服务器

打开IE,在地址栏中输入“”,这里的“server”代表服务器的IP地址。如果前面的配置没有什么问题的话,很快就会进入如图7所示的管理页面,这里

以列表形式显示了当前的系统资源占用情况和相关的服务器信息。我们可以在这里查看连接到服务器的用户类型、IP地址、数据速率、数据传输量、包丢失比例、

连接时间、连接文件等内容,也可以在这里设置映射文件夹、加密传输、最大连接用户数、分配带宽、重置密码、更改端口,如果你需要的话,还可以查看错误日志

和操作日志。

创建播放列表

点击图7窗口右侧的“New MP3 Playlist”或“New

Movie

Playlist”按钮,我们可以创建一个MP3或影片的播放列表。不过这里需要说明的是,你需要将相关的媒体文件复制到C:\Program

Files\Darwin Streaming Server\Movies文件夹中才行。

如图8所示,我们可以在这里通过“Weight”旁边的小三角箭头重新调整播放列表的播放顺序,可惜的是QuickTime Streaming

Server对简体中文的支持十分差劲,显示的竟然是一些乱码字符。最后,点击窗口右下角的“Save

Changes”按钮就可以将这份新建的播放列表保存下来,以后如果需要更改的话可以选择“Edit Playlist”重新配置。

不过,如果你希望其他用户也能访问这份播放列表文件,还必须点击“Avaliable Playlists”列表框中的“Status”下的播放按钮,也就是让“Status”列的“Stopped”变为“Playing”才行。

实现网络直播

如果你还想在播放完MP3歌曲后说上一段话,那么简单的很,只要一个话筒就行了。不过,还需要在Winamp中进行一些设置,如图9所示,在“Input

Device”下拉列表框中选择“Soundcard Input”项,这样才会出现图中的SoundCard

Mixer设置项。如果使用默认的设置“Winamp(Recommended)”的话就只有Input Levels一项了,下面还有“Music

Level”、“BGMusic Level”、“Mic Level”几个滑块可以调节音量的大小,而“Fade Time”是用来设 置移出时间值。

现在,你无需进行其它设置,准备一番后,清清嗓子,点击“Push to Talk”按钮,然后再按下“Lock”按钮锁定当前话音输入模式。接下来就可以对着麦克风开始你的网络直播之旅了,结束请再次按下“Lock”按钮解锁。

rtsp流浏览器播放方案

rtsp流在主流浏览器并不支持直接播放。比如大华的视频流:rtsp://admin:123456@

192.168.10.129/cam/realmonitor?channel=1&subtype=0,用vlc可以直接播放。但在浏览器会报ERR_UNKNOWN_URL_SCHEME。那如何在浏览器中播放呢。

以下列出几种方案。

1、安装插件(chrome最新版基本都不支持)

类如:kurento,vlc插件(谷歌浏览器版本41以下),vgx插件(不支持高版本,chrome72.0版本可用)等。

2、安装软件(中间件,基本都付费)

类如:Appemit(调用vlc插件播放rtsp),可以免安装的,目前只能windows,免费版会有提示。

猿大师中间件(底层调用VLC的ActiveX控件,实现在主流浏览器网页中内嵌播放多路RTSP的实时视频流),中间件收费的。

PluginOK(牛插)中间件。底层调用ActiveX控件VlcOcx.dll。(商业用途需付费使用)

3、服务器拉流转发及协议转换

示意图如下所示:

推流--------------服务器转发--------------拉流

方法一览:

a,vlc软件串流到http协议 ,网页显示几个视频需启动几个vlc,只适合应急场景。

b,html5 + websocket_rtsp_proxy 实现视频流直播 ,基于MSE(Media Source Extensions,W3C),扩展H5的功能。

步骤:服务器安装streamedian服务器,客户端通过video标签播放。

原型图:

价格:

c.基于nginx的rsmp转发

基于nginx实现rtmp转化,用flash实现播放。由于flash目前大多浏览器默认禁用,不推荐此方式。

步骤:安装ffmpeg工具,安装nginx。

另外nginx-rtmp-module也支持HLS协议,可以搭建基于hls的直播服务器。

d.rtsp转hls播放,通过ffmpeg转码

步骤:安装ffmpeg工具,ffmpeg转码。

形如:

ffmpeg -i "rtsp://admin:123456@192.168.10.129/cam/realmonitor?channel=1&subtype=0" -c copy -f hls -hls_time 2.0 -hls_list_size 0 -hls_wrap 15 "D:/hls/test.m3u8"

缺点是直播流延时很大,对实时要求比较高的不满足要求。

案例:基于EasyDarwin拾建转码服务器。参考地址:

通过存储的m3u8去读取。

e.websocket代理推送,FFMPEG转码

此方法与a,b类似。但更实用。

以下提供两种方案:

(1)Gin+WebSocket+FFMPEG实现rtsp转码,参考:

通过FFMPEG把rstp转成http,ginrtsp作为转发服务器,但需要自己写相应接口,需要了解go语言。

(2)node + ffmpeg + websocket + flv.js,参考:

步骤:在node服务中建立websocket;通过fluent-ffmpeg转码,将RTSP 流转为flv格式;通过flv.js连接websocket,并对获取的flv格式视频数据进行渲染播放。

import WebSocket from 'ws'import webSocketStream from 'websocket-stream/stream'import ffmpeg from 'fluent-ffmpeg'// 建立WebSocket服务const wss = new WebSocket.Server({ port: 8888, perMessageDeflate: false })// 监听连接wss.on('connection', handleConnection)// 连接时触发事件function handleConnection (ws, req) { // 获取前端请求的流地址(前端websocket连接时后面带上流地址) const url = req.url.slice(1) // 传入连接的ws客户端 实例化一个流 const stream = webSocketStream(ws, { binary: true }) // 通过ffmpeg命令 对实时流进行格式转换 输出flv格式 const ffmpegCommand = ffmpeg(url) .addInputOption('-analyzeduration', '100000', '-max_delay', '1000000') .on('start', function () { console.log('Stream started.') }) .on('codecData', function () { console.log('Stream codecData.') }) .on('error', function (err) { console.log('An error occured: ', err.message) stream.end() }) .on('end', function () { console.log('Stream end!') stream.end() }) .outputFormat('flv').videoCodec('copy').noAudio() stream.on('close', function () { ffmpegCommand.kill('SIGKILL') }) try { // 执行命令 传输到实例流中返回给客户端 ffmpegCommand.pipe(stream) } catch (error) { console.log(error) }}

优点全部基于js。前端即可搞定。

参考:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, website.service08@gmail.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息