·您当前的位置:主页 > 技术教程 > FMS教程 >

[FMS]adobe FMS配置实现(FMS/HLS/HDS)功能经验

时间:2013-07-24 16:02单眼皮的老虎
Adobe的Http Dynamic Streaming是针对苹果的HLS方案提出基于HTTP的流媒体传输方案,基于其方案说明,它既能支持HTTP也能支持RTMP,既能支持点播(VOD),也支持直播。 因此配了一下此方案,过程如下

  Adobe的Http Dynamic Streaming是针对苹果的HLS方案提出基于HTTP的流媒体传输方案,基于其方案说明,它既能支持HTTP也能支持RTMP,既能支持点播(VOD),也支持直播。 因此配了一下此方案,过程如下:

    服务器环境:LINUX X86-64 8G内存 (我选择的试验方案是将FMS和Apache装到同一台机器上,分布式的安装这里不表)

软件环境: (此过程只保证在对应的软件版本下配置出来,Adobe的软件也在不停的变化中,其他版本自行调研)

    Flash Media Server 4.5 for Linux Development版

    OSMF Simple Player For Http Dynamic Streaming 下载地址:  http://www.osmf.org/downloads/OSFMPlayer_zeri2.zip

    Apache2 (我的LINUX X86-64 Server上自带的已经有了Apache2,FMS4.5安装过程中也会安装一个Apache2,二者可以共存,不会冲突)

 

http://www.cuplayer.com/PcIOSAndroid/


下面是安装配置过程:

1)安装FMS4.5,默认安装到/opt/adobe/fms/

               以root方式登录Linux,解压FMS4.5到 ./FMS4.5目录下,cd 进入其下的linux目录,

              >tar -zxf FlashMediaServer4.5_x64.tar.gz

              >cd FMS_4_5_0_r297   (注:FMS_4_5_0_r297是上一步解压出来的目录)

             >./installFMS

             按照步骤提示安装即可,注意2点的就是:

             1.1) 选择安装一个自带的Apache (我们系统也已经有一个Apache2,后面会说如何共存)

             1.2) 创建一个管理用户并记住密码

FMS4.5被成功安装到了/opt/adobe/fms目录下,这里将此安装目录用rootinstall表示,方便后面引用。

2) 下载安装OSMF Simple Player,将下载到的Player解压并放到: /opt/adobe/fms/webroot/OSFMPlayer 目录中

3) 配置:

3.1) 默认情况向, FMS监听80端口接收traffic然后传递给Apache的8134端口(FMS自带的Apache被配成了监听8134端口),这个传递过程在高网络负载下会带来性能的问题。因此,做以下配置来解决这个问题。

          修改rootinstall/conf/fms.ini, 将其中的ADAPTOR.HOSTPORT = :1935,80一行,改为ADAPTOR.HOSTPORT =:1935; 不让FMS监听80端口;

          同时,将其中 HTTPPROXY.HOST = :8134一行,改为:  HTTPPROXY.HOST =

          这样便去掉了以上的代理转发过程。
3.2) rootinstall/Apache2.2/conf/httpd.conf文件中的 Listen 8134 一行不用更改,这样便让FMS 安装的Apache继续监听8134端口,而我们系统中的Apache仍监听80端口,这样便不会冲突。(当然这样带来的坏处就是后面任何HTTP访问都 需要带8134,我们试验一下,没有太大问题。)

3.3) HTTP Origin Module 不用配置,FMS4.5自带安装的Apache都已经配置好了这些支持Http Dynamic Streaming的模块,主要用于点播 和直播时下发流媒体数据到观看端;


3.4) 找一个装有摄像头的电脑(我用的是WinXP)用于直播视频编码端, 安装Flash Media Live Encoder 3.2到
D:\Program Files\Adobe\Flash Media Live Encoder 3.2目录下,打开其子目录Conf下面的config.xml文件,修改/flashmedialiveencoder_config /mbrconfig/streamsynchronization/enable节点值为true.

    (使用绝对时间)
<mbrconfig>
<streamsynchronization>
<enable>true</enable>

3.5) 配置FMS server在直播时使用绝对时间,打开rootinstall/applications/livepkgr/Application.xml,修改 /Application/StreamManager/Live/AssumeAbsoluteTime节点为true.
<Application>
<StreamManager>
<Live>
<AssumeAbsoluteTime>true</AssumeAbsoluteTime>
</Live>
</StreamManager>
</Application>

