(转)Adobe flash media server 开发者向导二 -- 流服务
Adobe flash media server 开发者向导(二)
By:闪闪威廉@nju
2.流服务
2.1使用实况服务
2.1.1关于实况服务
实况服务就是在flash media server上创建一个发布点。你可以使用Flash media encoder来捕捉,编码并且向实况服务流式实况发布视频,并且可以在范例客户端或FLVPlayback组建里面播放视频。你也可以建立你自己的应用程序来捕捉视频,你自己的客户端应用程序来播放视频。
下列的实况视频资源可以向实况服务发布视频:
Flash Media Encoder 2.0
注释:只有Flash Media Interactive Server和 Flash Media Development Server 支持Flash Media Encoder 的附加。
Flash Media Interactive Server and Flash Media Development Server(查看从服务器到服务器的发布)
一个定制的Flash Player应用程序用来录制音频和视频
2.1.2测试实况服务
1.在电脑上连接一个摄像头。
2.打开Flash Media Encoder点击开始。默认的Flash Media Encoder会向同一台电脑的默认实况发布点发布流,rtmp://localhost/live,发布的流的名字是livestream。
3.双击RootInstall/samples/applications/live/livetest.html文件在浏览器里打开客户端应用程序来观看实况流
要使用FLVPlayback组建作为客户端,设置连接路径的参数为发布点和流的名字的URL:(rtmp//localhost/live/livestream,默认)。并且将isLive参数设置为true。
2.1.3修改实况服务
1,复制RootInstall/applications/live文件夹并给它一个新的名字,例如live2.在这个例子中,新的实况服务在RootInstall/applications/live2路径下
你可以按照需要创建很多实况服务的实例。
2.打开fms.ini文件(在RootInstall/conf目录下)添加一个新的条目来设置新服务的路径,例如LIVE2_DIR = C:\Program Files\Adobe\Flash Media Server 3\applications\live2.
3.打开RootInstall/applications/live2 目录下的Application.xml文件改变虚拟路径条目为:<Streams>/;${LIVE2_DIR}</Streams>.
4,重启Flash media server
5.客户端可以用rtmp://flashmediaserver/live2/streamname这个URL来连接到发布点。如果客户端是FLVPlayback组建,设置连接路径参数为发布点的URL加上流的名字,设置isLive参数为true.
2.1.4取消实况服务
将所有的实况服务文件夹移动到application文件夹外面。
2.2使用视屏点播服务
2.2.1关于视频点播服务
视频点播服务(video on demand)服务让你不要创建任何的应用程序或配饰服务器就能流式的播放录好的视频。你可以使用Flash CS3和flash8的FLVPlayback组建做客户端。将Mp4,FLV和MP3文件复制到vod application的媒体文件下就可以向客户端传播流了。
2.2.2测试视频点播服务
1.做下列事情之一:
双击RootInstall/samples/applications/vod/vodtest.swf文件在一个单机的flash player打开一个客户端
双击RootInstall/samples/applications/vod/vodtest.html文件在浏览器里面打开一个客户端。
2.点击go.
3(可选)要播放其他版本的范例文件,从pop-up菜单里面选择文件然后点击go。
2.2.3修改视频点播服务
1,复制RootInstall/applications/vod文件夹并给它一个新的名字,例如vod2.在这个例子中,新的视频点播服务在RootInstall/applications/vod2路径下
你可以按照需要创建很多实况服务的实例。
2.打开fms.ini文件(在RootInstall/conf目录下)添加一个新的条目来设置新服务的路径,例如VOD2_DIR = C:\Program Files\Adobe\Flash Media Server 3\applications\vod2.
3.打开RootInstall/applications/vod2 目录下的Application.xml文件改变虚拟路径条目为:<Streams>/;${VOD2_DIR}</Streams>.
4,重启Flash media server
5.将编码好的媒体文件放到你在fms.ini里面定义好的文件夹下(在这个例子里面就是C:\Program Files\Adobe\Flash Media Server 3\applications\vod2\media)。媒体文件现在可以通过rtmp://flashmediaserver/vod2/filename这个URL得到。
注释:你不需要详细说明这个URL的子文件夹;meida目录已经在fms.ini文件里面被你设置了。
2.2.4取消视频点播服务
将所有的视频点播服务文件夹移动到application文件夹外面。
2.3为流服务创建客户端
2.3.1创建一个客户端应用程序
以提供的范例客户端代码为例(RootInstall/samples/applications/live and RootInstall/samples/applications/vod),按照需要而修改它。
客户端的视频点播和实况服务可以使用出了相面两个以外的所有flash player的特性
录制实况流(NetStream.publish("streamName", "record")).
远程调用shared objects(SharedObject.getRemote()).
2.3.2使用FLVPlayback组件
你可以使用flash 8和flash cs3里面的FLVPlayback组件当作视频点播和实况服务的客户端。将连接路径参数设置成流的URL,如果式连接到实况服务的话设置isLive参数为true.
2.3.3连接到一个流服务
流服务希望写入的URI是一下的格式rtmp://hostName/serviceName/instanceName/[formatType:]fileOrStreamName。
hostName:是Flash Media Server的域名。
serviceName:或者是vod或者是live。
InstanceName:如果客户度连接到默认的实例,你可以或者选择或者忽略实例的名字或者使用_definst_.如果客户端连接到一个你已经创建的一个实例,比如room1,就使用那个名字。
formatType:是一种支持的格式flv:, mp3: or mp4:. 如果没有特别标注的话默认的格式是 flv:.
fileOrStreamName:或者是一个文件名(例如my_video.mp4),或者是一个路径名(例如subdir/subdir2/my_video.mp4)。如果文件是FLV或MP3万恶渐渐的话,你不要特别标注文件格式,如果是一个Mp4文件,你必须标注格式,例如rtmp://www.examplemediaserver.com/vod/ClassicFilms/mp4:AnOldMovie.mp4.
2.3.4允许从特别制定的域的连接
默认的,客户端可以从任何地方连接到实况和视频点播服务。要限制连接客户端的域,编辑服务的application文件夹下的文本文件
找到the RootInstall/applications/live 或RootInstall/applications/vod folder做下列事情之一
要为SWF客户端添加一个域,编辑allowedSWFdomains.txt文件
要为HTML客户端添加一个域,编辑allowedHTMLdomains.txt文件。
这些TXT文件抱恨了添加域的细节信息。