使用Red5,FFMpeg搭建在线Flash流媒体分享平台
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用Red5和FFMpeg搭建在线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 0.6 RC2 : /red5
Eclipse 3.2 :
ant: /
JDK: /javase/downloads/index.jsp
如果想直接通过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的官方网站,我下载的时候为
/osflash/red5/java/server/trunk,连接上以后,在最上面的那一级点右键,选择check out,然后选择目标路径什么的就不再多说了。。
下载完成后,需要为Eclipse指定RED5的Build文件,在左边的列表顶端文件上点右键,然后选择External tools(工具栏绿色的PLAY图标,有红色锁的那个。。),打开后选左侧择蚂蚁图标(ANT),右键->Creat,输入文件名 server_all,然后点第一行的浏览按钮,在弹出的窗口中选择build.xml,确定。然后选择target标签,在下面的选择中把all勾选,并选中该行,然后Apply.再操作一次,新建server_server,同样选择build.xml,然后在target中把all的勾选取消,选择 server,同样选中该行,点Apply.
这个时候运行server_all,我在这里出现了错误(详细见上一篇日志),解决办法为修改build.properti中的JAVA版本号与本机实际JDK版本号一致。另外也有人说报其他错误,要修改BUILD.XML,但我没有遇到这个问题(参见
/flash%5Fzb/blog/item/412384230961d444ac34ded5.htm l)。
当你看到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.jar包含入项目。然后,就可以按照RED5自带的指导文件建立第一个RED5程序啦!
公司今天需要装一台RED5的服务器用来开发程序。发现RED5的0.6已经正式放出,以前我写过一篇关于用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 JARs,将RED5安装目录下的red5.jar 包含进来。
6.这个时候,在Eclipse的左边应该多了WEB-INF/src这样一个东东,我们将要在这里开始写入我们的第一个项目代码。右键选择它,在弹出的菜单中选择New->Package,新建一个包,举例,包名可以为org.d5.first,然后再在生成的org.d5.first这个包上继续右键选择New->File,输入文件名
Application.java。并在建好的文件中输入以下代码:
package org.d5.first;
import org.red5.server.adapter.ApplicationAdapter;
public class Application extends ApplicationAdapter {