3.6 配置rootinstall/conf/Server.xml,修改
<Root> 
<Server>
<ResourceLimits> 
<RecBuffer>
<MaxFlushTime> 3 <MaxFlushTime>
将<MaxFlushTime>的值改为1.

4) 验证直播和点播
>cd rootinstall
>./fmsmgr server fms restart  -- 重新启动FMS 
>./fmsmgr adminserver restart -- 重新启动Admin Server

   4.1)验证VOD 是按Dynmaic Http Streaming 来的

   用FireFox (with FireBug)或Google Chrome浏览器打开 http://yourserverip:8134/
可以看到FMS server安装后的默认主页,里面有
1 - “Launch Flash Media Administration Console”,可以通过此入口来管理FMS server(用安装时创建的用户名和密码)
2 - 在该主页的中部右边,有“(HDS) HTTP Dynamic Streaming sample” 点击进去,可以看到视频播放界面,用FireBug或Google Chrome打开开发者工具界面,切换到network选项中,可以看到视频播放时是按段下载的,即验证HTTP Dynamic Streaming VOD方式是成功的。

   4.2) 验证直播成功
启动上面安装的Flash Media Live Encoder 3.2,选preset Custom, 视频选H264,29.9fps,分辨率352x288,码率可选3个100, 200, 350,H264可设置每2秒一个关键帧等,选MP3做音频等。
在右边的Stream to Flash Media Server的FMS URL 里面填上:rtmp://yourserverip/livepkgr,在Stream一栏填上:livestream%i?adbe-live- event=liveevent (如果上面选了MBR3个码率直播),如果只选了一个码率直播则填上:livestream?adbe-live-event=liveevent
然后点开始即可发布直播。

        用浏览器打开上面安装的OSMFPlayer:  http://yourserverip:8134/OSFMPlayer/OSMFPlayer.html
然后用OSMFPlayer播放以下地址即可看到直播图像:
http://yourserverip:8134/hds-live/livepkgr/_definst_/liveevent/livestream.f4m (一个码率SBR直播)
或三个码率直播(MBR)的情况下输入下面三个中的一个
http://yourserverip:8134/hds-live/livepkgr/_definst_/liveevent/livestream1.f4m
http://yourserverip:8134/hds-live/livepkgr/_definst_/liveevent/livestream2.f4m
http://yourserverip:8134/hds-live/livepkgr/_definst_/liveevent/livestream3.f4m

用FireBug或Google Chrome打开开发者工具界面,切换到network选项中,可以看到视频播放时是按段下载的,即验证HTTP Dynamic Streaming 直播方式是成功的。

    直播时生成的视频数据文件保存在rootinstall/applications/livepkgr/streams/_definst_/目录下
控制文件保存在rootinstall/applications/livepkgr/events/_definst_/liveevent目录下

      
5)几种文件的作用
*.f4m -- Flash Media Manifest file. Contains information about codec, resolution, and the availability of multi-bitrate files.类似于苹果HLS方案中的m3u8,是mainfest索引文件,里面包括编码,分辨率码率等

  *.f4x -- Index file. Contains the location of specific fragments within a stream.

  *.f4f -- A segment. The tool outputs one or more F4F files. Each file contains a segment of the source file. Each segment contains one or more fragments of content. A player can use a URL to address each fragment.

 

    注意:以上配置的是http dynamic streaming -- 注意思想是直播时视频发布者用RTMP协议将视频发布到FMS server上,观看者播放器OSMF通过Http协议分段将视频下载下来并播放观看;

 

    基于以上FMS服务器,还有一种配置和实现是采用RTMP进行直播, 也就是说,视频发布者用RTMP协议将视频发布到FMS server上, 观看者通过另外一个支持RTMP协议的播放器将视频通过RTMP下载播放。配置如下:

在以上配置的基础上,

1) 将rootinstall/samples目录下的videoPlayer目录拷贝到rootinstall/webroot/下,这是一个支持RTMP协议播放的Flash播放器,类似于上面的OSMF播放器。

2) 在Flash Media Live Encoder3.2那里的FMS URL那里填上: rtmp://yourserviceip/live

    在下面的stream那里填上livestream

3) 观看端用浏览器打开:http://yourserverip:8134/videoPlayer/videoPlayer.html, 然后在页面下部的stream URL那里输入:

    rtmp://yourserverip/live/livestream,并勾选中LIVE,然后点击Play Stream即可观看。

