发布端(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+H5实现点播和直播
Linux搭建ffmpeg+red5安装操作参考指南。实现在linux服务器上视频直播,推流在线监控
可以做直播的red5做的播放器demo
android+Red5流媒体服务器 实现视频通话 视频直播 视频点播 注:搭建完成自己的Red5服务器后请将android端的IP地址修改为你自己的地址!
实现android实时录制视频流并上传到Red5服务器实现现,场直播和点播功能
NULL 博文链接:https://zliguo.iteye.com/blog/2294288
基于red5流媒体服务器代码 实现在线直播和点播,可以点rtsp流和文件流
red5应用程序实例 实现了重新定义文件资源的路径 同时可结合flex开发的视频录制客户端和视频播放端 支持视频录制,在线直播
Red5的主要功能和Macromedia公司的FMS类似,提供基于Flash的流媒体服务的一款基于Java的开源流媒体服务器。...配合ffmpeg使用把摄像头视频流推送到red5流媒体服务器,可以在网页或播放器实现摄像头实时直播。
Red5集成SpringMVC的Maven项目,实现了Red5二次开发自定义逻辑的基本功能,可以实现直播和点播基本功能,这是入门的资源,没有实现复杂逻辑,大佬请绕路!!!
RTMP实现视频聊天的一个借口,运用于Android客户端连接Red5服务器。
FLV 3G多卡视讯直播系统是中现科技全新打造纯硬件编码新闻媒体视讯直播系统,它借助目前新兴...系统支持http协议、RTMP协议,可与FMS或Red5等流媒体管理系统实现数据兼容调用,用户直接通过Flash Player观看直播内容。
Sewise Player是一款专业的免费网页视频、流播放器,它功能强大,体积小...Sewise Player即可以做为单一的前台播放器来在页面上播放视频和流,也可以结合Sewise Server后台技术实现专业的可交互的点播、直播视频播放。
利用开源的流媒体服务器Red5结合富互联网技术Flex实现直播和录制;通过开源NoSQL数据库MongoDB将录制的视频数据进行存储。实际测试结果表明,该平台能满足系统在多用户访问和数据存储方面的要求。
一款免费的流媒体直播软件,主要用于流媒体直播,视频直播,视频点播,视频录制等应用,与FMS、WOWZA、RED5一道,作为用户流媒体直播应用的可选方案。 1、支持Windows/Linux等多种操作系统; 2、采用开发的流媒体...
html5 + websocket_rtsp_proxy 实现视频流直播web页面上播放RTSP视频流,通常可以采用“jwplayer +ffmpeg+red5”的方案,由于这种方案首先将RTSP协议对应的视频流转码成RTMP协议的视频流,因此延迟通常会很高。...
1. android上实现mp4文件的高效率切割; 2. Red5+Android 直播系统的架构服务端的直播流工程; 3. SeeJoPlayer(视频播放器); 4. 安卓视音频播放测试工程; 5.手势实现播放器的进度和音量调节。
把rtsp协议转换成rtmp有不少方法和工具,比如流媒体工具软件Aokulive,FFMPEG等,采用这些工具我们不难把rtsp协议转换成rtmp推到诸如FMS,RED5,NGINX,AMS等支持rtmp协议的流媒体服务系统软件中。 但这样做有个局限...
RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,最初由Macromedia 公司创建,后来归Adobe公司所有,是一种私有协议,主要用来联系Flash Player和RtmpServer,如FMS, Red5, crtmpserver...
* 支持RTMP协议(支持red5,wowza,FMS等rtmp流媒体点播与直播);也支持http协议; New * 支持5种广告功能:支持前置广告、视频广告、暂停广告、角标广告、后置广告; New * 提供更丰富的JS函数接口,用于更方便的处理...