[Red5] Publishing a stream with RTMPClient
Jonathan Hawkes
jonathan at brownrice.com
Sun Sep 6 18:31:20 PDT 2009
Hello all,
First let me say thanks for such a neat OS project. The demos are up and
working perfectly, but what I need to do is not publish video from a
Flash client but from a server side application. RTMPClient looked like
exactly what I was looking for. I searched and found the following code
sample, which rather naively attempts to 'live' publish from a file. My
source will ultimately be a network stream not a file, but I want to get
something simple working before I pursue this course too much further.
When I run the sample code, I don't get any errors, but it simply
appears to do nothing. At the bottom is my debug output. One curious
thing is that "Body Data" is always null.
On a side note, is 'publishStreamData' blocking or non-blocking? If
non-blocking and publishing to a queue, will it eventually block and
cause back-pressure or is the queue unlimited in size or does it simply
drop messages after some point?
I know this is a lot of questions, but if anyone could point me in the
right direction (or towards some more complete documentation) for
RTMPClient, I would appreciate it.
Thanks!
public class Main extends RTMPClient
implements INetStreamEventHandler, IPendingServiceCallback {
private static final int STOPPED = 0;
private static final int CONNECTING = 1;
private static final int STREAM_CREATING = 2;
private static final int PUBLISHING = 3;
private static final int PUBLISHED = 4;
private String host;
private int port;
private String app;
private int state;
private String publishName;
private int streamId;
public Main(String app) {
this("localhost", 1935, app);
}
public Main(String host, int port, String app) {
this.host = host;
this.port = port;
this.app = app;
state = STOPPED;
setServiceProvider(this);
}
public void start(String publishName) {
state = CONNECTING;
this.publishName = publishName;
connect(host, port, app, this);
}
public void stop() {
if (state >= STREAM_CREATING) {
disconnect();
}
state = STOPPED;
}
public void onStreamEvent(Notify notify) {
ObjectMap<?, ?> map = (ObjectMap<?, ?>)
notify.getCall().getArguments()[0];
String code = (String) map.get("code");
if (StatusCodes.NS_PUBLISH_START.equals(code)) {
testPublish();
state = PUBLISHED;
}
}
public void resultReceived(IPendingServiceCall call) {
if ("connect".equals(call.getServiceMethodName())) {
state = STREAM_CREATING;
createStream(this);
} else if ("createStream".equals(call.getServiceMethodName())) {
state = PUBLISHING;
Object result = call.getResult();
if (result instanceof Integer) {
Integer streamIdInt = (Integer) result;
streamId = streamIdInt.intValue();
publish(streamIdInt.intValue(), publishName, "live", this);
} else {
disconnect();
state = STOPPED;
}
}
}
public void onBWDone() {
// NOOP
}
private void testPublish() {
try {
File f = new File("/Users/jonathan/Projects/red5" +
"/java/server/trunk/dist" +
"/webapps/oflaDemo/streams/toystory3.flv");
FLV flv = new FLV(f);
flv.setCache(NoCacheImpl.getInstance());
FileStreamSource src = new FileStreamSource(flv.getReader());
while (src.hasMore()) {
RTMPMessage rtmpMsg = new RTMPMessage();
rtmpMsg.setBody(src.dequeue());
publishStreamData(streamId, rtmpMsg);
}
stop();
System.exit(0);
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void main(String[] args) {
Main program = new Main("oflaDemo");
program.start("red5StreamDemo");
}
}
And the debug is....
18:39:14.031 [main] DEBUG o.r.s.net.rtmp.BaseRTMPClientHandler - connect
server: localhost port 1935 application oflaDemo connectCallback
rtmppub.Main at 4a79717e
18:39:14.049 [main] DEBUG o.r.s.net.rtmp.BaseRTMPClientHandler - connect
server: localhost port 1935 connectionParams {objectEncoding=0,
app=oflaDemo, flashVer=WIN 9,0,115,0, fpad=false,
tcUrl=rtmp://localhost:1935/oflaDemo, audioCodecs=1639, videoFunction=1,
pageUrl=null, path=oflaDemo, capabilities=15, swfUrl=null,
videoCodecs=252} connectCallback rtmppub.Main at 4a79717e
conectCallArguments null
18:39:14.185 [NioProcessor-1] DEBUG o.r.s.net.rtmp.RTMPMinaIoHandler -
Session created
18:39:14.228 [NioProcessor-1] DEBUG o.r.s.net.rtmp.RTMPClientConnManager
- Creating connection, class: org.red5.server.net.rtmp.RTMPMinaConnection
18:39:14.249 [NioProcessor-1] DEBUG org.red5.server.BaseConnection - New
BaseConnection - type: persistent host: null remoteAddress: null
remotePort: 0 path: null sessionId: null
18:39:14.250 [NioProcessor-1] DEBUG org.red5.server.BaseConnection -
Params: null
18:39:14.250 [NioProcessor-1] DEBUG o.r.s.net.rtmp.RTMPMinaConnection -
RTMPMinaConnection created
18:39:14.250 [NioProcessor-1] DEBUG o.r.s.net.rtmp.RTMPClientConnManager
- Connection id set 0
18:39:14.250 [NioProcessor-1] DEBUG o.r.s.net.rtmp.RTMPClientConnManager
- Connection added to the map
18:39:14.256 [NioProcessor-1] DEBUG o.r.server.net.rtmp.RTMPConnection -
Set state: [RTMP at 6a8c436b]
18:39:14.272 [NioProcessor-1] DEBUG o.r.s.net.rtmp.RTMPMinaIoHandler -
Handshake 1st phase
18:39:14.820 [NioProcessor-1] DEBUG o.r.server.net.rtmp.BaseRTMPHandler
- Message sent
18:39:14.821 [NioProcessor-1] DEBUG o.a.m.f.codec.ProtocolCodecFilter -
Processing a MESSAGE_RECEIVED for session 1
18:39:14.824 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- Start: 0
18:39:14.824 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- Handshake init too small, buffering. remaining: 2048
18:39:14.825 [NioProcessor-1] DEBUG o.a.m.f.codec.ProtocolCodecFilter -
Processing a MESSAGE_RECEIVED for session 1
18:39:14.825 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- Start: 0
18:39:14.826 [NioProcessor-1] DEBUG o.r.s.net.rtmp.RTMPMinaIoHandler -
Handshake 3d phase - size: 3073
18:39:14.826 [NioProcessor-1] DEBUG o.r.server.net.rtmp.BaseRTMPHandler
- Message sent
18:39:14.826 [NioProcessor-1] DEBUG o.r.s.net.rtmp.BaseRTMPClientHandler
- connectionOpened
18:39:14.829 [NioProcessor-1] DEBUG o.r.s.net.rtmp.BaseRTMPClientHandler
- Writing 'connect' invoke: Invoke: Service: null Method: connect No
params, invokeId: 1
18:39:14.835 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolEncoder
- This is a pending call, send request
18:39:14.835 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
Sep 6, 2009 6:39:14 PM net.sf.ehcache.config.ConfigurationFactory
parseConfiguration
WARNING: No configuration found. Configuring ehcache from
ehcache-failsafe.xml found in the classpath:
jar:file:/Users/jonathan/Projects/red5/java/server/trunk/dist/lib/ehcache-1.6.1.jar!/ehcache-failsafe.xml
18:39:15.360 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.360 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.360 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.360 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.360 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
writeComplex
18:39:15.360 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
writeListType
18:39:15.360 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
writeArrayType
18:39:15.361 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
writeXMLType
18:39:15.368 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.370 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.371 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.388 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.388 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.388 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.388 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.395 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.395 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.399 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.399 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.399 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.399 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.399 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.399 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.400 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.400 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.400 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.400 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.400 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.400 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.400 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.400 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.400 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.400 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolEncoder
- Writing params
18:39:15.405 [NioProcessor-1] DEBUG o.r.server.net.rtmp.BaseRTMPHandler
- Message sent
18:39:15.582 [NioProcessor-1] DEBUG o.a.m.f.codec.ProtocolCodecFilter -
Processing a MESSAGE_RECEIVED for session 1
18:39:15.583 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- Start: 0
18:39:15.586 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 4
18:39:15.587 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: String
18:39:15.587 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- Action onBWDone
18:39:15.587 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 3
18:39:15.587 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Number
18:39:15.587 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 1
18:39:15.587 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: null
18:39:15.588 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- Num params: 0
18:39:15.588 [NioProcessor-1] DEBUG o.r.server.net.rtmp.BaseRTMPHandler
- Message received, header: ChannelId: 3, Timer: 0, Relative: false,
Size: 21, DataType: 20, StreamId: 0
18:39:15.588 [NioProcessor-1] DEBUG o.r.s.net.rtmp.BaseRTMPClientHandler
- onInvoke: Invoke: Service: null Method: onBWDone Num Params: 0,
invokeId: 2
18:39:15.598 [NioProcessor-1] DEBUG org.red5.server.service.ServiceUtils
- Method not found using exact parameter types
18:39:15.599 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: main
18:39:15.600 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.600 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: start
18:39:15.600 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.600 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: stop
18:39:15.600 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.600 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: onStreamEvent
18:39:15.600 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.600 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: resultReceived
18:39:15.600 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.600 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: onBWDone
18:39:15.601 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Param length not the same
18:39:15.601 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: makeDefaultConnectionParams
18:39:15.601 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.601 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: invoke
18:39:15.601 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: invoke
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: handleException
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: connect
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: connect
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: connect
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: connect
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: connect
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: createStream
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: setServiceProvider
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: disconnect
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.602 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: publish
18:39:15.603 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.603 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: publishStreamData
18:39:15.603 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.603 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: getCodecFactory
18:39:15.603 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.603 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: setCodecFactory
18:39:15.603 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.603 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: getConnManager
18:39:15.603 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.603 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: setConnectionClosedHandler
18:39:15.603 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.603 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: setExceptionHandler
18:39:15.603 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.603 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: getSharedObject
18:39:15.603 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.603 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: unpublish
18:39:15.603 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.603 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: play
18:39:15.603 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: connectionOpened
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: connectionClosed
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: setStreamEventDispatcher
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: getStreamId
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: setApplicationContext
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: messageReceived
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: messageSent
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: wait
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: wait
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: wait
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.604 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: hashCode
18:39:15.605 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.605 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: getClass
18:39:15.605 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.605 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: equals
18:39:15.605 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.605 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: toString
18:39:15.605 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.605 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: notify
18:39:15.606 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.606 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name: notifyAll
18:39:15.606 [NioProcessor-1] DEBUG o.r.server.service.ConversionUtils -
Method name not the same
18:39:15.606 [NioProcessor-1] DEBUG org.red5.server.service.ServiceUtils
- Found 0 methods
18:39:15.606 [NioProcessor-1] DEBUG org.red5.server.service.ServiceUtils
- Exact method found (skipping list): onBWDone
18:39:15.624 [NioProcessor-1] DEBUG o.red5.server.service.ServiceInvoker
- Invoking method: public void rtmppub.Main.onBWDone()
18:39:15.624 [NioProcessor-1] DEBUG o.red5.server.service.ServiceInvoker
- result: null
18:39:15.624 [NioProcessor-1] DEBUG o.r.s.net.rtmp.BaseRTMPClientHandler
- Pending call result is: null
18:39:15.624 [NioProcessor-1] DEBUG o.r.s.net.rtmp.BaseRTMPClientHandler
- Sending empty call reply: Invoke: Service: null Method: onBWDone Num
Params: 0
18:39:15.624 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolEncoder
- Call has been executed, send result
18:39:15.624 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.625 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.625 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.625 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.625 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.625 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.625 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolEncoder
- Writing result: null
18:39:15.625 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.625 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.626 [NioProcessor-1] DEBUG o.a.m.f.codec.ProtocolCodecFilter -
Processing a MESSAGE_RECEIVED for session 1
18:39:15.626 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- Start: 0
18:39:15.627 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- Start: 16
18:39:15.628 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- Start: 30
18:39:15.629 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- Start: 166
18:39:15.629 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 4
18:39:15.629 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: String
18:39:15.629 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- Action _result
18:39:15.629 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 3
18:39:15.629 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Number
18:39:15.629 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 1
18:39:15.629 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: null
18:39:15.629 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 9
18:39:15.629 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Object
18:39:15.629 [NioProcessor-1] DEBUG org.red5.io.amf.Input - readObject: null
18:39:15.630 [NioProcessor-1] DEBUG org.red5.io.amf.Input - read map
18:39:15.630 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.630 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 5
18:39:15.630 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 161
18:39:15.630 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 23 limit: 28
18:39:15.630 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String: level
18:39:15.630 [NioProcessor-1] DEBUG org.red5.io.amf.Input - property: level
18:39:15.630 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 4
18:39:15.630 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: String
18:39:15.630 [NioProcessor-1] DEBUG org.red5.io.amf.Input - val: status
18:39:15.630 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.630 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.630 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 4
18:39:15.630 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 161
18:39:15.630 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 39 limit: 43
18:39:15.630 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String: code
18:39:15.630 [NioProcessor-1] DEBUG org.red5.io.amf.Input - property: code
18:39:15.630 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 4
18:39:15.631 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: String
18:39:15.631 [NioProcessor-1] DEBUG org.red5.io.amf.Input - val:
NetConnection.Connect.Success
18:39:15.631 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.631 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.631 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 11
18:39:15.631 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 161
18:39:15.632 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 77 limit: 88
18:39:15.632 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String:
description
18:39:15.632 [NioProcessor-1] DEBUG org.red5.io.amf.Input - property:
description
18:39:15.632 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 4
18:39:15.632 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: String
18:39:15.632 [NioProcessor-1] DEBUG org.red5.io.amf.Input - val:
Connection succeeded.
18:39:15.632 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.632 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.632 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 12
18:39:15.632 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 161
18:39:15.632 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 114 limit: 126
18:39:15.632 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String:
capabilities
18:39:15.632 [NioProcessor-1] DEBUG org.red5.io.amf.Input - property:
capabilities
18:39:15.632 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 3
18:39:15.632 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Number
18:39:15.632 [NioProcessor-1] DEBUG org.red5.io.amf.Input - val: 31
18:39:15.632 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.633 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.633 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 6
18:39:15.633 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 161
18:39:15.633 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 137 limit: 143
18:39:15.633 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String: fmsVer
18:39:15.633 [NioProcessor-1] DEBUG org.red5.io.amf.Input - property: fmsVer
18:39:15.633 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 4
18:39:15.633 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: String
18:39:15.633 [NioProcessor-1] DEBUG org.red5.io.amf.Input - val:
RED5/0,9,0,0
18:39:15.633 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? true
18:39:15.633 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? true
18:39:15.633 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- Num params: 1
18:39:15.633 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- > 0: {level=status, description=Connection succeeded.,
capabilities=31, code=NetConnection.Connect.Success, fmsVer=RED5/0,9,0,0}
18:39:15.634 [NioProcessor-1] DEBUG o.r.server.net.rtmp.BaseRTMPHandler
- Message received, header: ChannelId: 2, Timer: 0, Relative: false,
Size: 4, DataType: 5, StreamId: 0
18:39:15.634 [NioProcessor-1] DEBUG o.r.server.net.rtmp.BaseRTMPHandler
- Unknown type: 5
18:39:15.634 [NioProcessor-1] DEBUG o.r.server.net.rtmp.BaseRTMPHandler
- Message received, header: ChannelId: 2, Timer: 0, Relative: true,
Size: 6, DataType: 4, StreamId: 0
18:39:15.634 [NioProcessor-1] DEBUG o.r.s.net.rtmp.BaseRTMPClientHandler
- onPing
18:39:15.634 [NioProcessor-1] DEBUG o.r.server.net.rtmp.BaseRTMPHandler
- Message received, header: ChannelId: 3, Timer: 0, Relative: true,
Size: 161, DataType: 20, StreamId: 0
18:39:15.634 [NioProcessor-1] DEBUG o.r.s.net.rtmp.BaseRTMPClientHandler
- onInvoke: Invoke: Service: null Method: _result Num Params: 1 0:
{level=status, description=Connection succeeded., capabilities=31,
code=NetConnection.Connect.Success, fmsVer=RED5/0,9,0,0}, invokeId: 1
18:39:15.638 [NioProcessor-1] DEBUG o.r.s.net.rtmp.BaseRTMPClientHandler
- Received result for pending call Service: null Method: connect No params
18:39:15.639 [NioProcessor-1] DEBUG o.r.s.net.rtmp.BaseRTMPClientHandler
- invoke method: createStream params null callback
org.red5.server.net.rtmp.BaseRTMPClientHandler$CreateStreamCallBack at 421fbfd6
18:39:15.639 [NioProcessor-1] DEBUG o.r.s.net.rtmp.RTMPClientConnManager
- Returning first map entry
18:39:15.639 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolEncoder
- This is a pending call, send request
18:39:15.639 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.639 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.639 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.640 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.640 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.640 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.640 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolEncoder
- Writing params
18:39:15.640 [NioProcessor-1] DEBUG o.r.server.net.rtmp.BaseRTMPHandler
- Message sent
18:39:15.642 [NioProcessor-1] DEBUG o.r.server.net.rtmp.BaseRTMPHandler
- Message sent
18:39:15.642 [NioProcessor-1] DEBUG o.r.server.net.rtmp.BaseRTMPHandler
- Message sent
18:39:15.649 [NioProcessor-1] DEBUG o.a.m.f.codec.ProtocolCodecFilter -
Processing a MESSAGE_RECEIVED for session 1
18:39:15.649 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- Start: 0
18:39:15.649 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 4
18:39:15.649 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: String
18:39:15.649 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- Action _result
18:39:15.649 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 3
18:39:15.649 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Number
18:39:15.649 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 1
18:39:15.649 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: null
18:39:15.649 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 3
18:39:15.649 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Number
18:39:15.650 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- Num params: 1
18:39:15.650 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- > 0: 1
18:39:15.650 [NioProcessor-1] DEBUG o.r.server.net.rtmp.BaseRTMPHandler
- Message received, header: ChannelId: 3, Timer: 0, Relative: true,
Size: 29, DataType: 20, StreamId: 0
18:39:15.650 [NioProcessor-1] DEBUG o.r.s.net.rtmp.BaseRTMPClientHandler
- onInvoke: Invoke: Service: null Method: _result Num Params: 1 0: 1,
invokeId: 2
18:39:15.650 [NioProcessor-1] DEBUG o.r.s.net.rtmp.BaseRTMPClientHandler
- Received result for pending call Service: null Method: createStream No
params
18:39:15.651 [NioProcessor-1] DEBUG o.r.s.net.rtmp.BaseRTMPClientHandler
- Stream id: 1
18:39:15.651 [NioProcessor-1] DEBUG o.r.s.net.rtmp.RTMPClientConnManager
- Returning first map entry
18:39:15.658 [NioProcessor-1] DEBUG o.r.s.s.consumer.ConnectionConsumer
- Channel ids - video: 5 audio: 6 data: 4
18:39:15.659 [NioProcessor-1] DEBUG o.r.s.net.rtmp.BaseRTMPClientHandler
- publish stream 1, name: red5StreamDemo, mode live
18:39:15.660 [NioProcessor-1] DEBUG o.r.s.net.rtmp.RTMPClientConnManager
- Returning first map entry
18:39:15.660 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolEncoder
- This is a pending call, send request
18:39:15.660 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.660 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.660 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.660 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.660 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.660 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.660 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolEncoder
- Writing params
18:39:15.660 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.660 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.661 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
serialize
18:39:15.661 [NioProcessor-1] DEBUG org.red5.io.object.Serializer -
write basic
18:39:15.664 [NioProcessor-1] DEBUG o.r.server.net.rtmp.BaseRTMPHandler
- Message sent
18:39:15.694 [NioProcessor-1] DEBUG o.a.m.f.codec.ProtocolCodecFilter -
Processing a MESSAGE_RECEIVED for session 1
18:39:15.694 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- Start: 0
18:39:15.695 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- Start: 140
18:39:15.695 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 4
18:39:15.695 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: String
18:39:15.695 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- Action onStatus
18:39:15.695 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 3
18:39:15.695 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Number
18:39:15.695 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 1
18:39:15.695 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: null
18:39:15.695 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 9
18:39:15.695 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Object
18:39:15.695 [NioProcessor-1] DEBUG org.red5.io.amf.Input - readObject: null
18:39:15.696 [NioProcessor-1] DEBUG org.red5.io.amf.Input - read map
18:39:15.696 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.696 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 5
18:39:15.696 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 134
18:39:15.696 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 24 limit: 29
18:39:15.697 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String: level
18:39:15.698 [NioProcessor-1] DEBUG org.red5.io.amf.Input - property: level
18:39:15.699 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 4
18:39:15.699 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: String
18:39:15.699 [NioProcessor-1] DEBUG org.red5.io.amf.Input - val: status
18:39:15.699 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.699 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.699 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 4
18:39:15.700 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 134
18:39:15.700 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 40 limit: 44
18:39:15.700 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String: code
18:39:15.700 [NioProcessor-1] DEBUG org.red5.io.amf.Input - property: code
18:39:15.700 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 4
18:39:15.700 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: String
18:39:15.701 [NioProcessor-1] DEBUG org.red5.io.amf.Input - val:
NetStream.Publish.Start
18:39:15.701 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.702 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.702 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 11
18:39:15.702 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 134
18:39:15.702 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 72 limit: 83
18:39:15.705 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String:
description
18:39:15.705 [NioProcessor-1] DEBUG org.red5.io.amf.Input - property:
description
18:39:15.705 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 4
18:39:15.705 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: String
18:39:15.705 [NioProcessor-1] DEBUG org.red5.io.amf.Input - val:
18:39:15.705 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.705 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.706 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 7
18:39:15.706 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 134
18:39:15.706 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 88 limit: 95
18:39:15.706 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String: details
18:39:15.706 [NioProcessor-1] DEBUG org.red5.io.amf.Input - property:
details
18:39:15.706 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 4
18:39:15.706 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: String
18:39:15.706 [NioProcessor-1] DEBUG org.red5.io.amf.Input - val:
red5StreamDemo
18:39:15.706 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.707 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.707 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 8
18:39:15.707 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 134
18:39:15.708 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 114 limit: 122
18:39:15.708 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String: clientid
18:39:15.708 [NioProcessor-1] DEBUG org.red5.io.amf.Input - property:
clientid
18:39:15.708 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 3
18:39:15.708 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Number
18:39:15.708 [NioProcessor-1] DEBUG org.red5.io.amf.Input - val: 1
18:39:15.708 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? true
18:39:15.708 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? true
18:39:15.708 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- Num params: 1
18:39:15.708 [NioProcessor-1] DEBUG o.r.s.n.r.codec.RTMPProtocolDecoder
- > 0: {clientid=1, level=status, details=red5StreamDemo, description=,
code=NetStream.Publish.Start}
18:39:15.709 [NioProcessor-1] DEBUG o.r.server.net.rtmp.BaseRTMPHandler
- Message received, header: ChannelId: 4, Timer: 0, Relative: false,
Size: 134, DataType: 20, StreamId: 1
18:39:15.709 [NioProcessor-1] DEBUG o.r.s.net.rtmp.BaseRTMPClientHandler
- onInvoke: Invoke: Service: null Method: onStatus Num Params: 1 0:
{clientid=1, level=status, details=red5StreamDemo, description=,
code=NetStream.Publish.Start}, invokeId: 1
18:39:15.713 [NioProcessor-1] DEBUG o.r.s.net.rtmp.BaseRTMPClientHandler
- Client id: 1
18:39:15.770 [NioProcessor-1] DEBUG org.red5.io.flv.impl.FLVReader -
FLVReader 1 - Buffer size: 1665121 position: 0 remaining: 1665121
18:39:15.772 [NioProcessor-1] DEBUG org.red5.io.flv.impl.FLVReader -
Header: VERSION: 1
TYPE FLAGS VIDEO: true
TYPE FLAGS AUDIO: true
DATA OFFSET: 9
18:39:15.994 [NioProcessor-1] DEBUG org.red5.io.flv.impl.FLVReader - Old
position: 9
18:39:15.994 [NioProcessor-1] DEBUG org.red5.io.flv.impl.FLVReader -
readTag, oldPos: 9, tag header: Data Type =18
Prev. Tag Size =0
Body size =244
timestamp =0
Body Data =null
18:39:15.998 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 4
18:39:15.998 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: String
18:39:15.998 [NioProcessor-1] DEBUG org.red5.io.flv.meta.MetaService -
Metadata type: onMetaData
18:39:15.998 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 7
18:39:15.998 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: List
18:39:15.999 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Read start
mixed array: 11
18:39:15.999 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.999 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 8
18:39:15.999 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 244
18:39:15.999 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 20 limit: 28
18:39:15.999 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String: duration
18:39:15.999 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key: duration
18:39:15.999 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key duration
is causing non normal array
18:39:15.999 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 3
18:39:15.999 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Number
18:39:15.999 [NioProcessor-1] DEBUG org.red5.io.amf.Input - item: 102.603
18:39:15.999 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:15.999 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 5
18:39:15.999 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 244
18:39:15.999 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 39 limit: 44
18:39:16.000 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String: width
18:39:16.000 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key: width
18:39:16.000 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key width is
causing non normal array
18:39:16.000 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 3
18:39:16.000 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Number
18:39:16.000 [NioProcessor-1] DEBUG org.red5.io.amf.Input - item: 320
18:39:16.000 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:16.000 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 6
18:39:16.000 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 244
18:39:16.000 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 55 limit: 61
18:39:16.000 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String: height
18:39:16.000 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key: height
18:39:16.001 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key height
is causing non normal array
18:39:16.001 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 3
18:39:16.001 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Number
18:39:16.001 [NioProcessor-1] DEBUG org.red5.io.amf.Input - item: 240
18:39:16.001 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:16.001 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 13
18:39:16.001 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 244
18:39:16.001 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 72 limit: 85
18:39:16.001 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String:
videodatarate
18:39:16.001 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key:
videodatarate
18:39:16.001 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key
videodatarate is causing non normal array
18:39:16.001 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 3
18:39:16.001 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Number
18:39:16.001 [NioProcessor-1] DEBUG org.red5.io.amf.Input - item: 0
18:39:16.001 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:16.001 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 9
18:39:16.002 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 244
18:39:16.002 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 96 limit: 105
18:39:16.002 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String:
framerate
18:39:16.002 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key: framerate
18:39:16.002 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key
framerate is causing non normal array
18:39:16.002 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 3
18:39:16.002 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Number
18:39:16.002 [NioProcessor-1] DEBUG org.red5.io.amf.Input - item:
23.976023976023978
18:39:16.002 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:16.002 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 12
18:39:16.002 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 244
18:39:16.002 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 116 limit: 128
18:39:16.002 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String:
videocodecid
18:39:16.002 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key:
videocodecid
18:39:16.002 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key
videocodecid is causing non normal array
18:39:16.002 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 3
18:39:16.002 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Number
18:39:16.002 [NioProcessor-1] DEBUG org.red5.io.amf.Input - item: 2
18:39:16.002 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:16.003 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 15
18:39:16.003 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 244
18:39:16.003 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 139 limit: 154
18:39:16.003 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String:
audiosamplerate
18:39:16.003 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key:
audiosamplerate
18:39:16.003 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key
audiosamplerate is causing non normal array
18:39:16.003 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 3
18:39:16.003 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Number
18:39:16.003 [NioProcessor-1] DEBUG org.red5.io.amf.Input - item: 11025
18:39:16.004 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:16.004 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 15
18:39:16.004 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 244
18:39:16.004 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 165 limit: 180
18:39:16.004 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String:
audiosamplesize
18:39:16.004 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key:
audiosamplesize
18:39:16.004 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key
audiosamplesize is causing non normal array
18:39:16.004 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 3
18:39:16.004 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Number
18:39:16.004 [NioProcessor-1] DEBUG org.red5.io.amf.Input - item: 16
18:39:16.004 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:16.004 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 6
18:39:16.004 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 244
18:39:16.004 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 191 limit: 197
18:39:16.004 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String: stereo
18:39:16.004 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key: stereo
18:39:16.091 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key stereo
is causing non normal array
18:39:16.091 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 2
18:39:16.091 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Boolean
18:39:16.091 [NioProcessor-1] DEBUG org.red5.io.amf.Input - item: false
18:39:16.091 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:16.092 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 12
18:39:16.092 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 244
18:39:16.092 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 201 limit: 213
18:39:16.092 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String:
audiocodecid
18:39:16.092 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key:
audiocodecid
18:39:16.092 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key
audiocodecid is causing non normal array
18:39:16.092 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 3
18:39:16.093 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Number
18:39:16.093 [NioProcessor-1] DEBUG org.red5.io.amf.Input - item: 2
18:39:16.093 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? false
18:39:16.093 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Length: 8
18:39:16.093 [NioProcessor-1] DEBUG org.red5.io.amf.Input - Limit: 244
18:39:16.093 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String buf -
position: 224 limit: 232
18:39:16.093 [NioProcessor-1] DEBUG org.red5.io.amf.Input - String: filesize
18:39:16.093 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key: filesize
18:39:16.093 [NioProcessor-1] DEBUG org.red5.io.amf.Input - key filesize
is causing non normal array
18:39:16.093 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Type: 3
18:39:16.093 [NioProcessor-1] DEBUG org.red5.io.object.Deserializer -
Datatype: Number
18:39:16.093 [NioProcessor-1] DEBUG org.red5.io.amf.Input - item: 1665121
18:39:16.093 [NioProcessor-1] DEBUG org.red5.io.amf.Input - End of
object: ? true
18:39:16.094 [NioProcessor-1] DEBUG org.red5.io.flv.impl.FLVReader -
readTag, oldPos: 268, tag header: Data Type =9
Prev. Tag Size =255
Body size =4314
timestamp =0
Body Data =null
18:39:16.094 [NioProcessor-1] DEBUG org.red5.io.flv.impl.FLVReader -
readTag, oldPos: 4597, tag header: Data Type =8
Prev. Tag Size =4325
Body size =105
timestamp =0
Body Data =null
18:39:16.094 [NioProcessor-1] DEBUG org.red5.io.flv.impl.FLVReader -
readTag, oldPos: 4717, tag header: Data Type =9
Prev. Tag Size =116
Body size =66
timestamp =42
Body Data =null
18:39:16.094 [NioProcessor-1] DEBUG org.red5.io.flv.impl.FLVReader -
Reader close
18:39:16.097 [NioProcessor-1] DEBUG org.red5.io.flv.impl.FLV - File
size: 1665121
18:39:16.097 [NioProcessor-1] DEBUG org.red5.io.flv.impl.FLVReader -
FLVReader 1 - Buffer size: 1665121 position: 0 remaining: 1665121
18:39:16.097 [NioProcessor-1] DEBUG org.red5.io.flv.impl.FLVReader -
Header: VERSION: 1
TYPE FLAGS VIDEO: true
TYPE FLAGS AUDIO: true
DATA OFFSET: 9
18:39:16.183 [NioProcessor-1] DEBUG org.red5.io.flv.impl.FLVReader - Old
position: 9
18:39:16.184 [NioProcessor-1] DEBUG org.red5.io.flv.impl.FLV - Item will
not be cached: toystory3.flv
18:39:16.185 [NioProcessor-1] DEBUG org.red5.io.flv.impl.FLVReader -
readTag, oldPos: 9, tag header: Data Type =18
Prev. Tag Size =0
Body size =244
timestamp =0
Body Data =null
18:39:16.186 [NioProcessor-1] DEBUG o.r.s.s.consumer.ConnectionConsumer
- Sending chunk size: 1024
18:39:16.186 [NioProcessor-1] DEBUG o.r.s.s.consumer.ConnectionConsumer
- Message timestamp: 0
18:39:16.274 [NioProcessor-1] DEBUG org.red5.io.flv.impl.FLVReader -
readTag, oldPos: 268, tag header: Data Type =9
Prev. Tag Size =255
Body size =4314
timestamp =0
Body Data =null
18:39:16.276 [NioProcessor-1] DEBUG o.r.s.s.consumer.ConnectionConsumer
- Message timestamp: 0
18:39:16.276 [NioProcessor-1] DEBUG org.red5.io.flv.impl.FLVReader -
readTag, oldPos: 4597, tag header: Data Type =8
Prev. Tag Size =4325
Body size =105
timestamp =0
Body Data =null
... and message blocks like the last one continue....
More information about the Red5
mailing list