RTMP android aftek

I am trying to implement a library from http://www.aftek.com/afteklab/aftek-RTMP-library.shtml for real-time streaming video from a red5 server.

On the server I use simpleBroadcaster and I want to transfer it to an Android phone.

my code is:

package com.cu.reader;

import java.nio.channels.FileChannel;
import java.util.Map;
import com.al.rtmp.client.RtmpClient;
import com.al.rtmp.client.RtmpStream;
import com.al.rtmp.client.RtmpStreamFactory;
import com.al.rtmp.client.data.MetaData;
import com.al.rtmp.client.data.RTMPData;
import com.al.rtmp.client.data.VideoCodec;
import com.al.rtmp.message.Metadata;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class StreamreaderActivity extends Activity implements RtmpClient {
     RtmpStream stream = null;
     Boolean connected = false;
 String server = "rtmp://216.224.181.197/oflaDemo/";
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    stream = RtmpStreamFactory.getRtmpStream();
    stream.setClient(this);
    stream.connect(server);
}
@Override
public void streamCreated() {
    Log.i("stream","Connected!");       

    connected = true;
    stream.setPlayName("red5StreamDemo");
    stream.play();

}
@Override
public byte[] getWriteData(int length) {
    // TODO Auto-generated method stub
    return null;
}
@Override
public void invoke(String arg0, Object... arg1) {
    // TODO Auto-generated method stub
;   
}
@Override
public void onDataReceived(RTMPData rtmpData) {
    MetaData metaData = rtmpData.getMetaData();
    VideoCodec vc = metaData.getVideoCodec();
}
@Override
public void onError(Exception ex) {
    Log.e("ClientException", " Some exception occurred." + ex.getMessage());
    ex.printStackTrace();
}
@Override
public void onMetaDataReceived(Map map) {
    Log.i("code","METADATA:" + map);        

}
@Override
public void onResult(String method, Object... arg1) {
    Log.i("result","METADATA:" + method);       

}
@Override
public void onStatus(String code) {
    Log.i("code",code);     
}

}

I always get NetStream.Play.StreamNotFound in the onStatus function.

thank

+3
source share
2 answers

The stream does not exist, right. But why? There are probably one or two reasons: you did not create a live stream and 2) because you are using the wrong scale. If you do not manually configure it differently (which is unlikely), use the live scale of the broadcaster, which is in / in real time.

, rtmp://216.224.181.197/live/red5StreamDemo mrl, rtmp://216.224.181.197/live/red5StreamDemo. . "" RED5. avconv (aka ffmpeg) rtmp.

0

NetStream.Play.StreamNotFound, red5.

as3 :

package {

import flash.display.Sprite;
import flash.events.AsyncErrorEvent;
import flash.events.IOErrorEvent;
import flash.events.NetStatusEvent;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;

public class LearnWowzaClient extends Sprite {

    private var nc:NetConnection;
    private var video:Video = new Video();

    public function LearnWowzaClient() {

        nc = new NetConnection();
        nc.client = this;
        nc.addEventListener(NetStatusEvent.NET_STATUS, onNet);
        nc.connect("rtmp://216.224.181.197/oflaDemo/");
    }

    private function onNet(event:NetStatusEvent):void {
        trace(event);
        trace(event.info.code);
        switch (event.info.code) {
            case "NetConnection.Connect.Success":
                tryPlayStream();
                break;
        }
    }

    private function tryPlayStream():void {
        trace("playStream");
        var ns:NetStream = new NetStream(nc);
        ns.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
        ns.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
        ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, onAsyncError);

        ns.play("red5StreamDemo");
        video.attachNetStream(ns);
    }

    public function onBWCheck(parameter:Object = null):void {
        trace("onBWCheck p=" + parameter);
    }

    public function onBWDone(parameter:Object = null):void {
        trace("onBWDone p=" + parameter);
    }

    private function onIOError(event:IOErrorEvent):void {
        trace("onIOError");
    }

    private function onAsyncError(event:AsyncErrorEvent):void {
        trace("onAsyncError");
    }

    private function onNetStatus(event:NetStatusEvent):void {
        trace("onNetStatus   ", event.info.code);
    }
}
}

NetStream.Play.StreamNotFound. red5?

+1

All Articles