搭建流媒体服务器
Flash流媒体 最近视频的东西比较火,前些天我也稍微了解了一下使用开源软件建在线Flash流媒体播放平台的解决方案,还是有一些收获。 Red5是一款基于java的开源的Flash流媒体Server 软件,可以作为取代Macromedia提供的商业版本FMS。Red5使用RSTP作为流媒体传输协议,内置了一些示例,这些示例实现了在线录制, flash流媒体播放,在线聊天,视频会议等一些基本的功能。由于系统本身是开源的,在碰到问题的时候也比较容易解决,大不了直接改代码,在成本方面也可 以省下一笔不小的开销,为未来的功能扩展也提供了充分的空间。 如果仅仅是实现在线录制,在线播放,那么Red5也就差不多够了,但可能我们有时候还需要用户上传自己拍摄的视频文件,而要把这些视频文件转成可播放的flv文件就需要视频编码软件了。FFMpeg提供了录制,播放,视频流处理的完整解决方案。它自身也带了一个基于HTTP的流媒体广播程序以及其它几个实用的程序,但我们的重点还是它的视频转换程序,似乎Google Video也是用的它的程序作为视频转换工具。 我用FFMpeg转了几个视频,效果还可以,在声音上碰到了一些问题,在不添加参数的情况下,有一部分视频的声音会有问题,有的视频无论怎么添加参 数,都出不来声音,报错提示的是不支持所带的声音采样格式,只支持几种固定的格式,我看了一下代码,确实是这样子,但理论上应该是能够解决的。 FFMpeg自带的libavcodec是一套很牛的编码库,为了保证质量和性能,里面的很多codec都是从头开发的。 这两个加起来,实现一些简单的在线视频功能就差不多了。 RED5从下载到HELLO WORLD D5Power Studio原创,转载请注明出处谢谢 RED5的中文资料象牛毛一样稀少。。从下载到完全调试成功,大概花费了1天多的时间。在这个把中间出现的问题罗列出来,希望给想研究RED5的朋友一点帮助。 需要用到的软件 RED5 RC2 red5 Eclipse ant JDK 如果想直接通过SVN获得最新的RED5,还需要安装Eclipse的SVN插件呵呵,装的东西够多吧简单说一下各个软件的用途。如果是直接从SVN下载获得RED5,那么这里是不具备WIN下运行的文件的,所以就需要ant server来编译运行。下载安装包的朋友就不需要再用ANT来编译了(不过做开发的话,建议还是拖下来比较好,又不大,10几M而已)。Eclipse 是开发RED5服务器端的必须工具,JDK是RED5运行的必要环境。 这里,我以SVN下载版为例来介绍配置。 首先在Eclipse中用SVN插件(右上角有一个小加号的图标-other-SVN xxx)从RED5官方网站获得最新的代码(我下了至少两个小时,美国到中国好远啊。。。)SVN地址在RED5的官方网站,我下载的时候为,连接上以后,在最上面的那一级点右键,选择check out,然后选择目标路径什么的就不再多说了。。 下载完成后,需要为Eclipse指定RED5的Build文件,在左边的列表顶端文件上点右键,然后选择External tools工具栏绿色的PLAY图标,有红色锁的那个。。,打开后选左侧择蚂蚁图标(ANT),右键-Creat,输入文件名 server_all,然后点第一行的浏览按钮,在弹出的窗口中选择,确定。然后选择target标签,在下面的选择中把all勾选, 并选中该行,然后Apply.再操作一次,新建server_server,同样选择,然后在target中把all的勾选取消,选择 server,同样选中该行,点Apply. 这个时候运行server_all,我在这里出现了错误(详细见上一篇日志),解决办法为修改中的JAVA版本号与本机实际JDK版本号一致。另外也有人说报其他错误,要修改,但我没有遇到这个问题(参见)。 当你看到BUILD SUCCESS的时候,恭喜你,编译成功咯。 OK,接下来可以建立第一个应用程序了,为了省事,可以去RED5的webapps里面,把test直接复制一份,改名为demo,然后把里面除了 WEB-INF以外的其他文件删除,再进WEB-INF中,把src和class两个文件夹清空,在把除了这两个文件夹以外的其他文件夹删除(如果有的 话),现在终于清净了,在Eclipse中把工作区设置在RED5的webapps,然后新建一个项目,命名为demo,这个时候你会发现刚才弄好的文件 夹demo中的内容已经显示在左边了)右键选择src,Build Path-Use as Source Folder,将其指定为代码文件夹,然后在项目名demo上右键选择Properties,选择Java Bulid Path,在选择Source标签,在下面的Browse中选择Class目录,将其指定为目标目录。删除左边自动生成的BIN目录,OK 为了编译RED5程序,我们要把RED5的包导入到现在的项目中来。在项目名上点右键选择Properties,然后在Java Build Path中选择Libraries,点击Add External JERS将RED5中的包含入项目。然后,就可以按照RED5自带的指导文件建立第一个RED5程序啦 公司今天需要装一台RED5的服务器用来开发程序。发现RED5的已经正式放出,以前我写过一篇关于用SVN进行抽取,然后建立RED5项目的文章。而对于一般的开发者来说,不需要去修改RED5本身的程序,只需要建立自己的应用程序就可以了。现在把建立过程记录下来,希望对各位有所帮助。本文适合第一次接触RED5(WIN平台下),而不知道如何开始建立自己的应用程序的用户。 流程 1.下载最新版本的RED5 red5 2.安装RED5,注意在安装RED5前要先安装好JRE,安装RED5的时候会要求指定JRE的目录的。 3.到RED5的安装目录,找到doc/templates目录,该目录中存放了一个标准的RED5应用程序模版myapp,将其复制到RED5安 装目录中的webapps目录下,并改名为你喜欢的文件夹名,比如你要开发一个聊天的程序,那么可以把myapp改为myChat,这个名字就是以后你要 连接的服务名了。 4.在WEB-INF中新建一个文件夹src用来存放程序的源代码,新建一个classes文件夹用来存放编译后的文件。 5.打开Eclipse,将工作区指定为RED5安装目录下webapps,然后新建一个项目,项目名为myChat.这个时候你应该发现刚才 myChat中的文件都被加载进来了,我们首先把src目录指定为源代码目录,右键选择src,在弹出的菜单中选择Build Path-Use as Source Folder,即将其指定为代码文件夹。接下来要指定项目的目标目录,在项目名上右键选择Properties,选择Java Bulid Path,在选择Source标签,在下面的Browse中选择Class目录,将其指定为目标目录。然后选择Libraries,点击Add External