发布端(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实现视频直播及推流的操作指南 #### 一、搭建ffmpeg **1. 下载ffmpeg** - 访问官方网站下载ffmpeg最新版本:`http://ffmpeg.org/download.html` - 选择适合的版本进行下载,如`...
4. **直播与录制**:详细讲解如何通过RED5实现直播流的推送和接收,以及如何录制和存储流媒体内容。 5. **播放器集成**:介绍如何与各种播放器(如JW Player、FlowPlayer等)集成,以便用户可以观看流媒体内容。 6...
本项目是基于Red5实现的一个播放器Demo,主要关注如何利用Red5搭建直播环境,并通过JW Player展示直播内容。 1. Red5服务器介绍: Red5是一个用Java编写的流媒体服务器,它允许开发者创建、存储和分发音频、视频、...
【Red5】实现点播-直播功能 在IT行业中,实时流媒体技术是不可或缺的一部分,尤其是在互联网娱乐、在线教育和企业通信等领域。Red5是一款开源的流媒体服务器,它允许开发者实现点播和直播功能,为用户提供流畅的...
### Red5+H5 实现点播和直播 在探讨如何使用Red5与HTML5(简称H5)技术实现点播和直播之前,我们先来了解下这些技术的基础概念。 #### 1. Red5 介绍 Red5是一款开源的媒体服务器,支持多种协议如RTMP、HTTP-FLV等...
3. **RTMP或HLS库**:Android原生不支持RTMP,所以需要第三方库,如librtmp或ijkplayer,来实现与Red5服务器的通信。 4. **网络连接管理**:处理网络连接的建立、断开、重试等,确保流媒体的稳定传输。 在...
**Red5与Android直播系统架构服务端概述** 在构建基于Red5和Android的直播系统时,我们需要理解几个关键概念和技术。Red5是一个开源的流媒体服务器,它支持实时传输协议(RTMP)、实时消息协议(RTMP)、HLS...
【标题】:“利用Red5实现视频在线播放” 在IT领域,视频在线播放技术已经成为不可或缺的一部分,为用户提供便捷的媒体服务。Red5是一个开源的流媒体服务器,它支持实时流协议(RTMP)、实时消息协议(RTMFP)以及...
在"RED5直播包括Flex和Java全部源代码"这个项目中,我们可以深入理解如何利用RED5搭建直播平台,并通过Flex进行客户端的交互。 首先,让我们来了解一下Flex。Flex是一种基于ActionScript 3的开发框架,主要用于构建...
本项目主要探讨了如何利用Red5服务器配合Android客户端实现高效的直播流传输。Red5是一款开源的实时流媒体服务器,广泛应用于视频直播、游戏直播等领域。下面我们将深入解析Red5在Android直播系统中的作用以及相关...
本项目利用Red5实现了多功能聊天室,提供了丰富的交流功能。 在“用流媒体Red5实现的多功能聊天室”中,我们可以探讨以下几个关键知识点: 1. **Red5服务器安装与配置**:首先,你需要在服务器上安装Red5。这通常...
Red5可以用于构建各种应用场景下的实时通信系统,比如在线教育、视频会议、直播平台等。 #### 二、Red5服务器的主要特点 1. **开源免费**:Red5是基于Java语言编写的开源软件,可以自由地下载、使用和修改。 2. **...
将两者结合,可以利用Tomcat的Web应用管理能力,将Red5作为Web应用程序部署,以实现更灵活的管理和配置。 整合过程通常包括以下步骤: 1. **安装准备**:确保系统上已经安装了Java Development Kit (JDK),因为Red...
3. **集成 Red5 与 Tomcat**:由于 Red5 是基于 Java 开发的,因此它可以与 Tomcat 结合使用,实现流媒体功能的 Web 应用。在集成过程中,需要将 Red5 的库文件添加到 Tomcat 的类路径中,并调整配置文件以确保两者...
3. 高级应用示例:如游戏直播、在线教育平台、虚拟会议室等,都是Red5技术可以实现的高级应用场景。 五、学习资源 1. "red5入门教程.pdf":这个文档是关于Red5的详细入门教程,涵盖了从安装到实际应用的全过程,是...
2. **RTMP协议实现**:Red5实现了Adobe的RTMP协议,使得客户端(通常是Flash Player)可以与服务器进行实时数据交换。包括音频、视频的发布、播放,以及数据对象的共享。 3. **录制与回放功能**:Red5支持对流媒体...
Red5是一款开源的流媒体服务器,它支持实时流传输协议(RTMP),并提供录制、播放、存储等功能,广泛应用于在线视频直播、VoIP、互动游戏等场景。本教程将介绍如何进行Red5的入门学习,并结合Tomcat和MyEclipse进行...
- **游戏直播**: 游戏直播平台可以通过Red5实现实时的游戏画面传输。 **5. 扩展与优化** - **负载均衡**: 对于高并发需求,可以通过配置多个Red5服务器,实现负载均衡,提高服务稳定性。 - **CDN整合**: 可以与...
3. **应用开发**:Red5提供了API和SDK,允许开发者创建自定义的应用模块,实现直播的录制、播放、存储等功能。开发者可以使用ActionScript、Flex、Java或WebRTC等技术进行开发。 4. **流媒体协议**:了解RTMP、HLS...
6. **API集成**:Red5提供了API接口,开发者可以通过Java或其他语言与服务器进行通信,实现自定义功能或扩展服务器的能力。 7. **跨平台**:Red5服务器可以在多种操作系统上运行,包括Windows、Linux和Mac OS X,这...