开发环境及工具准备:
Adobe Flex Builder 3
FlashMeidaServer 2 及以上(简称:FMS 本人有一个FMS2破解版,需要的话联系我)
技能准备:
ActionScript 3 (简称:AS,本文中代码为AS)
本功能的实现方式基于FMS为主,ActionScript为辅,双方交互的原则,示意图如下:
描述:教师端采集本地摄像头视频及MIC音频通过AS发布到FMS,学生端通过AS连接FMS服务器或者教师传输的音视频数据进行播放。至此为止,即可实现教师的音视频数据共享(即直播效果)。
具体实现(教师端):
STEP1:在Flex Application 的creationComplete事件调用init方法
private var conn:NetConnection = new NetConnection();//用来连接FMS private var stream:NetStream = null;//盛放音视频数据 //FMS连接串(例如:rtmp://192.168.1.101/fmsapp) //其中需要在FMS_HOME/applications/新建一个fmsapp的文件夹 private var fms:String = ""; private function init():void { //轨道通信,必须要设置 conn.objectEncoding = ObjectEncoding.AMF0 ; //共享对象轨道通信设置 SharedObject.defaultObjectEncoding = ObjectEncoding.AMF0; //连接FMS服务器 conn.connect(fms) ; //连接FMS结果事件处理器 conn.addEventListener(NetStatusEvent.NET_STATUS,connectFMS) ; }
STEP2:连接FMS成功后,发布音视频数据到FMS服务端
private function connectFMS(e:NetStatusEvent):void { var result:String = e.info.code ;//连接FMS的返回代码 switch(result) { case "NetConnection.Connect.Success"://连接FMS成功 playStream();//开发传送音视频数据 break; case "NetStream.Play.StreamNotFound": Alert.show( "视频流没有找到"); break; default : Alert.show( "连接服务器失败,检查网络环境"); break ; } } public var cam1:Camera = null;//摄像头对象 private var mir:Microphone = null;//麦克对象 private function playStream():void { stream = new NetStream(conn);//创建于FMS连接相关的音视频数据流对象 cam1 = Camera.getCamera("0");//获得默认摄像头 cam1.setMode(320,240,15); //经试验:320*240效果较佳而占用网络流量较小 15为keyFrame cam1.setQuality(100 * 1000,90); //100*1000为上传带宽 90为图像质量 mir = Microphone.getMicrophone();//获得麦克对象 mir.setUseEchoSuppression(true);//抑制回声 stream.attachAudio(mir);//将音频加入到流中 stream.attachCamera(cam1);//将视频加入到流中 vd.attachCamera(cam1);//在Flex Application中放一个VideoDisplay对象,用来本地观看图像 stream.publish("conf","live");//将音视频数据发布到FMS服务器上,流名称为:conf 发布类型为:live(实时) }
至此:教师已将音视频数据发布到FMS。
需要注意的点:摄像头对象的分辨率设置,这样会直接影响到图像的清晰度和传送数据量的大小。
接下来将由学生端对此数据进行读取
STEP1:如教师端STEP1进行相关设置
STEP2:成功连接FMS服务器后,进行音视频数据播放(学生端playStream方法的实现)
stream = new NetStream(conn);//学生端的流对象 conn为NetConnection对象 //学生端的缓冲时间。此参数很重要,很多朋友反应:播放视频不流畅。 //要明确一个观点:没有绝对的实时直播,所谓的直播其实就是在不断的播放缓冲区的数据 stream.bufferTime = 15; //按照道理来说这里应该是检测缓冲区的代码 //但本程序为展示直播的核心将此代码略掉,有兴趣的朋友可以问我 v = new Video(); v.attachNetStream(stream); //将音视频流附加到video对象中 v.width = vd.width; v.height = vd.height; v.smoothing = true; vd.addChildAt(v,1);//VideoDisplay通过对Video的添加来播放音视频流 stream.play("conf");//播放教师发布的conf流
至此,学生将实现音视频流的播放。
需要注意的点:缓冲区的设置,实际应用中应根据实际客户带宽来设置缓冲区大小
大家最好找个局域网环境测试下,最好不要在本机测试,这会隐藏很多问题,有什么疑问大家尽管留言!
原文地址:http://mhqawjh.iteye.com/blog/726913
相关推荐
音视频直播技术是现代互联网应用中的重要组成部分,广泛应用于在线教育、娱乐、会议等领域。本文将深入探讨音视频直播中的关键技术点,包括流媒体协议、关键参数以及RTMP和RTSP等协议的工作原理。 首先,流媒体协议...
描述中提到的“flash adobe air 开发的财经音视频,rtmp推送”,暗示了该软件可能被用于财经领域的实时音视频直播或录制。RTMP(Real-Time Messaging Protocol)是一种广泛应用于在线流媒体传输的协议,它允许将音...
HTML5是现代网页开发的关键技术之一,特别是在实现音视频播放方面。这个项目专注于创建一个功能齐全的网页版音视频播放器,它集成了多种高级功能,以提供优秀的用户体验。以下是对这个项目中涉及的主要知识点的详细...
在Android平台上,实现录屏直播并推送音视频到服务器,通常涉及到多个技术栈的整合,包括屏幕捕获、音视频编码、网络传输等。这里主要介绍如何使用RTMP(Real-Time Messaging Protocol)协议来实现这一功能,以及...
文件`library.swf`可能是包含Flash客户端代码的SWF文件,它实现了与Adobe Stratus的交互以及音视频的处理。而`catalog.xml`可能是描述Flash组件或库的文件,用于构建Flash客户端界面。 总之,通过Adobe Stratus、...
1、支持标准的Flash音视频编码,客户端接收无需下载播放器 2、友好的操作界面,无需专业培训即可快速实现网络直播 3、支持智能录像,录像文件直接发布供网络点播 4、支持插入字幕、台标,支持电脑、手机、机顶盒等...
【FLASH影音在线播放器设计与实现】\n\n在当今互联网时代,随着宽带网络的普及,用户对于在线观看音频和视频的需求日益增长。基于这一背景,"FLASH影音在线播放器"的设计与实现成为了一个重要的课题。这篇论文主要...
在Android平台上实现录屏直播并推送音视频,通常涉及到多个技术环节,包括屏幕录制、音频录制、RTMP协议以及服务器配置。以下是对这些知识点的详细解释: 1. **Android屏幕录制**: Android系统提供了`Media...
1. **Flash Player**: Flash Player是Adobe开发的一个浏览器插件,曾经广泛用于播放网页上的多媒体内容,包括音频和视频。在本项目中,它是实现语音聊天的基础平台。 2. **ActionScript**: ActionScript是Flash的...
《万能音视频转换软件:全面解析与应用指南》 音视频转换软件是数字时代中极为重要的工具之一,尤其在多媒体文件的...无论你是普通用户还是专业工作者,都能从中受益,实现音视频文件在各种设备和平台之间的无缝对接。
《FLASH影音在线播放器的设计与实现--功能实现》是一篇深度探讨如何构建一款基于Flash技术的在线媒体播放器的毕业论文。这篇论文结合了实际的设计与实现过程,旨在阐述如何利用Flash技术为用户提供流畅、便捷的影音...
在互联网技术发展初期,Flash是实现网页多媒体内容展示的重要工具,特别是对于视频播放而言。本文将深入探讨基于Flash的.FLV格式网页视频播放器,它如何实现全屏播放、静音功能,以及如何确保与主流浏览器的兼容性。...
- 直播员可切换聊天用户,检测网络连接,预览和设置音视频。 - 直播员可查看在线用户IP,断开或屏蔽特定用户,记录操作日志。 - 直播员可播放背景音乐,设置快捷回复,暂停或恢复直播。 - 网管员设置视频窗口...
- **格式转换**:通过分离后再转换,可以实现不同格式间的转换,如将FLV音视频转换成MP3或MP4。 6. **注意事项** - 软件仅支持FLV和F4V格式,对于其他格式的文件,需先进行格式转换。 - 分离过程中应确保源文件...
总的来说,Flash Media Live Encoder 3.2 简体中文版为中国的直播创作者提供了一个便捷、高效的工具,帮助他们轻松实现高质量的视频直播。配合压缩包内的基本配置文件和测试页面,用户可以快速搭建起自己的视频直播...
在Android平台上构建视频直播系统,首要任务是理解和适应手机直播的特性,包括硬件配置、平台架构以及音视频处理需求。关键在于采用FFmpeg这一强大的音视频编码软件,对原始的音频和视频数据进行压缩处理,以减少...
【公司晚会年会活动现场网络直播实时在线视频直播平台】是一种技术解决方案,用于将活动现场的视频内容实时传输到互联网上,让不能亲临现场的人也能观看。这种系统通常由四个核心部分构成: 1. **前端采集设备**:...
### 音视频编码格式汇总与技术解析 #### 一、音频编解码格式概述 音频编解码格式是指用于音频数据压缩与解压缩的技术标准。这些格式被广泛应用于各种应用场景中,例如网络传输、多媒体播放等。下面我们将详细介绍...
1. **Flash Media Server (FMS)**:FMS提供实时的流媒体服务,支持RTMP(Real Time Messaging Protocol)协议,使得Flash Player和Flex应用能够进行低延迟的音视频传输。它还支持HTTP直播和动态自适应流媒体,确保...
首先,“Flash类声音素材”是指专门为Adobe Flash这种交互式矢量图形和富媒体播放平台设计的声音资源。Flash支持多种音频格式,如WAV、MP3、M4A等,这些格式的音频文件可以被嵌入到Flash项目中,用于背景音乐、音效...