[AS3]rtmp协议的视频如何播放
RTMP 协议MP4(f4v)格式视频VOD点播实现过程
大致过程如下(未考虑Seek、客户端SetBufferLength指令等):
1. flash player发送play点播指令
2. 服务器返回ChunkSize、UserControlMsg(StreamBegin)、onStatus(NetStream.Play.Reset)onStatus(NetStream.Play.Start)、RtmpSampleAccess(与live直播相同)
3. 返回空音频、onStatus(NetStream.Data.Start)、onMetaData、视频配置帧、音频配置帧
4. 连续返回音视频帧,为了避免CPU过高,发送完一帧后应该暂停很小的时间,我用5ms。
5. 支持rtmp协议的视频播放器下载 http://www.cuplayer.com/cuplayer/index.html
6. 视频播放器调用rtmp文件的说明:http://www.cuplayer.com/cuplayer/help/Help411.html
AS3代码调用rtmp视频代码参考:
- var fmsIP:String = "127.0.0.1";
- var fmsPath:String = "rtmp://" + fmsIP + "/audioOnLine_fms/";
- var myNC:NetConnection = new NetConnection();
- myNC.objectEncoding = ObjectEncoding.AMF0;
- myNC.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
- myNC.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
- function netStatusHandler(event:NetStatusEvent):void
- {
- switch (event.info.code)
- {
- case "NetConnection.Connect.Success":
- trace("CuPlayer.com提示连接成功!")
- getStream();
- break;
- case "NetStream.Play.StreamNotFound":
- trace("未找到视频文件: " + videoURL);
- break;
- }
- }
- function securityErrorHandler(event:SecurityErrorEvent):void
- {
- trace("CuPlayer.com提示安全沙箱错误侦听: " + event);
- }
- function getStream():void
- {
- var myNS:NetStream = new NetStream(myNC);
- myNS.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
- movie.Live_video.attachNetStream(myNS);
- myNS.play("cuplayer");
- }
- myNC.connect(fmsPath)
播放fms内测试视频如下图:
相关链接: [AS3]RTMP流媒体协议在视频系统中应用的优势
[AS3]RTMP协议的分析与研究
[AS3]as3服务端FMS常用方法属性参考
[AS3]FMS播放器连接fms的几种返回状态
RTMP协议与RTMP视频播放器的应用
热门文章推荐
- [FMS]Adobe FMS产品(Adobe Flash Media Server)使用介绍(组图)
- [FMS]Flash Media Server之教程附示例代码
- [RTMP]国产RTMP/HLS直播服务器simple-rtmp-server
- [WOWZA]用wowza流媒体服务器发布和播放直播流(RTMP)
- [RTMP]又一款rtmp类的服务器openrtmfp流媒体服务器
- [RTMP]adobe之FMS视频直播解决方案流程介绍(组图)
- [RTMP协议]实时消息传输协议 (RTMP) 常识性介绍
- [FMS]Adobe的Flash Media Server服务器(FMS服务器)安装