使用Flex 和 Red5开发简单视频直播功能

Flex 是一个高效、免费的开源框架,可用于构建具有表现力的 Web应用程序,这些应用程序利用Adobe Flash Player和Adobe AIR, 可以实现跨浏览器、桌面和操作系统。虽然只能使用 Flex 框架构建 Flex应用程序,但Adobe Flash Builder™(之前称为 Adobe Flex Builder™)软件可以通过智能编码、交互式遍历调试以及可视设计用户界面布局等功能加快开发。

使用 Flex 创建的 RIA 可运行于装有 Adobe Flash Player 插件的浏览器中,或运行于跨操作系统的 Adobe AIR上,它们可以跨所有主流浏览器、操作系统实现一致的运行。通过利用 AdobeAIR,Flex应用程序可以访问本地数据和系统资源。

Flex是通过java或者.net等非Flash途径,解释.mxml文件,并生成相应的.swf文件。Flex的component和flash的component很相似,但是有所改进增强。目前Macromedia公司已经被ADOBE公司收购。Adobe2013年01月15日将Flex捐给Apache并发布了Apache Flex4.8。

Flex和Flash的主要区别:

1、Flex侧重于应用软件、游戏的开发,flash更侧重于网页web端的展示效果。

2、Flex生成的swf文件较大,不利于网络传输,flash生成的swf文件较小,适合在网站上展示。

经典应用

1、eBay

2、纳斯达克股票市场公司

Red5的主要功能和Macromedia公司的FMS类似,提供基于Flash的流媒体服务的一款基于Java的开源流媒体服务器。它由Java语言编写,使用RTMP作为流媒体传输协议,这与FMS完全兼容。它具有流化FLV、MP3文件,实时录制客户端流为FLV文件,共享对象,实时视频播放、Remoting等功能。用Red5替换FMS后,客户端不用更改可正常运行。

实例:

1. 服务器端ApplicationAdapter:示例如下:

package org.jason.flex01;

import org.red5.server.adapter.ApplicationAdapter;

public class Application extends ApplicationAdapter{

}

2.客户端使用Flex实现摄像头获取视频并发布代码如下:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init()">
    <mx:Script>
        <!--[CDATA[
            import flash.net.NetConnection;
            import flash.net.NetStream;
            import flash.events.NetStatusEvent;
            import mx.controls.Alert;

            private var nc:NetConnection;
            private var ns:NetStream;
            private var cam:Camera;

            private function init():void{
                nc = new NetConnection();
                nc.addEventListener(NetStatusEvent.NET_STATUS,connectServerHander);
                nc.client  = this;
                nc.connect("rtmp://58.116.56.68:1935/Flex01");
            }

            private function connectServerHander(evt:NetStatusEvent):void{
                trace(evt.info.code);
                cam = Camera.getCamera();

                if(cam != null){
                    cam.setMode(313,194,30);
                    cam.setQuality(0,70);
                    ns = new NetStream(nc);
                    ns.attachCamera(cam);
                    ns.publish("red5");

                    var vi:Video = new Video();
                    vi.width = 313;
                    vi.height = 194;
                    vi.attachCamera(cam);
                    videoDisplay.addChild(vi);

                }else{
                    Alert.show("no Camera");
                }
            }

            public function onBWDone():void{

            }

        ]]-->
    </mx:Script>

    <mx:VideoDisplay x="162" y="77" width="313" height="194" id="videoDisplay"/>

</mx:Application>

客户端使用Flex play视频代码如下:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init()">

    <mx:Script>
        <!--[CDATA[

            import flash.display.*;
            import flash.utils.*;
            import flash.events.*;
            import flash.net.*;
            import flash.media.Video;
            import flash.media.Camera;

            private var nc:NetConnection;

            private function init():void{
                nc = new NetConnection();
                nc.connect("rtmp://58.116.56.68:1935/Flex01");
                nc.addEventListener(NetStatusEvent.NET_STATUS,connectHandler);
            }

            private function connectHandler(evt:NetStatusEvent):void{

                var ns:NetStream = new NetStream(nc);
                var video:Video=new Video() ;
                video.width = 313;
                video.height = 194;
                video.attachNetStream(ns);
                  ns.play("red5");
                videoDisplay.addChild(video);

            }

        ]]-->
    </mx:Script>

    <mx:Panel x="132" y="78" width="356" height="266" layout="absolute" title="现场直播" fontSize="14">
        <mx:VideoDisplay x="10" y="10" width="320" height="193" id="videoDisplay"/>
    </mx:Panel>

</mx:Application>

参考:Flex语法 --> http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool

red5流媒体服务器的搭建--->  http://blog.csdn.net/oldmtn/article/details/47110351

http://blog.sina.com.cn/s/blog_4829b9400100rmz0.html

时间: 2024-10-12 06:48:47

使用Flex 和 Red5开发简单视频直播功能的相关文章

iOS中 视频直播功能-流媒体的使用(详解)韩俊强的CSDN博客

上一篇博客:(流媒体实现视频播放和下载功能):http://blog.csdn.net/qq_31810357/article/details/50574914 最近视频直播功能比较火,处于需求,研究了一番,根据分析决定使用流媒体实现,代码简单易懂,接下来看教程: 每日更新关注:http://weibo.com/hanjunqiang  新浪微博 简单介绍: HLS 协议 : >5M会被AppStore拒绝  服务器要求低   延迟高    多平台 RTMP 协议:  电视直播   PC端使用

