`
pxchen
  • 浏览: 90889 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Red5实现直播

    博客分类:
  • java
阅读更多
发布端(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);
    }
}
分享到:
评论

相关推荐

    Linux搭建ffmpeg+red5操作指南.docx

    ### Linux环境下搭建ffmpeg与Red5实现视频直播及推流的操作指南 #### 一、搭建ffmpeg **1. 下载ffmpeg** - 访问官方网站下载ffmpeg最新版本:`http://ffmpeg.org/download.html` - 选择适合的版本进行下载,如`...

    RED5 入门资料

    4. **直播与录制**:详细讲解如何通过RED5实现直播流的推送和接收,以及如何录制和存储流媒体内容。 5. **播放器集成**:介绍如何与各种播放器(如JW Player、FlowPlayer等)集成,以便用户可以观看流媒体内容。 6...

    red5实现的播放器可做直播

    本项目是基于Red5实现的一个播放器Demo,主要关注如何利用Red5搭建直播环境,并通过JW Player展示直播内容。 1. Red5服务器介绍: Red5是一个用Java编写的流媒体服务器,它允许开发者创建、存储和分发音频、视频、...

    【red5】实现点播-直播功能

    【Red5】实现点播-直播功能 在IT行业中,实时流媒体技术是不可或缺的一部分,尤其是在互联网娱乐、在线教育和企业通信等领域。Red5是一款开源的流媒体服务器,它允许开发者实现点播和直播功能,为用户提供流畅的...

    Red5+H5实现点播和直播

    ### Red5+H5 实现点播和直播 在探讨如何使用Red5与HTML5(简称H5)技术实现点播和直播之前,我们先来了解下这些技术的基础概念。 #### 1. Red5 介绍 Red5是一款开源的媒体服务器,支持多种协议如RTMP、HTTP-FLV等...

    Red5服务端直播流Demo

    3. **RTMP或HLS库**:Android原生不支持RTMP,所以需要第三方库,如librtmp或ijkplayer,来实现与Red5服务器的通信。 4. **网络连接管理**:处理网络连接的建立、断开、重试等,确保流媒体的稳定传输。 在...

    Red5+Android 直播系统的架构服务端的直播流工程

    **Red5与Android直播系统架构服务端概述** 在构建基于Red5和Android的直播系统时,我们需要理解几个关键概念和技术。Red5是一个开源的流媒体服务器,它支持实时传输协议(RTMP)、实时消息协议(RTMP)、HLS...

    利用red5实现视频在线播放

    【标题】:“利用Red5实现视频在线播放” 在IT领域,视频在线播放技术已经成为不可或缺的一部分,为用户提供便捷的媒体服务。Red5是一个开源的流媒体服务器,它支持实时流协议(RTMP)、实时消息协议(RTMFP)以及...

    RED5直播包括Flex和Java全部源代码

    在"RED5直播包括Flex和Java全部源代码"这个项目中,我们可以深入理解如何利用RED5搭建直播平台,并通过Flex进行客户端的交互。 首先,让我们来了解一下Flex。Flex是一种基于ActionScript 3的开发框架,主要用于构建...

    Android应用源码之Red5+Android 直播系统的架构服务端的直播流

    本项目主要探讨了如何利用Red5服务器配合Android客户端实现高效的直播流传输。Red5是一款开源的实时流媒体服务器,广泛应用于视频直播、游戏直播等领域。下面我们将深入解析Red5在Android直播系统中的作用以及相关...

    用流媒体red5实现的多功能聊天室

    本项目利用Red5实现了多功能聊天室,提供了丰富的交流功能。 在“用流媒体Red5实现的多功能聊天室”中,我们可以探讨以下几个关键知识点: 1. **Red5服务器安装与配置**:首先,你需要在服务器上安装Red5。这通常...

    Red5的Web视频、音频系统开发

    Red5可以用于构建各种应用场景下的实时通信系统,比如在线教育、视频会议、直播平台等。 #### 二、Red5服务器的主要特点 1. **开源免费**:Red5是基于Java语言编写的开源软件,可以自由地下载、使用和修改。 2. **...

    Red5 1.0 Final Web版

    将两者结合,可以利用Tomcat的Web应用管理能力,将Red5作为Web应用程序部署,以实现更灵活的管理和配置。 整合过程通常包括以下步骤: 1. **安装准备**:确保系统上已经安装了Java Development Kit (JDK),因为Red...

    red5 与 tomcat项目集成

    3. **集成 Red5 与 Tomcat**:由于 Red5 是基于 Java 开发的,因此它可以与 Tomcat 结合使用,实现流媒体功能的 Web 应用。在集成过程中,需要将 Red5 的库文件添加到 Tomcat 的类路径中,并调整配置文件以确保两者...

    red5入门详细教程

    3. 高级应用示例:如游戏直播、在线教育平台、虚拟会议室等,都是Red5技术可以实现的高级应用场景。 五、学习资源 1. "red5入门教程.pdf":这个文档是关于Red5的详细入门教程,涵盖了从安装到实际应用的全过程,是...

    red5.jar

    2. **RTMP协议实现**:Red5实现了Adobe的RTMP协议,使得客户端(通常是Flash Player)可以与服务器进行实时数据交换。包括音频、视频的发布、播放,以及数据对象的共享。 3. **录制与回放功能**:Red5支持对流媒体...

    red5入门,tomcat+red5+myeclipse集成,原创禁止转载

    Red5是一款开源的流媒体服务器,它支持实时流传输协议(RTMP),并提供录制、播放、存储等功能,广泛应用于在线视频直播、VoIP、互动游戏等场景。本教程将介绍如何进行Red5的入门学习,并结合Tomcat和MyEclipse进行...

    red5-server-1.0.1.zip 流媒体服务器

    - **游戏直播**: 游戏直播平台可以通过Red5实现实时的游戏画面传输。 **5. 扩展与优化** - **负载均衡**: 对于高并发需求,可以通过配置多个Red5服务器,实现负载均衡,提高服务稳定性。 - **CDN整合**: 可以与...

    直播服务red5服务压缩包,解压可直接启动,本人自用

    3. **应用开发**:Red5提供了API和SDK,允许开发者创建自定义的应用模块,实现直播的录制、播放、存储等功能。开发者可以使用ActionScript、Flex、Java或WebRTC等技术进行开发。 4. **流媒体协议**:了解RTMP、HLS...

    red5-server.zip

    6. **API集成**:Red5提供了API接口,开发者可以通过Java或其他语言与服务器进行通信,实现自定义功能或扩展服务器的能力。 7. **跨平台**:Red5服务器可以在多种操作系统上运行,包括Windows、Linux和Mac OS X,这...

Global site tag (gtag.js) - Google Analytics