Red5实现直播
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实现直播的更多相关文章
- Centos7.5 搭建Red5视频直播服务器
一.安装java环境 yum install java-1.7.0-openjdk 详细步骤请参考 http://www.cnblogs.com/java-qzq/p/5845509.html 我的这 ...
- 零基础如何一步一步开始搭建高性能直播平台?现以GitChat·架构来进行说明
前言 现在直播已经成为移动互联网时代一个新的重要流量入口,从YY.斗鱼到花椒直播,直播已经成为人们分享交流的新方式,应用场景众多,主要分为: 金融类直播:金融直播可应用于实时解盘,在线专家讲座,专家在 ...
- 转--2014年最新810多套android源码2.46GB免费一次性打包下载
转载自:http://www.eoeandroid.com/thread-497046-1-1.html 感谢该博客主人无私奉献~~ 下面的源码是从今年3月份开始不断整理源码区和其他网站上的安卓例子源 ...
- 2014年最新720多套Android源码2.0GB免费一次性打包下载
之前发过一个帖子,但是那个帖子有点问题我就重新发一个吧,下面的源码是我从今年3月份开始不断整理源码区和其他网站上的android源码,目前总共有720套左右,根据实现的功能被我分成了100多个类,总共 ...
- ym——android源代码大放送(实战开发必备)
转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! 目录 PATH 列表 卷序列号为 000A-8F50 E:. │ javaapk.c ...
- 基于Red5的视频直播平台
搭建环境:Win2008 server + jdk1.8+red5-server-1.0.6 下载地址:https://github.com/Red5 修改启动配置文件(修改为jdk路径): 安装模版 ...
- 利用red5搭建一个简单的流媒体直播系统
http://blog.sina.com.cn/s/blog_51396f890102exmz.html 一.red5安装.设置. 这个过程就不多说了,参见http://blog.csdn.net/l ...
- Red5点播和直播的实现
(一) Red5流媒体服务器介绍Red5是一个采用Java开发开源的Flash流媒体服务器.它支持:把音频(MP3)和视频(FLV)转换成播放流: 录制客户端播放流(只支持FLV):共享 ...
- 使用Flex 和 Red5开发简单视频直播功能
Flex 是一个高效.免费的开源框架,可用于构建具有表现力的 Web应用程序,这些应用程序利用Adobe Flash Player和Adobe AIR, 可以实现跨浏览器.桌面和操作系统.虽然只能使用 ...
随机推荐
- uboot---linux
01uboot是没有虚拟地址的 02内存映射是linux内核的机制,也就是从实地址到虚拟地址是linux完成的! -----
- Drawable(5)关于从资源文件构造的Drawable不显示
要给它设置个bounds才可以 TextView noticeHeaderView; TextView headerRefreshText; ProgressBar headerRefreshPgrs ...
- Struts2注解配置之@Namespace(四)
今天开始学习@Namespace注解. 还是先看一段代码: package com.example.actions; import org.apache.struts2.convention.anno ...
- QWidget、QDialog、QMainWindow的异同点
简述 在分享所有基础知识之前,很有必要在这里介绍下常用的窗口 - QWidget.QDialog.QMainWindow. QWidget继承于QObject和QPaintDevice,QDialog ...
- Jquery实现让滚动条始终保持在最下方
$(document).ready(function(){ $("#submit").click(function(){ $("#info").append(& ...
- H.264码流结构解析
from:http://wenku.baidu.com/link?url=hYQHJcAWUIS-8C7nSBbf-8lGagYGXKb5msVwQKWyXFAcPLU5gR4BKOVLrFOw4bX ...
- 一天一个Java基础——序列化
1.概念 Java的“对象序列化”能将一个实现了Serializable接口的对象转换成一组byte,这样日后要用这个对象的时候,能把这些byte数据恢复出来,并据此重新构建那个对象. 对象序列化能实 ...
- Mybatis学习——一对多关联表查询
1.实体类 public class Student { private int id; private String name; } public class Classes { private i ...
- 【转】./a.out 2>&1 > outfile
原文网址:http://www.cnblogs.com/zhaoyl/archive/2012/10/22/2733418.html APUE 3.5关于重定向有个容易迷惑人的问题: ./a.out ...
- Oracle 课程九之绑定变量
课程目标 完成本课程的学习后,您应该能够: •变量绑定的目的 •父子游标 •游标共享 •绑定窥探 •SQL语句处理流程 •硬解析.软解析.软软解析 •变量绑定的应用场景 1.游标 游标可以理解为S ...