这里观看者用的是RTMP下载方式而不是HTTP下载方式。这就是区别。

    服务器环境:LINUX X86-64 8G内存 (我选择的试验方案是将FMS和Apache装到同一台机器上,分布式的安装这里不表)

软件环境: (此过程只保证在对应的软件版本下配置出来,Adobe的软件也在不停的变化中,其他版本自行调研)

    Flash Media Server 4.5 for Linux Development版

    OSMF Simple Player For Http Dynamic Streaming 下载地址:  http://www.osmf.org/downloads/OSFMPlayer_zeri2.zip

    Apache2 (我的LINUX X86-64 Server上自带的已经有了Apache2,FMS4.5安装过程中也会安装一个Apache2,二者可以共存,不会冲突)

  
下面是安装配置过程:

1)安装FMS4.5,默认安装到/opt/adobe/fms/

               以root方式登录Linux,解压FMS4.5到 ./FMS4.5目录下,cd 进入其下的linux目录,

              >tar -zxf FlashMediaServer4.5_x64.tar.gz

              >cd FMS_4_5_0_r297   (注:FMS_4_5_0_r297是上一步解压出来的目录)

             >./installFMS

             按照步骤提示安装即可,注意2点的就是:

             1.1) 选择安装一个自带的Apache (我们系统也已经有一个Apache2,后面会说如何共存)

             1.2) 创建一个管理用户并记住密码

FMS4.5被成功安装到了/opt/adobe/fms目录下,这里将此安装目录用rootinstall表示,方便后面引用。

2) 下载安装OSMF Simple Player,将下载到的Player解压并放到: /opt/adobe/fms/webroot/OSFMPlayer 目录中

3) 配置:

3.1) 默认情况向, FMS监听80端口接收traffic然后传递给Apache的8134端口(FMS自带的Apache被配成了监听8134端口),这个传递过程在高网络负载下会带来性能的问题。因此,做以下配置来解决这个问题。

          修改rootinstall/conf/fms.ini, 将其中的ADAPTOR.HOSTPORT = :1935,80一行,改为ADAPTOR.HOSTPORT =:1935; 不让FMS监听80端口;

          同时,将其中 HTTPPROXY.HOST = :8134一行,改为:  HTTPPROXY.HOST =

          这样便去掉了以上的代理转发过程。
3.2) rootinstall/Apache2.2/conf/httpd.conf文件中的 Listen 8134 一行不用更改,这样便让FMS 安装的Apache继续监听8134端口,而我们系统中的Apache仍监听80端口,这样便不会冲突。(当然这样带来的坏处就是后面任何HTTP访问都 需要带8134,我们试验一下,没有太大问题。)

3.3) HTTP Origin Module 不用配置,FMS4.5自带安装的Apache都已经配置好了这些支持Http Dynamic Streaming的模块,主要用于点播 和直播时下发流媒体数据到观看端;


3.4) 找一个装有摄像头的电脑(我用的是WinXP)用于直播视频编码端, 安装Flash Media Live Encoder 3.2到
D:\Program Files\Adobe\Flash Media Live Encoder 3.2目录下,打开其子目录Conf下面的config.xml文件,修改/flashmedialiveencoder_config /mbrconfig/streamsynchronization/enable节点值为true.

    (使用绝对时间)
<mbrconfig>
<streamsynchronization>
<enable>true</enable>

3.5) 配置FMS server在直播时使用绝对时间,打开rootinstall/applications/livepkgr/Application.xml,修改 /Application/StreamManager/Live/AssumeAbsoluteTime节点为true.
<Application>
<StreamManager>
<Live>
<AssumeAbsoluteTime>true</AssumeAbsoluteTime>
</Live>
</StreamManager>
</Application>

3.6 配置rootinstall/conf/Server.xml,修改
<Root> 
<Server>
<ResourceLimits> 
<RecBuffer>
<MaxFlushTime> 3 <MaxFlushTime>
将<MaxFlushTime>的值改为1.

4) 验证直播和点播
>cd rootinstall
>./fmsmgr server fms restart  -- 重新启动FMS 
>./fmsmgr adminserver restart -- 重新启动Admin Server

   4.1)验证VOD 是按Dynmaic Http Streaming 来的

   用FireFox (with FireBug)或Google Chrome浏览器打开 http://yourserverip:8134/
