FMS項目總結

FMS是ADOBE的流媒體服務器。目前大多數聊題室,視頻提供服務商採用FMS Server。

1、FMS採用的是 rtmp協議
rtmp介紹:(參考資料)
RTMP协议详解(一)
Real Time Messaging Protocol(实时消息传送协议协议)是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的私有协议。
具体使用RTMP的AS代码大概如下:
  var videoInstance:Video = your_video_instance;
  var nc:NetConnection = new NetConnection();
  var connected:Boolean = nc.connect("rtmp://localhost/myapp");
  var ns:NetStream = new NetStream(nc);
  videoInstance.attachVideo(ns);
ns.play("flvName");
Adobe也在官方网站已经提供了RTMP协议的官方文档说明,为什么要写这个系列文章最大的原因只是对前一段工作的一个总结和回顾,最近两个月,实现了一个RTMP Server的c++版本,把公司的流媒体服务和flash无缝对接起来。希望我的文字能给后来研究这个协议的同学有一定的帮助。
RTMP协议是一个基于TCP的高层协议族,当然这个玩意据说还有UDP协议版本的,不过现在还没有出来,好像Adobe下一版本的FMS会提供支持。下文将要描述的是TCP协议版本的协议。
   RTMP协议的概要理解:
RTMP协议是为了和flash之间交换信令以及媒体数据。为了提高使用效率信令和媒体数据都是使用相同的机制。因为是相同的机制Adobe就整出来了一些比较搞人的概念,当然每个协议第一次接触都是比较难理解的。
        在RTMP协议中信令和媒体数据都称之为Message,在网络中传输这些Message,为了区分它们肯定是要加一个Message  head的,所以RTMP协议也有一个Message head,还有一个问题因为RTMP协议是基于TCP的,由于TCP的包长度是有限制的(一般来说不超过1500个字节),而RTMP的Message长度是有可能很大的,像一个视频帧的包可能会有几十甚至几千K,这个问题就必然有一个分片的问题,在RTMP协议中对应的说法就是chunk,每一个Message + head都是由一个和多个chunk组成的。到这里对RTMP协议的概要理解就算完了。

2、RTMP和HTTP的區別和優異

RTMP只能採用flash player的播放器,也就是必須基於flash。
優點:實時播放。支持舊版IE等傳統瀏覽器。統一的視頻源。視頻無法被直接下載。
缺點:不兼容蘋果設備等。

HTTP採用的是HTML VIDEO標籤。支持IPAD等不支持flash的移動設備
優點:跨平台。不用安裝插件。支持ipad等
缺點:
1、不支持舊版IE等傳統瀏覽器。
2、若要支持多種瀏覽器,必須提供多種格式的視頻。如firefox支持ogg,chrome支持mp4.若要支持兩者必須同時提供2種視頻格式。
3、無法保證視頻的安全性。可通過url直接下載。
4、不支持實時播放。


RTMP的播放地址格式:
rtmp://192.168.2.XXX/vod/mp4:/hls-vod/mmc/qqqq/20121129/1/video.mp4

HTTP的播放地址格式:
192.168.2.XXX:8134/vod/hls-vod/mmc/qqqq/20121129/1/video.mp4

視頻測試地址
(OSMF播放器)
http://192.168.2.XXX:8134/OSFMPlayer/OSMFPlayer.html
HTTP測試
http://192.168.2.XXX:8134/videoPlayer/videoplayer.html

參考:http://en.wikipedia.org/wiki/Real_Time_Messaging_Protocol

2、M3U8
在FMS SERVER,上傳一個視頻文件會自動生成一個對應的m3u8文件。而這個文件在FMS SERVER服務器是找不到的。同時要在視頻文件的同級目錄下手動創建一個m3u8文件。
test1.mp4.m3u8內容格式如下
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2000000
http://192.168.2.xxx:8134/hls-vod/mmc/project/20121126/1/test1.mp4.m3u8

只有最後一行是變化的。前面2行是固定的。
後面可能還有其它內容。但是不影響視頻播放。


3、视频截图类包 ffmpeg
在win7上安装不了,只能在xp和linux系统上安装。

fmle HTTP LIVE STREAM 直播流的參考資料:
http://www.onyxservers.com/help/How_to_stream_live_video_to_iOS_iPhone_iPad_Flash.html

4、osmf 播放器
Strobe Media Playback player
下载地址
http://sourceforge.net/projects/smp.adobe/?source=dlp

这个播放器有几个问题:
a、不支持通过脚本实现全屏
b、在firefox的普通版本下,初始化视频插件非常慢,要十几秒。在chrome和firefox ESR企业版本无此问题。

可参考官方的setup.html实现自定义视频的配置。

api设置参考资料
http://www.adobe.com/devnet/flash/articles/mastering-osmf-pt1.html

http://osmf.org/dev/1.5gm/

猜你喜欢

转载自lhdst-163-com.iteye.com/blog/1743550