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. How to Determine the Version of Oracle XML Publisher for Oracle E-Business Suite 11i and Release 12 (Doc ID 362496.1)

    Modified: 29-Mar-2014 Type: HOWTO In this DocumentGoal   Solution   1. Based upon an output file gen ...

  2. [Codeforces667A]Pouring Rain(数学,几何)

    题目链接:http://codeforces.com/contest/667/problem/A 题意:一个杯子里有水,一个人在喝并且同时在往里倒.问这个人能不能喝完,多久能喝完. 把相关变量都量化成 ...

  3. TUXEDO错误解决方案

    错误1: root@tfjus:/opt/tuxedo/simpapp# buildclient -f simpcl.c -o simpcl simpcl.c: In function 'main': ...

  4. 对于oracle监听器的配置

    oracle 的 net configuration  assist中配置完第一项的监听程序配置(对应文件listener.ora)之后,还要重新配置下第三项本地网络服务名配置(对应文件tnsname ...

  5. 石子合并(四边形不等式优化dp) POJ1160

    该来的总是要来的———————— 经典问题,石子合并. 对于 f[i][j]= min{f[i][k]+f[k+1][j]+w[i][j]} From 黑书 凸四边形不等式:w[a][c]+w[b][ ...

  6. UVa 11178 (简单练习) Morley's Theorem

    题意: Morley定理:任意三角形中,每个角的三等分线,相交出来的三个点构成一个正三角形. 不过这和题目关系不大,题目所求是正三角形的三个点的坐标,保留6位小数. 分析: 由于对称性,求出D点,EF ...

  7. Jqgrid入门-别具特色的Pager Bar (四)

    Pager Bar位于表格最下边.默认情况下,分为三部分.如图: 第一部分:导航按钮栏(Navigator) 第二部分:页码栏(Pager) 第三部分:记录信息栏(Record)         要实 ...

  8. git - svn 平滑到 git

    1. 建立自己的git仓库,需要是空git仓库 2. checkout 你的 git仓库 3. svn忽略.git文件,忽略.git  .gitignore 4. 把 .git文件拷到你的 svn仓库 ...

  9. oracle 回收站管理

    oracle10g,在pl/sql中选中删除后会出现类似:BIN$nJ5JuP9cQmqPaArFei384g==$0的表. 1.查看回收站 select * from user_recyclebin ...

  10. memcachedd基础

    系列文章导航: memcached完全剖析–1. memcached的基础 memcached全面剖析–2. 理解memcached的内存存储 memcached全面剖析–3. memcached的删 ...