Question

Trying to write a red5 application that simply records everything that gets streamed to it. Found a project template from here that I loosely followed.

If I connect to rtmp://myserverip/live (from the default install) from FMLE 3.2, everything works ok. If I connect to rtmp://myserverip/video I get the error

"Problem with Primary Server. Failure to connect to primary server. Please verify that your server URL and application name are valid and that your Internet connection is working and retry."

I have code as follows:

Application

    public class Application extends ApplicationAdapter {


    /** {@inheritDoc} */ 
    @Override
    public boolean connect(IConnection conn, IScope scope, Object[] params) { 
            super.connect(conn, scope, params);
        return true; 
    } 

    /** {@inheritDoc} */ 
    @Override
    public void disconnect(IConnection conn, IScope scope) { 
        super.disconnect(conn, scope);
    } 

    @Override
    public void streamPublishStart(IBroadcastStream stream) { 
            super.streamPublishStart(stream);
        try { 
            stream.saveAs(stream.getPublishedName(), false); 
        } 
        catch (Exception e) { 
            e.printStackTrace(); 
        } 
    } 

    @Override
    public void streamBroadcastClose(IBroadcastStream stream) { 
            super.streamBroadcastClose(stream);
        System.out.print("Broadcast Closed"); 
    } 
    @Override
    public void streamBroadcastStart(IBroadcastStream stream) { 
            super.streamBroadcastStart(stream);
        System.out.print("Broadcast Started"); 
    } 
}

web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 
   xmlns="http://java.sun.com/xml/ns/j2ee" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
   version="2.4"> 

    <display-name>video</display-name>

    <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>/video</param-value>
    </context-param>

</web-app>

red5-web.xml

   <?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:lang="http://www.springframework.org/schema/lang"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd                            
    http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-3.0.xsd">

    <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="web.handler" class="net.bordereastcreative.video.Application" />

</beans>

red5-web.properties

webapp.contextPath=/video
webapp.virtualHosts=*

Any idea as to what I'm doing wrong? I looked in all the log files in /usr/share/red5/log but I cannot see anything pertaining to this app.

Using Ubuntu LTS 12.04 and red5 1.0.

UPDATE #1: edited code to add calls to super and virtualhosts changed to just *.

Was it helpful?

Solution

The easiest way to record all your streams automatically, server-wide is to set the auto record property "broadcaststream.auto.record" in the red5.properties file

OTHER TIPS

What does the output log say at startup?

We should see an indication of your scope being created.

Also, try to whittle down the virtual host to a single wild card '*' to see if there is some undefined host-resolution.

did you create a valid server side script and put the WEB-INF floder in the video folder within the red5 applications folder?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top