可以看到FMS server安装后的默认主页,里面有
1 - “Launch Flash Media Administration Console”,可以通过此入口来管理FMS server(用安装时创建的用户名和密码)
2 - 在该主页的中部右边,有“(HDS) HTTP Dynamic Streaming sample” 点击进去,可以看到视频播放界面,用FireBug或Google Chrome打开开发者工具界面,切换到network选项中,可以看到视频播放时是按段下载的,即验证HTTP Dynamic Streaming VOD方式是成功的。

   4.2) 验证直播成功
启动上面安装的Flash Media Live Encoder 3.2,选preset Custom, 视频选H264,29.9fps,分辨率352x288,码率可选3个100, 200, 350,H264可设置每2秒一个关键帧等,选MP3做音频等。
在右边的Stream to Flash Media Server的FMS URL 里面填上:rtmp://yourserverip/livepkgr,在Stream一栏填上:livestream%i?adbe-live- event=liveevent (如果上面选了MBR3个码率直播),如果只选了一个码率直播则填上:livestream?adbe-live-event=liveevent
然后点开始即可发布直播。

        用浏览器打开上面安装的OSMFPlayer:  http://yourserverip:8134/OSFMPlayer/OSMFPlayer.html
然后用OSMFPlayer播放以下地址即可看到直播图像:
http://yourserverip:8134/hds-live/livepkgr/_definst_/liveevent/livestream.f4m (一个码率SBR直播)
或三个码率直播(MBR)的情况下输入下面三个中的一个
http://yourserverip:8134/hds-live/livepkgr/_definst_/liveevent/livestream1.f4m
http://yourserverip:8134/hds-live/livepkgr/_definst_/liveevent/livestream2.f4m
http://yourserverip:8134/hds-live/livepkgr/_definst_/liveevent/livestream3.f4m

用FireBug或Google Chrome打开开发者工具界面,切换到network选项中,可以看到视频播放时是按段下载的,即验证HTTP Dynamic Streaming 直播方式是成功的。

    直播时生成的视频数据文件保存在rootinstall/applications/livepkgr/streams/_definst_/目录下
控制文件保存在rootinstall/applications/livepkgr/events/_definst_/liveevent目录下

      
5)几种文件的作用
*.f4m -- Flash Media Manifest file. Contains information about codec, resolution, and the availability of multi-bitrate files.类似于苹果HLS方案中的m3u8,是mainfest索引文件,里面包括编码,分辨率码率等

  *.f4x -- Index file. Contains the location of specific fragments within a stream.

  *.f4f -- A segment. The tool outputs one or more F4F files. Each file contains a segment of the source file. Each segment contains one or more fragments of content. A player can use a URL to address each fragment.

 

    注意:以上配置的是http dynamic streaming -- 注意思想是直播时视频发布者用RTMP协议将视频发布到FMS server上,观看者播放器OSMF通过Http协议分段将视频下载下来并播放观看;

 

    基于以上FMS服务器,还有一种配置和实现是采用RTMP进行直播, 也就是说,视频发布者用RTMP协议将视频发布到FMS server上, 观看者通过另外一个支持RTMP协议的播放器将视频通过RTMP下载播放。配置如下:

在以上配置的基础上,

1) 将rootinstall/samples目录下的videoPlayer目录拷贝到rootinstall/webroot/下,这是一个支持RTMP协议播放的Flash播放器,类似于上面的OSMF播放器。

2) 在Flash Media Live Encoder3.2那里的FMS URL那里填上: rtmp://yourserviceip/live

    在下面的stream那里填上livestream

3) 观看端用浏览器打开:http://yourserverip:8134/videoPlayer/videoPlayer.html, 然后在页面下部的stream URL那里输入:

    rtmp://yourserverip/live/livestream,并勾选中LIVE,然后点击Play Stream即可观看。

这里观看者用的是RTMP下载方式而不是HTTP下载方式。这就是区别。

酷播网页播放器实现HTTP Live Streaming与flash+rtmp的适配终端效果图示例

本站提供以下特色功能服务:
* 2014新服务:为用户提供跨平台多终端适配的解决方案 [跨平台技术专栏]
* 2014新服务:实现FMS4.5 / FMS5.0的HLS(m3u8)直播与点播 [演示实例]
* 2014新服务:实现多终端跨平台播放:适配pc终端、苹果终端(含IPHONE、IPAD)、安卓终端(含安卓系统手机和安卓系统平板)演示实例1>> | 演示实例2>>
* 2014新服务:实现基于hls(m3u8)技术的点播演示实例3>> ,实现基于hls(m3u8)技术的直播演示实例4>>

热门文章推荐

请稍候...