vb、CC++、java、c#、delphi、php哪个适合做视频聊天程序?分析下各自的优缺点,谢谢
1、Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。 您可以使用它轻易的构建高效率的即时通信服务器 Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。 由于是采用开放的XMPP协议,您可以使用各种支持XMPP协议的IM客户端软件登陆服务
2、Adobe的FMS是一个多媒体应用平台,使用该平台,你可以通过网络存储录制下来的音频、视频,也可以共享数据对象,并且可以将这些音频、视频和共享数据对象传递给多个客户端,实现实时同步共享。该平台集成了通讯功能和应用程序功能,它通过Flash Player(Flash player6或更高)在客户端提供音频共享,视频共享和数据流。在这个平台上,可以实现多媒体流的点播、直播、交互等多种应用,由于Adobe公司在网络多媒体应用上的雄厚实力,以及Adobe Flash Player在网络上应用的广泛性,因此,FMS成为诸多多媒体应用的服务器端主要应用平台。
3、Red5的主要功能和Macromedia公司的FMS类似,提供基于Flash的流媒体服务的一款基于Java的开源流媒体服务器。它由Java语言编写,使用RTMP作为流媒体传输协议,这与FMS完全兼容。它具有流化FLV、MP3文件,实时录制客户端流为FLV文件,共享对象,实时视频播放、Remoting等功能。用Red5替换FMS后,客户端不用更改可正常运行。
这3个产品你可以参考一下 都是用java来开发的 目前的视频聊天功能已经比较成熟了。 希望能帮到你····
网络视频服务器(DVS,Digital Video Server)主要用于以太网实时传输数字音视频的多媒体服务器,它能通过以太网(局域网/广域网)将实时的图像和声音同时通过网络传输。视频服务器可以在保留现有模拟视频监控设备的同时,将视频监视系统平滑升级到基于网络的视频监控系统,它非常适用于与现存的模拟CCTV(闭路电视监控)系统相集成。视频服务器为模拟视频设备带来了全新的功能特性,并彻底消除了系统对于同轴电缆、模拟监视器和DVR等专用设备的依赖。DVR将不再成为实现录像功能的必需品,因为在视频服务器的帮助下,视频图像可以通过标准的PC服务器来进行录制和管理。一台视频服务器通常具备1至4个模拟视频输入接口用于连接模拟摄像机,同时具备1个以太网接口用于连接到网络。与网络摄像机一样,它包含内置的Web服务器、图像压缩芯片以及操作系统,在这些部件的作用下,模拟视频输入将被转化为数字视频信号,并能够通过计算机网络进行传输和存储,从而大大简化了视频资源的访问和管理。
除了视频输入之外,视频服务器还可以通过同一个网络连接实现其他更多的功能和传输更多的信息,其中包括:数字化报警输入和输出(I/O接口,可用于触发服务器启动录像功能和传输视频,或者激活外部报警设备如警灯或打开房门等等)、音频、用于串行数据传输或PTZ设备控制的串行端口灯。通过图像缓存,视频服务器还可以发送报警前后的图像。视频服务器还可以连接更多的专用摄像机,例如高感光度黑白摄像机、微型摄像机或显微摄像机等等。
视频服务器用于监控领域,大家都很清楚,但不常见的应用,如流媒体。采用流媒体方式,即设立一台流媒体服务器,建立与视频服务器的连接,对该视频服务器的视频访问全部通过流媒体转发服务器软件模块来进行转发,使得该视频服务器的视频服务只占一个通道。这样保证与视频服务器只有一个连接,提高了播放性能和质量。
十几年前,WEB应用还没有崛起,大家还都在用"美萍点播"等CS架构来搭建点播平台,现如今是浏览器的天下了,能不用客户端就不用客户端,使用开源软件组合搭建点播+直播平台的BS架构备受青睐。
点播平台
(1)简单应用
如果不需要多码率播放,视频加密的话,直接上传mp4(H264)格式的视频就可以了(绝大多数浏览器都能直接播放),做好视频的存储,一个简单的点播平台不过如此。
(2)高级应用
如果需要多码率播放,视频加密,视频水印的话,这个可以使用开源库 ffmpeg 库来完成,服务端运行,稳定高效,可以很好的实现自动化。
直播平台
直播需要推流和拉流,这个还是很有技术含量的,有一定的技术门槛,自己去实现的话是不现实的。
(1)利用 nginx + rtmp 推流模块,不过不太稳定,毕竟 nginx不是专业做流媒体服务器的。
(2)利用 livego 等专业开源直播项目搭建,go语言 做网络应用天生的优势, 稳定性有待考验。
系统整合
经过调研以及不懈的努力,我把开源的 酷瓜云课堂腾讯云版 做了大量移植修改(存储,点播,直播)替换成本地的了,去掉了局域网内用不到的支付等功能。
下面开始安装,虽然是局域网应用,但是安装是需要连接外网的哦(后面有时间了再出一个本地安装的包),先准备好一杯咖啡吧(网络不好的话会有点慢哦)
友情提示
请使用干净的系统执行安装,如有安装过 nginx,apache 之类的会造成 80 和 443 端口冲突
配置要求
操作系统:Ubuntu | Debain | Centos
系统内存:2G+
安装指南官方文档:点击访问
(1)下载安装脚本
cd ~ && curl http://downloadkooguacom/lan-edu/installsh -o installsh
(2)根据实际情况修改配置
nano installsh
(3)执行安装,快慢取决于网络,当有错误或者超时 请重试,请重试,请重试
bash installsh
(4)安装完成,请删除安装脚本
rm installsh
推流就是把采集阶段封包好的内容传输到服务器的过程。就相当于你的内容要先上传服务器,然后服务器那边才能传输给观众。跟上传有点类似,只不过是实时上传。
怎么推流这里涉及到一个很强大的东西ffmpeg,它是可以用来记录、转换数字音视频,并将其转化为流的开源软件,通过它可以进行视频的采集封装成流,并推送到流媒体服务器。
例如使用ffmpeg进行mac本地摄像头实时推流到nodeMediaServer:
ffmpeg -f avfoundation -video_size 1280x720 -framerate 30 -i 0:0 -vcodec libx264 -preset veryfast -f flv http://ip:8000/live/streamflv
复制代码
这里涉及到ffmpeg工具,上面的参数不逐一解释,只是最重要的几个:
-vide_size 表示要输出的视频画面的分辨率尺寸
-f 后面的参数 flv表述输出的格式,再后面的地址 http://ip:8000/live/streamflv 表示想要输出的地址,这个地址的streamflv可以按照自己需求随意修改,保持后缀是你需要的flv格式即可
另外一种常用的场景是直接拉去摄像头设备中的视频流数据,这种方式,nodeMediaServer也支持,只需要在管理后台配置对应的摄像头的配置信息,就可以进行推流操作了。这些配置信息包括ip,登录用户名和密码等。
0条评论