http://pxchen.iteye.com/blog/714591

发布端(Publish): 
var nc:NetConnection = new NetConnection();

nc.connect("rtmp://125.67.234.97/Red5Stream"); 
nc.addEventListener(NetStatusEvent.NET_STATUS,connectHandler);

function connectHandler(par:NetStatusEvent):void { 
    trace(par.info.code);   
    var camera:Camera = Camera.getCamera(); 
    camera.setQuality(163854,100); 
        
    var stream:NetStream = new NetStream(nc); 
    stream.attachCamera(camera); 
    stream.publish("red5"); 
}

接收端 
package { 
    import flash.display.*; 
    import flash.utils.*; 
    import flash.events.*; 
    import flash.net.*; 
    import flash.media.Video; 
    import fl.data.DataProvider; 
    import flash.media.Camera;

public class NetStreamTestDocument extends Sprite { 
        var nc:NetConnection; 
        public function NetStreamTestDocument() { 
            nc= new NetConnection(); 
            nc.connect("rtmp://125.67.234.97/Red5Stream"); 
            nc.addEventListener(NetStatusEvent.NET_STATUS,connectHandler); 
            
            
        } 
        public function connectHandler(par:NetStatusEvent):void { 
            var ns:NetStream = new NetStream(nc); 
            var video:Video=new Video(320,240) ; 
                    video.attachNetStream(ns); 
            ns.play("red5"); 
            addChild(video); 
        } 
    } 
}

服务端: 
package com.conjs;

import org.red5.server.adapter.MultiThreadedApplicationAdapter; 
import org.red5.server.api.IConnection; 
import org.red5.server.api.Red5; 
import org.red5.server.api.stream.IBroadcastStream; 
import org.red5.server.api.stream.IStreamCapableConnection; 
import org.red5.server.api.stream.support.SimpleConnectionBWConfig;

public class OtherApplication extends MultiThreadedApplicationAdapter { 
    @Override 
    public void streamPublishStart(IBroadcastStream stream) { 
        IConnection conn=Red5.getConnectionLocal(); 
        measureBandwidth(conn); 
        if (conn instanceof IStreamCapableConnection) { 
            IStreamCapableConnection streamConn = (IStreamCapableConnection) conn; 
            SimpleConnectionBWConfig bwConfig = new SimpleConnectionBWConfig(); 
            bwConfig.getChannelBandwidth()[3] = 1048576L;

bwConfig.getChannelInitialBurst()[3] = 131072L;

streamConn.setBandwidthConfigure(bwConfig);

super.streamPublishStart(stream); 
        } 
    }

@Override 
    public void streamBroadcastClose(IBroadcastStream arg0) { 
        super.streamBroadcastClose(arg0); 
    }

}

以下是官方在 H.264 和 1080P 方面支持的Demo ,我没有测试过,代码如下: 
package org.red5.demos.oflaDemo; 
import org.red5.server.adapter.ApplicationAdapter; 
import org.red5.server.api.IBandwidthConfigure; 
import org.red5.server.api.IConnection; 
import org.red5.server.api.IScope; 
import org.red5.server.api.stream.IServerStream; 
import org.red5.server.api.stream.IStreamCapableConnection; 
import org.red5.server.api.stream.support.SimpleConnectionBWConfig;

public class Application extends ApplicationAdapter { 
    
    private IScope appScope; 
    private IServerStream serverStream;

public boolean appStart(IScope app) { 
        appScope = app; 
        return true; 
    }

public boolean appConnect(IConnection conn, Object[] params) { 
        measureBandwidth(conn); 
        if (conn instanceof IStreamCapableConnection) { 
            SimpleConnectionBWConfig bwConfig = new SimpleConnectionBWConfig(); 
            bwConfig.getChannelBandwidth()[IBandwidthConfigure.OVERALL_CHANNEL] = 
                1024 * 1024; 
            bwConfig.getChannelInitialBurst()[IBandwidthConfigure.OVERALL_CHANNEL] = 
                128 * 1024; 
            bwConfig.setUpstreamBandwidth(1024 * 1024); 
        }         
        return super.appConnect(conn, params); 
    }

public void appDisconnect(IConnection conn) { 
        if (appScope == conn.getScope() && serverStream != null) { 
            serverStream.close(); 
        } 
        super.appDisconnect(conn); 
    } 
}