通过腾讯云平台实现视频直播功能

常用名词介绍: 推流:通常是指将直播的语音视频信息传输到对应平台的媒体服务器上 拉流:将媒体服务器上的资源拉取到本地 StreamName:流名称,用以实现多设备同时直播,互不影响 域名:是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置) 域名备案和配置相关问题:https://cloud.tencent.com/document/product/267/30010 推流地址/直播地址获取 打开并登录腾讯云直播:ht

教育视频直播APP开发软件

在线教育视频开发,在线教育系统,在线教育软件:151-1222-4001(微/电),在线教育平台,在线教育公众号,在线教育小程序,在线教育APP,在线教育直播,在线教育课堂讲解,在线教育定制开发 更多了解可百度搜索[王泽系统开发] 视频直播是当下最火爆的行业之一,为了迎合市场需求,直播APP迅速崛起,成为最火的移动应用app之一.见证了斗鱼.映客.虎牙等直播平台的火爆,很多企业和创业者都想要开发一款直播APP,视频直播如何实现智能化教育呢? 现代化的教育培训不应该局限于学校以及培训机构,而老师也

【iOS开发】使用iFrameExtractor实现视频直播

这是去年的时候做项目写的一篇文章了,项目背景是有一个IP摄像头(拥有网络服务器),在iPad端实现视频的实时监控,最开始去理解RTP.RTSP.H.264等等一些专业概念,经过TCP握手建立连接接收数据,最后的结果是接收到数据不知道怎么用FFMpeg进行解析,后来使用第三方程序iFrameExtractor跳过了这些麻烦的步骤,提供一个rtsp://...服务器地址即可播放视频.以下是文章内容: iOS平台视频直播功能的实现主要使用了第三方类库FFMpeg,此类库提供了视频编解码解决方案.但是该

Android中直播视频技术探究之---视频直播服务端环境搭建(Nginx+RTMP)

一.前言 前面介绍了Android中视频直播中的一个重要类ByteBuffer,不了解的同学可以 点击查看 到这里开始,我们开始动手开发了,因为我们后续肯定是需要直播视频功能,然后把视频推流到服务端,本地在进行拉流播放的流程.所以这个过程中,我们需要首先来把服务端这个中间环节的工作搞定,后续再弄推流和拉流功能.现在推流大部分都是使用RTMP/HLS协议的,关于这两个协议的区别: 所以我们服务端搭建就需要用这两个协议,不过本文放心了,不会去手动的编写一套协议代码的,谁叫这个世界属于开源呢? 需要的

视频直播取代微博不是天方夜谭

刚过去的9.3大阅兵,获得了全世界高度关注和评价.在媒体的见证下,已完美收官.此次大阅兵,中国向世界展示了走向复兴和捍国家尊严的强大力量,以及追求和平的决心.大阅兵期间,人们除了通过传统的电视,广播.报纸.杂志媒体获取信息外,还通过微博.微信.视频直播APP等新兴媒体收看收听,分享交流这一盛大庆典活动. 而视频直播app作为一种新兴的媒体形式,也首次向人们展示了它优于其他媒体的传播形式.在国内一款视频直播APP"花椒"里,一位来自阅兵观礼台的用户直播得到了其他观众的追捧,彼时的弹幕几乎

简单几步打造网络视频直播平台(转)

简单几步打造网络视频直播平台 分类:学以致用 2013-02-04 13:20 阅读(1132)评论(0) 不管是个人玩还是企业用,直播电台总是显得比较高端和神秘,今天我们来看看怎么用简单几步实现基于Flash流媒体服务器的网络视频直接直播平台. 1.服务端准备 常见的免费Flash流媒体服务器有国产的UMS和国际开源的Red5,UMS只有windows平台安装包,而用java开发的Red5更秉承了开源软件一贯兼容特色,可以多平台运行. UMS相对简单,全经典windows程序安装步骤,安装过程

如何开发好一款质量过硬的视频直播APP软件

如今直播大战进行的如火如荼,对于开发好一款质量过硬的视频直播APP软件,后端直播系统也是其重要的支撑点所在,搭建完整的视频直播APP系统更是重中之重,对于源码的原生开发方案也会涉及其中.今天就跟大家详细的阐述下有关直播APP×××直播平台的具体方案.目前实现一个直播平台从推流到拉流主要由五部分构成: 1.采集通过调用摄像头.麦克风直接采集视音频数据,一般视频采集的数据用RGB或者YUV格式.音频采集数据采用PCM格式,由于采集的原始数据体积非常大,需要经过压缩技术处理来提高传输效率.并且对于采集

视频直播app开发的基本功能

视频直播APP开发到目前为止都还是热门的一个行业,而且发展到现在直播的种类非常多,很多行业都打入了直播行业,再也不是单纯的人物直播这么单一了.视频直播APP开发行业就像是吃螃蟹,来的早的人不懂如何吃,来得晚的人只能眼睁睁的看着剩下的壳.只有深入了解直播行业,才能解决开发的痛点.拓幻科技认为,相对电脑直播来说,视频直播APP开发使得直播更加便利,用户只需打开手机便可直播,简单方便,因此一上线便备受用户喜爱. 移动视频直播市场从2017年5月移动APP top500排行榜可以开出视频直播APP正在爆