Vinicius,

- então aonde você vai mudar não é no Flex...

- você tem que implementar o suporte no lado do Red5, código java lá

----

observe os arquivos em anexo:

1 - red5-web.xml
você vai precisar fazer essa configuração

2 - vai precisar implementar classes de suporte para gerenciar o stream e
efetuar a gravação
essas classes estão mapeadas no XML, veja a classe StreamManager.java é nela
que é
feito a gravação para arquivo do Stream, observe a linha 29, veja que está
monitorando *hostStream*

3 - observe a classe ActionScript
métodos:
- initConnection() > linha 71
ali é feito a conexão do Flex/Flash com o Red5

- publish() > linha 80
observe o código do método, e importate observe a linha: 86

ali você define a parte fundamental, lembre que lá na codificação de suporte
java no Red5, você está monitorando
a publicação com nome *hostStream* ali é onde você define no Flex/Flash para
publicar com esse nome, com isso
vai ser captado pela funcionalidade que irá gravar o vídeo no Red5

---

será que ajudou em algo ? =D

qq coisa diga ae o/


-- 
Att,
Erko Bridee de Almeida Cabrera
http://erkobridee.com/
http://gospel.erkobridee.com/
http://www.cwbfx.com/
http://www.portaljava.com/

--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Attachment: Broadcast.as
Description: Binary data

package net.sziebert.tutorials;

import org.red5.logging.Red5LoggerFactory;
import org.red5.server.adapter.ApplicationAdapter;
import org.red5.server.api.IConnection;
import org.slf4j.Logger;

/**
 * <code>Application</code> is a simple <code>ApplicationAdapter</code>
 * delegate which gets a reference to the publishing stream, plays it into a
 * server stream and records it.
 */
public class Application extends ApplicationAdapter {
	
	private static final Logger logger = Red5LoggerFactory.getLogger(Application.class, "recorder");

	/* ----- ApplicationAdapter delegate methods ----- */

	/**
	 * Delegate method used to accept/reject incoming connection requests.
	 * 
	 * @param conn
	 * @param params
	 * @return true/false
	 */
	@Override
	public boolean roomConnect(IConnection conn, Object[] params) {
		logger.debug("New connection attempt from {}...", conn.getRemoteAddress());
		// Insure that the listeners are properly attached.
		return super.roomConnect(conn, params);
	}

	/**
	 * Delegate method which logs connection/client/user disconnections.
	 * 
	 * @param conn
	 */
	@Override
	public void roomDisconnect(IConnection conn) {
		logger.debug("Connection closed by {}...", conn.getRemoteAddress());
		// Call the super class to insure that all listeners are properly dismissed.
		super.roomDisconnect(conn);
	}

	/* ----- Application utility methods ----- */
}
package net.sziebert.tutorials;

import org.red5.logging.Red5LoggerFactory;
import org.red5.server.api.IConnection;
import org.red5.server.stream.ClientBroadcastStream;
import org.slf4j.Logger;

/**
 * <code>StreamManager</code> provides services for recording
 * the broadcast stream.
 */
public class StreamManager {

	private static final Logger logger = Red5LoggerFactory.getLogger(StreamManager.class, "recorder");

	// Application components
	private Application app;

	/**
	 * Start recording the publishing stream for the specified
	 * <code>IConnection</code>.
	 * 
	 * @param conn
	 */
	public void recordShow(IConnection conn) {
		logger.debug("Recording show for: {}", conn.getScope().getContextPath());
		String streamName = String.valueOf(System.currentTimeMillis());
		// Get a reference to the current broadcast stream.
		ClientBroadcastStream stream = (ClientBroadcastStream) app.getBroadcastStream(conn.getScope(), "hostStream");
		try {
			// Save the stream to disk.
			stream.saveAs(streamName, false);
		} catch (Exception e) {
			logger.error("Error while saving stream: {}", streamName);
		}
	}

	/**
	 * Stops recording the publishing stream for the specified
	 * <code>IConnection</code>.
	 * 
	 * @param conn
	 */
	public void stopRecordingShow(IConnection conn) {
		logger.debug("Stop recording show for: {}", conn.getScope().getContextPath());
		// Get a reference to the current broadcast stream.
		ClientBroadcastStream stream = (ClientBroadcastStream) app.getBroadcastStream(conn.getScope(), "hostStream");
		// Stop recording.
		stream.stopRecording();
	}

	/* ----- Spring injected dependencies ----- */

	public void setApplication(Application app) {
		this.app = app;
	}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd";>
<beans>

    <bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="/WEB-INF/red5-web.properties"/>
    </bean>

    <bean id="web.context" class="org.red5.server.Context" autowire="byType"/>

    <bean id="web.scope" class="org.red5.server.WebScope" init-method="register">
        <property name="server" ref="red5.server"/>
        <property name="parent" ref="global.scope"/>
        <property name="context" ref="web.context"/>
        <property name="handler" ref="web.handler"/>
        <property name="contextPath" value="${webapp.contextPath}"/>
        <property name="virtualHosts" value="${webapp.virtualHosts}"/>
    </bean>

    <bean id="streamManager.service" class="net.sziebert.tutorials.StreamManager">
        <property name="application" ref="web.handler"/>
    </bean>

    <bean id="web.handler" class="net.sziebert.tutorials.Application"/>

</beans>

Responder a