Red5实现直播的更多相关文章

  1. Centos7.5 搭建Red5视频直播服务器

    一.安装java环境 yum install java-1.7.0-openjdk 详细步骤请参考 http://www.cnblogs.com/java-qzq/p/5845509.html 我的这 ...

  2. 零基础如何一步一步开始搭建高性能直播平台?现以GitChat·架构来进行说明

    前言 现在直播已经成为移动互联网时代一个新的重要流量入口,从YY.斗鱼到花椒直播,直播已经成为人们分享交流的新方式,应用场景众多,主要分为: 金融类直播:金融直播可应用于实时解盘,在线专家讲座,专家在 ...

  3. 转--2014年最新810多套android源码2.46GB免费一次性打包下载

    转载自:http://www.eoeandroid.com/thread-497046-1-1.html 感谢该博客主人无私奉献~~ 下面的源码是从今年3月份开始不断整理源码区和其他网站上的安卓例子源 ...

  4. 2014年最新720多套Android源码2.0GB免费一次性打包下载

    之前发过一个帖子,但是那个帖子有点问题我就重新发一个吧,下面的源码是我从今年3月份开始不断整理源码区和其他网站上的android源码,目前总共有720套左右,根据实现的功能被我分成了100多个类,总共 ...

  5. ym——android源代码大放送(实战开发必备)

    转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! 目录 PATH 列表 卷序列号为 000A-8F50 E:. │  javaapk.c ...

  6. 基于Red5的视频直播平台

    搭建环境:Win2008 server + jdk1.8+red5-server-1.0.6 下载地址:https://github.com/Red5 修改启动配置文件(修改为jdk路径): 安装模版 ...

  7. 利用red5搭建一个简单的流媒体直播系统

    http://blog.sina.com.cn/s/blog_51396f890102exmz.html 一.red5安装.设置. 这个过程就不多说了,参见http://blog.csdn.net/l ...

  8. Red5点播和直播的实现

    (一)        Red5流媒体服务器介绍Red5是一个采用Java开发开源的Flash流媒体服务器.它支持:把音频(MP3)和视频(FLV)转换成播放流: 录制客户端播放流(只支持FLV):共享 ...

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

    Flex 是一个高效.免费的开源框架,可用于构建具有表现力的 Web应用程序,这些应用程序利用Adobe Flash Player和Adobe AIR, 可以实现跨浏览器.桌面和操作系统.虽然只能使用 ...

随机推荐

  1. MySQL 5.7 SYS scheme解析

    sys 库是MySQL 5.7其中的一个系统库,里面有很多很好用的跟性能相关的视图.函数和存储过程, 增强MySQL的易用性 例如:哪些语句使用了临时表,哪个用户请求了最多的io,哪个线程占用了最多的 ...

  2. 撤销 git reset --hard HEAD~1

    方法一: 1.先通过git reflog找到上一次的历史提交记录id,git如果没有特意设置,是会保存记录一段时间的(a few days or a month) 2.git reset --hard ...

  3. hive环境的搭建

    hive 默认用的是derby数据库存储源数据,在这改为 mysql来存储: 1.hive和关系数据库的对照关系 hive 所要查询的数据保存在HDFS中: hive 中的数据库和表对应HDFS中的文 ...

  4. 【Todo】抽象渗漏法则 & 找到理想员工 & 软件开发成功 12 法则 & Joel on Software

    Joel应该是个软件专家,这是他文章汇总的中文版本: http://local.joelonsoftware.com/wiki/Chinese_%28Simplified%29 其中有几篇值得好好看看 ...

  5. bzoj2324营救皮卡丘

    费用流. 建图比较重要. 1.S->id[0][0] flow=k. 表示k条路径. 2.S->id[i][0] flow=1, 每次消耗1流量就补充1流量. 3.id[i][1]-> ...

  6. SQL查看数据库所用用户表数量和使用的空间

    SQL Server数据库管理员通常硬盘空间奋斗,不断努力清理“表”,撰写许多查询,发现该表使用的硬盘空间. 本文介绍了如何查询系统表的空间使用情况,帮助数据库管理员识别正在使用最多的空间,以便存档旧 ...

  7. LA 3485 (积分 辛普森自适应法) Bridge

    桥的间隔数为n = ceil(B/D),每段绳子的长度为L / n,相邻两塔之间的距离为 B / n 主要问题还是在于已知抛物线的开口宽度w 和 抛物线的高度h 求抛物线的长度 弧长积分公式为: 设抛 ...

  8. UVa 12096 The SetStack Computer【STL】

    题意:给出一个空的栈,支持集合的操作,求每次操作后,栈顶集合的元素个数 从紫书给的例子 A={{},{{}}} B={{},{{{}}}} A是栈顶元素,A是一个集合,同时作为一个集合的A,它自身里面 ...

  9. fancybox 关闭弹出窗口 parent.$.fancybox.close(); 无反应 fancybox 关闭弹出窗口父页面自动刷新,弹出子窗口前后事件

    当我们在父页面使用 fancybox 弹出窗口后,如果想自己手动关闭,则可以 function Cancel() { parent.$.fancybox.close(); } 如果关闭没有反应,最好看 ...

  10. noip2006提高组题解

    第一题:能量项链 区间型动态规划 据说这题在当年坑了很多人. f(i, j) 表示从第i个珠子开始合并j个珠子所释放的最大能量. f(i, j) = max{ f(i, k} + f(i+k, j-k ...