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. gulp自动刷新插件

    gulp自动刷新的插件很多,但是感觉最好用的还是 browser-sync 插件.如果不想用命令行,也可以使用 browser-sync界面工具 先安装 browser-sync 插件: npm in ...

  2. poj 1054 The Troublesome Frog (暴力搜索 + 剪枝优化)

    题目链接 看到分类里是dp,结果想了半天,也没想出来,搜了一下题解,全是暴力! 不过剪枝很重要,下面我的代码 266ms. 题意: 在一个矩阵方格里面,青蛙在里面跳,但是青蛙每一步都是等长的跳, 从一 ...

  3. POJ 3090 (欧拉函数) Visible Lattice Points

    题意: UVa 10820 这两个题是同一道题目,只是公式有点区别. 给出范围为(0, 0)到(n, n)的整点,你站在原点处,问有多少个整点可见. 对于点(x, y), 若g = gcd(x, y) ...

  4. UVA 575 Skew Binary (水)

    题意:根据这种进制的算法,例如,给你一个左式,要求推出右式.(其实右式就是一个十进制数,根据这种进位的方法来转成特殊进制的数.) 思路:观察转换特点,有点类似于二进制,但是其在后面还减一了.比如25- ...

  5. noip2001提高组题解

    今天继续感动滚粗.第一次提交170分,不能多说. 第一题:一元三次方程 明明是寒假讲分治的时候做过的题居然还是WA而且只拿了60分,说明知识掌握实在不够牢固. 寒假做的是保留4位小数,原题只保留2位, ...

  6. ffmpeg中swscale 的用法

    移植ffmpeg过程中,遇到swscale的用法问题,所以查到这篇文章.文章虽然已经过去很长时间,但是还有颇多可以借鉴之处.谢谢“咕咕鐘". 转自:http://guguclock.blog ...

  7. linux lnmp编译安装

    关闭SELINUX vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled ...

  8. 【转】This version of the rendering library is more recent than your version of ADT plug-in. Please update ADT plug-in

    原文网址:http://1982106a.blog.163.com/blog/static/8436495620149239361692/ 预览layout.xml文件时提示: This versio ...

  9. web项目Log4j日志输出路径配置问题

    问题描述:一个web项目想在一个tomcat下运行多个实例(通过修改war包名称的实现),然后每个实例都将日志输出到tomcat的logs目录下实例名命名的文件夹下进行区分查看每个实例日志,要求通过尽 ...

  10. JAX-RPC

    JAX-RPC(基于可扩展标记语言XML的远程过程调用的Java应用程序接口)是Java Web服务开发包(WSDP)的应用程序接口(API),WSDP能使Java开发者在Web服务或其他的Web应用 ...