
|
Mondain, Art or other semigod! Helping on metadata for live h264 publisher.
It's known by everyone
that i am working on a opensource live encoder, it's ugly and dirty
code for now, just to figure the work, after this, i'll rewrite
everythin on a beauty code.
Please, may I give a bit of your attention?
I am writing a publisher of H264 live content, and I am having problems
with metadata.
I got the packets generated by other "well known encoder" that comes to
"ClientBroadcastStream" and deserialized them.
I maked a "reverse" of this, serializing the new packets.
When packet arrive client (the publisher application) I got:
"19:52:45:911 - Asynchronous code error - ReferenceError: Error #1069".
Have you seen this error?
I never created a packet from scratch on my whole life, so, it's
possible that the error is obvious.
_client
is a simple RTMPClient with "published" state (some code from
StreamingProxy).
Look my
created packet:
Notify createdNotify = new Notify();
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videokeyframe_frequency", (java.lang.Integer)
5);
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009\n");
props2.put("videocodecid", (java.lang.Integer) 4);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
|

|
Re: Mondain, Art or other semigod! Helping on metadata for live h264 publisher.
SURPRISE! with "three letters other encoder" it's also give error, and
the codecid is 7, when "three letters other encoder" got closed, it
restarted with vp6.
But no, it's not working yet, any help will be appreciated.
Notify createdNotify = new Notify();
createdNotify.setTimestamp((int)
System.currentTimeMillis());
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009");
props2.put("videocodecid", (java.lang.Integer) 7);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("avcprofile", (java.lang.Integer) 66);
props2.put("avclevel", (java.lang.Integer) 31);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
iMDT - Tiago Jacobs wrote:
It's known by everyone
that i am working on a opensource live encoder, it's ugly and dirty
code for now, just to figure the work, after this, i'll rewrite
everythin on a beauty code.
Please, may I give a bit of your attention?
I am writing a publisher of H264 live content, and I am having problems
with metadata.
I got the packets generated by other "well known encoder" that comes to
"ClientBroadcastStream" and deserialized them.
I maked a "reverse" of this, serializing the new packets.
When packet arrive client (the publisher application) I got:
"19:52:45:911 - Asynchronous code error - ReferenceError: Error #1069".
Have you seen this error?
I never created a packet from scratch on my whole life, so, it's
possible that the error is obvious.
_client
is a simple RTMPClient with "published" state (some code from
StreamingProxy).
Look
my
created packet:
Notify createdNotify = new Notify();
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videokeyframe_frequency", (java.lang.Integer)
5);
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009\n");
props2.put("videocodecid", (java.lang.Integer) 4);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
|

|
Re: Mondain, Art or other semigod! Helping on metadata for live h264 publisher.
People, I don't care if it take a week to be replied, just put
"reply to Tiago" in your todo list :D
It will be a big improvement for everyone using red5 (and not much
revolutionaire, because all work was done by paul, with their mp4 code
and by art with xuggler), just putting some glue on this pieces.
Thanks so much.
iMDT - Tiago Jacobs wrote:
SURPRISE! with "three letters other encoder" it's also give error, and
the codecid is 7, when "three letters other encoder" got closed, it
restarted with vp6.
But no, it's not working yet, any help will be appreciated.
Notify createdNotify = new Notify();
createdNotify.setTimestamp((int)
System.currentTimeMillis());
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009");
props2.put("videocodecid", (java.lang.Integer) 7);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("avcprofile", (java.lang.Integer) 66);
props2.put("avclevel", (java.lang.Integer) 31);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
iMDT - Tiago Jacobs wrote:
It's known by everyone
that i am working on a opensource live encoder, it's ugly and dirty
code for now, just to figure the work, after this, i'll rewrite
everythin on a beauty code.
Please, may I give a bit of your attention?
I am writing a publisher of H264 live content, and I am having problems
with metadata.
I got the packets generated by other "well known encoder" that comes to
"ClientBroadcastStream" and deserialized them.
I maked a "reverse" of this, serializing the new packets.
When packet arrive client (the publisher application) I got:
"19:52:45:911 - Asynchronous code error - ReferenceError: Error #1069".
Have you seen this error?
I never created a packet from scratch on my whole life, so, it's
possible that the error is obvious.
_client
is a simple RTMPClient with "published" state (some code from
StreamingProxy).
Look
my
created packet:
Notify createdNotify = new Notify();
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videokeyframe_frequency", (java.lang.Integer)
5);
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009\n");
props2.put("videocodecid", (java.lang.Integer) 4);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
|

|
Re: Mondain, Art or other semigod! Helping on metadata for live h264 publisher.
Sorry Tiago, but I don't have time to look at this right now. On Tue, Jul 7, 2009 at 7:49 AM, iMDT - Tiago Jacobs <tiago@...> wrote:
People, I don't care if it take a week to be replied, just put
"reply to Tiago" in your todo list :D
It will be a big improvement for everyone using red5 (and not much
revolutionaire, because all work was done by paul, with their mp4 code
and by art with xuggler), just putting some glue on this pieces.
Thanks so much.
iMDT - Tiago Jacobs wrote:
SURPRISE! with "three letters other encoder" it's also give error, and
the codecid is 7, when "three letters other encoder" got closed, it
restarted with vp6.
But no, it's not working yet, any help will be appreciated.
Notify createdNotify = new Notify();
createdNotify.setTimestamp((int)
System.currentTimeMillis());
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009");
props2.put("videocodecid", (java.lang.Integer) 7);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("avcprofile", (java.lang.Integer) 66);
props2.put("avclevel", (java.lang.Integer) 31);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
iMDT - Tiago Jacobs wrote:
It's known by everyone
that i am working on a opensource live encoder, it's ugly and dirty
code for now, just to figure the work, after this, i'll rewrite
everythin on a beauty code.
Please, may I give a bit of your attention?
I am writing a publisher of H264 live content, and I am having problems
with metadata.
I got the packets generated by other "well known encoder" that comes to
"ClientBroadcastStream" and deserialized them.
I maked a "reverse" of this, serializing the new packets.
When packet arrive client (the publisher application) I got:
"19:52:45:911 - Asynchronous code error - ReferenceError: Error #1069".
Have you seen this error?
I never created a packet from scratch on my whole life, so, it's
possible that the error is obvious.
_client
is a simple RTMPClient with "published" state (some code from
StreamingProxy).
Look
my
created packet:
Notify createdNotify = new Notify();
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videokeyframe_frequency", (java.lang.Integer)
5);
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009\n");
props2.put("videocodecid", (java.lang.Integer) 4);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
-- http://www.xuggle.com/xu‧ggle (zŭ' gl) v. To freely encode, decode, and experience audio and video. Use Xuggle to get the power of FFmpeg in Java.
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
|

|
Re: Mondain, Art or other semigod! Helping on metadata for live h264 publisher.

Some parts of this message have been removed.
Learn more about Nabble's security policy.
Why not copy red5's meta data method?
----- Original Message -----
Sent: Tuesday, July 07, 2009 8:08
AM
Subject: Re: [Red5] Mondain,Art or other
semigod! Helping on metadata for live h264 publisher.
Sorry Tiago, but I don't have time to look at this right
now.
On Tue, Jul 7, 2009 at 7:49 AM, iMDT - Tiago Jacobs
<tiago@...> wrote:
People, I don't
care if it take a week to be replied, just put "reply to Tiago" in your todo
list :D It will be a big improvement for everyone
using red5 (and not much revolutionaire, because all work was done by paul,
with their mp4 code and by art with xuggler), just putting some glue on this
pieces. Thanks so much.
iMDT - Tiago Jacobs wrote:
SURPRISE! with "three letters other encoder"
it's also give error, and the codecid is 7, when "three letters other
encoder" got closed, it restarted with vp6.
But no, it's not
working yet, any help will be appreciated.
Notify createdNotify = new
Notify();
createdNotify.setTimestamp((int)
System.currentTimeMillis());
IoBuffer buf2 =
IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new
Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new
HashMap<Object, Object>();
props2.put("videodevice", "Microsoft LifeCam
VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer)
320);
props2.put("videodatarate", (java.lang.Integer)
200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19
2009");
props2.put("videocodecid", (java.lang.Integer) 7);
props2.put("author",
"");
props2.put("title", "");
props2.put("height", (java.lang.Integer)
240);
props2.put("avcprofile", (java.lang.Integer) 66);
props2.put("avclevel",
(java.lang.Integer) 31);
props2.put("description", "");
props2.put("rating",
"");
props2.put("framerate",
Double.parseDouble("15"));
out2.writeMap(props2, new
Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new
RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
iMDT
- Tiago Jacobs wrote:
It's known by everyone that i am
working on a opensource live encoder, it's ugly and dirty code for now,
just to figure the work, after this, i'll rewrite everythin on a beauty
code.
Please, may I give a bit of your attention?
I am
writing a publisher of H264 live content, and I am having problems with
metadata.
I got the packets generated by other "well known
encoder" that comes to "ClientBroadcastStream" and deserialized
them.
I maked a "reverse" of this, serializing the new
packets.
When packet arrive client (the publisher application) I
got: "19:52:45:911 - Asynchronous code error - ReferenceError: Error
#1069".
Have you seen this error?
I never created a packet
from scratch on my whole life, so, it's possible that the error is
obvious.
_client is a simple RTMPClient with
"published" state (some code from
StreamingProxy).
Look my created
packet:
Notify createdNotify = new Notify();
IoBuffer buf2 =
IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new
Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new
HashMap<Object, Object>();
props2.put("videokeyframe_frequency", (java.lang.Integer)
5);
props2.put("videodevice", "Microsoft LifeCam
VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer)
320);
props2.put("videodatarate", (java.lang.Integer)
200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19
2009\n");
props2.put("videocodecid", (java.lang.Integer) 4);
props2.put("author",
"");
props2.put("title", "");
props2.put("height", (java.lang.Integer)
240);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate",
Double.parseDouble("15"));
out2.writeMap(props2, new
Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new
RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________ Red5
mailing list Red5@... http://osflash.org/mailman/listinfo/red5_osflash.org
-- http://www.xuggle.com/ xu‧ggle (zŭ' gl)
v. To freely encode, decode, and experience audio and video.
Use
Xuggle to get the power of FFmpeg in Java.
_______________________________________________ Red5 mailing
list Red5@... http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
|

|
Re: Mondain, Art or other semigod! Helping on metadata for live h264 publisher.

Some parts of this message have been removed.
Learn more about Nabble's security policy.
Andy, I was looking inside red5, I debuged entire "walk" of packet.
The method's I used is from red5 meta data services (or I think so).
The amazing thing is that when "Three letter encoder" publish, the
metadata and videoPackets come inside the same channelld.
When the "RTMPClient" send metadata (with method publishStreamData), it
goes inside other channel (Data channel), this is defined in
ConnectionConsumer.java.
I tried setting the data to go inside VideoChannel, like below. But
don't worked.
I also figured that RTMPClient uses channel 5, and "Three letter
encoder" uses channel 4.
case Constants.TYPE_STREAM_METADATA:
log.trace("Meta data");
Notify notify = new Notify(((Notify)
msg).getData().asReadOnlyBuffer());
notify.setHeader(header);
notify.setTimestamp(header.getTimer());
//I set to video for testing
video.write(notify);
break;
Andy Shaules wrote:
Why not copy red5's meta data method?
-----
Original Message -----
Sent:
Tuesday, July 07, 2009 8:08 AM
Subject:
Re: [Red5] Mondain,Art or other semigod! Helping on metadata for live
h264 publisher.
Sorry Tiago, but I don't have time to look at this right now.
On Tue, Jul 7, 2009 at 7:49 AM, iMDT -
Tiago Jacobs <tiago@...> wrote:
People, I don't care if
it take a week to be replied, just put "reply to Tiago" in your todo
list :D
It will be a big improvement for everyone using red5 (and not much
revolutionaire, because all work was done by paul, with their mp4 code
and by art with xuggler), just putting some glue on this pieces.
Thanks so much.
iMDT - Tiago Jacobs wrote:
SURPRISE! with "three letters other
encoder" it's also give error, and the codecid is 7, when "three
letters other encoder" got closed, it restarted with vp6.
But no, it's not working yet, any help will be appreciated.
Notify createdNotify = new Notify();
createdNotify.setTimestamp((int)
System.currentTimeMillis());
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009");
props2.put("videocodecid", (java.lang.Integer) 7);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("avcprofile", (java.lang.Integer) 66);
props2.put("avclevel", (java.lang.Integer) 31);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
iMDT - Tiago Jacobs wrote:
It's known by everyone that i am
working on a opensource live encoder, it's ugly and dirty code for now,
just to figure the work, after this, i'll rewrite everythin on a beauty
code.
Please, may I give a bit of your attention?
I am writing a publisher of H264 live content, and I am having problems
with metadata.
I got the packets generated by other "well known encoder" that comes to
"ClientBroadcastStream" and deserialized them.
I maked a "reverse" of this, serializing the new packets.
When packet arrive client (the publisher application) I got:
"19:52:45:911 - Asynchronous code error - ReferenceError: Error #1069".
Have you seen this error?
I never created a packet from scratch on my whole life, so, it's
possible that the error is obvious.
_client is a simple RTMPClient
with "published" state (some code from StreamingProxy).
Look my created packet:
Notify createdNotify = new Notify();
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videokeyframe_frequency", (java.lang.Integer)
5);
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009\n");
props2.put("videocodecid", (java.lang.Integer) 4);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
--
http://www.xuggle.com/
xu‧ggle (zŭ' gl) v. To freely encode, decode, and experience audio and
video.
Use Xuggle to get the power of FFmpeg in Java.
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
|

|
Re: Mondain, Art or other semigod! Helping on metadata for live h264 publisher.
>From what Steven and I found out about MP4, the channel ids didnt matter all that much if at all. For example, RubyIzumi sends all its data on channel 5 (audio, video, and data). BTW I cant tell whats wrong with your code, when I want to construct meta data on the fly I just copy code from the Readers.
Paul On Tue, Jul 7, 2009 at 8:48 AM, iMDT - Tiago Jacobs <tiago@...> wrote:
Andy, I was looking inside red5, I debuged entire "walk" of packet.
The method's I used is from red5 meta data services (or I think so).
The amazing thing is that when "Three letter encoder" publish, the
metadata and videoPackets come inside the same channelld.
When the "RTMPClient" send metadata (with method publishStreamData), it
goes inside other channel (Data channel), this is defined in
ConnectionConsumer.java.
I tried setting the data to go inside VideoChannel, like below. But
don't worked.
I also figured that RTMPClient uses channel 5, and "Three letter
encoder" uses channel 4.
case Constants.TYPE_STREAM_METADATA:
log.trace("Meta data");
Notify notify = new Notify(((Notify)
msg).getData().asReadOnlyBuffer());
notify.setHeader(header);
notify.setTimestamp(header.getTimer());
//I set to video for testing
video.write(notify);
break;
Andy Shaules wrote:
Why not copy red5's meta data method?
-----
Original Message -----
Sent:
Tuesday, July 07, 2009 8:08 AM
Subject:
Re: [Red5] Mondain,Art or other semigod! Helping on metadata for live
h264 publisher.
Sorry Tiago, but I don't have time to look at this right now.
On Tue, Jul 7, 2009 at 7:49 AM, iMDT -
Tiago Jacobs <tiago@...> wrote:
People, I don't care if
it take a week to be replied, just put "reply to Tiago" in your todo
list :D
It will be a big improvement for everyone using red5 (and not much
revolutionaire, because all work was done by paul, with their mp4 code
and by art with xuggler), just putting some glue on this pieces.
Thanks so much.
iMDT - Tiago Jacobs wrote:
SURPRISE! with "three letters other
encoder" it's also give error, and the codecid is 7, when "three
letters other encoder" got closed, it restarted with vp6.
But no, it's not working yet, any help will be appreciated.
Notify createdNotify = new Notify();
createdNotify.setTimestamp((int)
System.currentTimeMillis());
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009");
props2.put("videocodecid", (java.lang.Integer) 7);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("avcprofile", (java.lang.Integer) 66);
props2.put("avclevel", (java.lang.Integer) 31);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
iMDT - Tiago Jacobs wrote:
It's known by everyone that i am
working on a opensource live encoder, it's ugly and dirty code for now,
just to figure the work, after this, i'll rewrite everythin on a beauty
code.
Please, may I give a bit of your attention?
I am writing a publisher of H264 live content, and I am having problems
with metadata.
I got the packets generated by other "well known encoder" that comes to
"ClientBroadcastStream" and deserialized them.
I maked a "reverse" of this, serializing the new packets.
When packet arrive client (the publisher application) I got:
"19:52:45:911 - Asynchronous code error - ReferenceError: Error #1069".
Have you seen this error?
I never created a packet from scratch on my whole life, so, it's
possible that the error is obvious.
_client is a simple RTMPClient
with "published" state (some code from StreamingProxy).
Look my created packet:
Notify createdNotify = new Notify();
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videokeyframe_frequency", (java.lang.Integer)
5);
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009\n");
props2.put("videocodecid", (java.lang.Integer) 4);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
--
http://www.xuggle.com/
xu‧ggle (zŭ' gl) v. To freely encode, decode, and experience audio and
video.
Use Xuggle to get the power of FFmpeg in Java.
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
-- http://gregoire.org/http://code.google.com/p/red5/http://code.google.com/p/blue5/
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
|

|
Re: Mondain, Art or other semigod! Helping on metadata for live h264 publisher.

Some parts of this message have been removed.
Learn more about Nabble's security policy.
>When packet arrive client
(the publisher application) I got: "19:52:45:911 - Asynchronous code error -
ReferenceError: Error #1069".
FME sends metadata as an 'invoke' call If i
remember right.
Red5 does not handle @setDataFrame and so meta data
sent from FME is sent to clients directly and thus you get your error async
error.
Your onMetaData function will never be called
because red5 is trying to invoke '@... on the client.
Get it? Even if your invoke is correctly
structured, red5 fails.
----- Original Message -----
Sent: Tuesday, July 07, 2009 8:48
AM
Subject: Re: [Red5] Mondain, Art or other
semigod! Helping on metadata for live h264 publisher.
Andy, I was looking inside red5, I debuged entire "walk" of
packet.
The method's I used is from red5 meta data services (or I think
so).
The amazing thing is that when "Three letter encoder" publish, the
metadata and videoPackets come inside the same channelld.
When the
"RTMPClient" send metadata (with method publishStreamData), it goes inside
other channel (Data channel), this is defined in
ConnectionConsumer.java.
I tried setting the data to go inside
VideoChannel, like below. But don't worked.
I also figured that
RTMPClient uses channel 5, and "Three letter encoder" uses channel
4.
case Constants.TYPE_STREAM_METADATA:
log.trace("Meta data");
Notify notify = new
Notify(((Notify) msg).getData().asReadOnlyBuffer());
notify.setHeader(header);
notify.setTimestamp(header.getTimer());
//I set to video for
testing
video.write(notify); break;
Andy Shaules wrote:
Why not copy red5's meta data
method?
-----
Original Message -----
Sent:
Tuesday, July 07, 2009 8:08 AM
Subject:
Re: [Red5] Mondain,Art or other semigod! Helping on metadata for live h264
publisher.
Sorry Tiago, but I don't have time to look at this right
now.
On Tue, Jul 7, 2009 at 7:49 AM, iMDT - Tiago Jacobs
<tiago@...> wrote:
People, I don't
care if it take a week to be replied, just put "reply to Tiago" in your
todo list :D It will be a big improvement for
everyone using red5 (and not much revolutionaire, because all work was
done by paul, with their mp4 code and by art with xuggler), just putting
some glue on this pieces. Thanks so much.
iMDT - Tiago Jacobs wrote:
SURPRISE! with "three letters other
encoder" it's also give error, and the codecid is 7, when "three
letters other encoder" got closed, it restarted with vp6.
But
no, it's not working yet, any help will be
appreciated.
Notify createdNotify = new
Notify();
createdNotify.setTimestamp((int)
System.currentTimeMillis());
IoBuffer buf2 =
IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new
Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2
= new HashMap<Object, Object>();
props2.put("videodevice",
"Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width",
(java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer)
200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19
2009");
props2.put("videocodecid", (java.lang.Integer)
7);
props2.put("author", "");
props2.put("title", "");
props2.put("height",
(java.lang.Integer) 240);
props2.put("avcprofile", (java.lang.Integer)
66);
props2.put("avclevel", (java.lang.Integer) 31);
props2.put("description",
"");
props2.put("rating", "");
props2.put("framerate",
Double.parseDouble("15"));
out2.writeMap(props2, new
Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new
RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
iMDT - Tiago Jacobs
wrote:
It's known by everyone that i am
working on a opensource live encoder, it's ugly and dirty code for
now, just to figure the work, after this, i'll rewrite everythin on
a beauty code.
Please, may I give a bit of your
attention?
I am writing a publisher of H264 live content, and
I am having problems with metadata.
I got the packets
generated by other "well known encoder" that comes to
"ClientBroadcastStream" and deserialized them.
I maked a
"reverse" of this, serializing the new packets.
When packet
arrive client (the publisher application) I got: "19:52:45:911 -
Asynchronous code error - ReferenceError: Error #1069".
Have
you seen this error?
I never created a packet from scratch on
my whole life, so, it's possible that the error is
obvious.
_client is a simple RTMPClient
with "published" state (some code from
StreamingProxy).
Look my created
packet:
Notify createdNotify = new
Notify();
IoBuffer buf2 =
IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new
Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object>
props2 = new HashMap<Object, Object>();
props2.put("videokeyframe_frequency", (java.lang.Integer)
5);
props2.put("videodevice", "Microsoft LifeCam
VX-1000");
props2.put("keywords", "");
props2.put("width",
(java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer)
200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate",
"Mon Jul 06 18:22:19 2009\n");
props2.put("videocodecid",
(java.lang.Integer) 4);
props2.put("author", "");
props2.put("title",
"");
props2.put("height", (java.lang.Integer) 240);
props2.put("description",
"");
props2.put("rating", "");
props2.put("framerate",
Double.parseDouble("15"));
out2.writeMap(props2, new
Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new
RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflashorg
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflashorg
_______________________________________________ Red5
mailing list Red5@... http://osflash.org/mailman/listinfo/red5_osflashorg
-- http://www.xuggle.com/ xu‧ggle (zŭ' gl) v.
To freely encode, decode, and experience audio and video.
Use
Xuggle to get the power of FFmpeg in Java.
_______________________________________________ Red5 mailing list Red5@... http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________ Red5 mailing
list Red5@... http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
|

|
Re: Mondain, Art or other semigod! Helping on metadata for live h264 publisher.
I debuged something at
client side and it seems not a metadata problem,
On red5 i am looking inside dispatchEvent of ClientBroadcastStream, I
am sysouting absolutely everything that is possible, timestamps,
datatypes, etc.
Everything is equal from one to another.
The
debug on clientside is the same with "working" and "not working"
versions (it make me think that it's not a metadata problem).
I will
make red5 don't "pipe" metadata from "Three letter encoder" to see what
happens.
Using FLV1 the codec works as expected, and writing video
H264 to a file and playing with red5
works also, it's a live streaming, so we not have cuepoints, right?
I was wondering if h264 that "Three letter encoder"
generates is the same that Xuggle generates, I am lost.
"Three letter encoder":
Host: localhost
Connecting...
onBWDone
NetConnection.onStatus [NetStatusEvent type="netStatus" bubbles=false
cancelable=false eventPhase=2 info=[object Object]]
Code: NetConnection.Connect.Success
NetConnection.onStatus [NetStatusEvent type="netStatus" bubbles=false
cancelable=false eventPhase=2 info=[object Object]]
Code: NetStream.Play.Reset
NetConnection.onStatus [NetStatusEvent type="netStatus" bubbles=false
cancelable=false eventPhase=2 info=[object Object]]
Code: NetStream.Play.Start
NetConnection.onStatus [NetStatusEvent type="netStatus" bubbles=false
cancelable=false eventPhase=2 info=[object Object]]
Code: NetStream.Play.PublishNotify
Async Error: [AsyncErrorEvent type="asyncError" bubbles=false
cancelable=false eventPhase=2 text="Error #2095" error=ReferenceError:
Error #1069]
MINE:
Host: localhost
Connecting...
onBWDone
NetConnection.onStatus [NetStatusEvent type="netStatus" bubbles=false
cancelable=false eventPhase=2 info=[object Object]]
Code: NetConnection.Connect.Success
NetConnection.onStatus [NetStatusEvent type="netStatus" bubbles=false
cancelable=false eventPhase=2 info=[object Object]]
Code: NetStream.Play.Reset
NetConnection.onStatus [NetStatusEvent type="netStatus" bubbles=false
cancelable=false eventPhase=2 info=[object Object]]
Code: NetStream.Play.Start
NetConnection.onStatus [NetStatusEvent type="netStatus" bubbles=false
cancelable=false eventPhase=2 info=[object Object]]
Code: NetStream.Play.PublishNotify
Async Error: [AsyncErrorEvent type="asyncError" bubbles=false
cancelable=false eventPhase=2 text="Error #2095" error=ReferenceError:
Error #1069]
Mondain wrote:
>From what Steven and I found out about MP4, the
channel ids didnt matter all that much if at all. For example,
RubyIzumi sends all its data on channel 5 (audio, video, and data). BTW
I cant tell whats wrong with your code, when I want to construct meta
data on the fly I just copy code from the Readers.
Paul
On Tue, Jul 7, 2009 at 8:48 AM, iMDT - Tiago
Jacobs <tiago@...> wrote:
Andy, I was looking inside
red5, I debuged entire "walk" of packet.
The method's I used is from red5 meta data services (or I think so).
The amazing thing is that when "Three letter encoder" publish, the
metadata and videoPackets come inside the same channelld.
When the "RTMPClient" send metadata (with method publishStreamData), it
goes inside other channel (Data channel), this is defined in
ConnectionConsumer.java.
I tried setting the data to go inside VideoChannel, like below. But
don't worked.
I also figured that RTMPClient uses channel 5, and "Three letter
encoder" uses channel 4.
case Constants.TYPE_STREAM_METADATA:
log.trace("Meta data");
Notify notify = new Notify(((Notify)
msg).getData().asReadOnlyBuffer());
notify.setHeader(header);
notify.setTimestamp(header.getTimer());
//I set to video for testing
video.write(notify);
break;
Andy Shaules wrote:
Why not copy red5's meta data
method?
-----
Original Message -----
Sent:
Tuesday, July 07, 2009 8:08 AM
Subject:
Re: [Red5] Mondain,Art or other semigod! Helping on metadata for live
h264 publisher.
Sorry Tiago, but I don't have time to look at this right now.
On Tue, Jul 7, 2009 at 7:49 AM, iMDT -
Tiago Jacobs <tiago@...>
wrote:
People, I don't
care if
it take a week to be replied, just put "reply to Tiago" in your todo
list :D
It will be a big improvement for everyone using red5 (and not much
revolutionaire, because all work was done by paul, with their mp4 code
and by art with xuggler), just putting some glue on this pieces.
Thanks so much.
iMDT - Tiago Jacobs wrote:
SURPRISE! with "three letters other
encoder" it's also give error, and the codecid is 7, when "three
letters other encoder" got closed, it restarted with vp6.
But no, it's not working yet, any help will be appreciated.
Notify createdNotify = new Notify();
createdNotify.setTimestamp((int)
System.currentTimeMillis());
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009");
props2.put("videocodecid", (java.lang.Integer) 7);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("avcprofile", (java.lang.Integer) 66);
props2.put("avclevel", (java.lang.Integer) 31);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
iMDT - Tiago Jacobs wrote:
It's known by everyone that i am
working on a opensource live encoder, it's ugly and dirty code for now,
just to figure the work, after this, i'll rewrite everythin on a beauty
code.
Please, may I give a bit of your attention?
I am writing a publisher of H264 live content, and I am having problems
with metadata.
I got the packets generated by other "well known encoder" that comes to
"ClientBroadcastStream" and deserialized them.
I maked a "reverse" of this, serializing the new packets.
When packet arrive client (the publisher application) I got:
"19:52:45:911 - Asynchronous code error - ReferenceError: Error #1069".
Have you seen this error?
I never created a packet from scratch on my whole life, so, it's
possible that the error is obvious.
_client is a simple RTMPClient
with "published" state (some code from StreamingProxy).
Look my created packet:
Notify createdNotify = new Notify();
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videokeyframe_frequency", (java.lang.Integer)
5);
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009\n");
props2.put("videocodecid", (java.lang.Integer) 4);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
--
http://www.xuggle.com/
xu‧ggle (zŭ' gl) v. To freely encode, decode, and experience audio and
video.
Use Xuggle to get the power of FFmpeg in Java.
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
--
http://gregoire.org/
http://code.google.com/p/red5/
http://code.google.com/p/blue5/
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
|

|
Re: Mondain, Art or other semigod! Helping on metadata for live h264 publisher.

Some parts of this message have been removed.
Learn more about Nabble's security policy.
I get, so, it is not a metadata problem, or better (the metadata
problem occurs also with "three letter encoder").
Ok, one day lost, let's try another debugging. Some tips on finding
differences?
The ramaining possibility is in VideoData packets.
Thanks,
Tiago
Andy Shaules wrote:
>When
packet arrive client (the publisher application) I got: "19:52:45:911 -
Asynchronous code error - ReferenceError: Error #1069".
FME sends metadata as an 'invoke'
call If i remember right.
Red5 does not handle @setDataFrame
and so meta data sent from FME is sent to clients directly and thus you
get your error async error.
Your onMetaData function will never
be called because red5 is trying to invoke %27@... on the client.
Get it? Even if your invoke is
correctly structured, red5 fails.
-----
Original Message -----
Sent:
Tuesday, July 07, 2009 8:48 AM
Subject:
Re: [Red5] Mondain, Art or other semigod! Helping on metadata for live
h264 publisher.
Andy, I was looking inside red5, I debuged entire "walk" of packet.
The method's I used is from red5 meta data services (or I think so).
The amazing thing is that when "Three letter encoder" publish, the
metadata and videoPackets come inside the same channelld.
When the "RTMPClient" send metadata (with method publishStreamData), it
goes inside other channel (Data channel), this is defined in
ConnectionConsumer.java.
I tried setting the data to go inside VideoChannel, like below. But
don't worked.
I also figured that RTMPClient uses channel 5, and "Three letter
encoder" uses channel 4.
case Constants.TYPE_STREAM_METADATA:
log.trace("Meta data");
Notify notify = new Notify(((Notify)
msg).getData().asReadOnlyBuffer());
notify.setHeader(header);
notify.setTimestamp(header.getTimer());
//I set to video for testing
video.write(notify);
break;
Andy Shaules wrote:
Why not copy red5's meta data
method?
-----
Original Message -----
Sent:
Tuesday, July 07, 2009 8:08 AM
Subject:
Re: [Red5] Mondain,Art or other semigod! Helping on metadata for live
h264 publisher.
Sorry Tiago, but I don't have time to look at this right now.
On Tue, Jul 7, 2009 at 7:49 AM, iMDT -
Tiago Jacobs <tiago@...> wrote:
People, I don't
care if it take a week to be replied, just put "reply to Tiago" in your
todo list :D
It will be a big improvement for everyone using red5 (and not much
revolutionaire, because all work was done by paul, with their mp4 code
and by art with xuggler), just putting some glue on this pieces.
Thanks so much.
iMDT - Tiago Jacobs wrote:
SURPRISE! with "three letters other
encoder" it's also give error, and the codecid is 7, when "three
letters other encoder" got closed, it restarted with vp6.
But no, it's not working yet, any help will be appreciated.
Notify createdNotify = new Notify();
createdNotify.setTimestamp((int)
System.currentTimeMillis());
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009");
props2.put("videocodecid", (java.lang.Integer) 7);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("avcprofile", (java.lang.Integer) 66);
props2.put("avclevel", (java.lang.Integer) 31);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
iMDT - Tiago Jacobs wrote:
It's known by everyone that i am
working on a opensource live encoder, it's ugly and dirty code for now,
just to figure the work, after this, i'll rewrite everythin on a beauty
code.
Please, may I give a bit of your attention?
I am writing a publisher of H264 live content, and I am having problems
with metadata.
I got the packets generated by other "well known encoder" that comes to
"ClientBroadcastStream" and deserialized them.
I maked a "reverse" of this, serializing the new packets.
When packet arrive client (the publisher application) I got:
"19:52:45:911 - Asynchronous code error - ReferenceError: Error #1069".
Have you seen this error?
I never created a packet from scratch on my whole life, so, it's
possible that the error is obvious.
_client is a simple RTMPClient
with "published" state (some code from StreamingProxy).
Look my created packet:
Notify createdNotify = new Notify();
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videokeyframe_frequency", (java.lang.Integer)
5);
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009\n");
props2.put("videocodecid", (java.lang.Integer) 4);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflashorg
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflashorg
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflashorg
--
http://www.xuggle.com/
xu‧ggle (zŭ' gl) v. To freely encode, decode, and experience audio and
video.
Use Xuggle to get the power of FFmpeg in Java.
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
|

|
Re: Mondain, Art or other semigod! Helping on metadata for live h264 publisher.
Art, it is out of my skills, when you have a time, please help me.
Suggestions for project name are welcome!
xglue5publisher = xuggle + glue + red5 publisher
lol
Art Clarke wrote:
Sorry Tiago, but I don't have time to look at this right
now.
On Tue, Jul 7, 2009 at 7:49 AM, iMDT - Tiago
Jacobs <tiago@...> wrote:
People, I don't care if it take a week to be replied, just put
"reply to Tiago" in your todo list :D
It will be a big improvement for everyone using red5 (and not much
revolutionaire, because all work was done by paul, with their mp4 code
and by art with xuggler), just putting some glue on this pieces.
Thanks so much.
iMDT - Tiago Jacobs wrote:
SURPRISE! with "three letters other
encoder" it's also give error, and
the codecid is 7, when "three letters other encoder" got closed, it
restarted with vp6.
But no, it's not working yet, any help will be appreciated.
Notify createdNotify = new Notify();
createdNotify.setTimestamp((int)
System.currentTimeMillis());
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009");
props2.put("videocodecid", (java.lang.Integer) 7);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("avcprofile", (java.lang.Integer) 66);
props2.put("avclevel", (java.lang.Integer) 31);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
iMDT - Tiago Jacobs wrote:
It's known by everyone
that i am working on a opensource live encoder, it's ugly and dirty
code for now, just to figure the work, after this, i'll rewrite
everythin on a beauty code.
Please, may I give a bit of your attention?
I am writing a publisher of H264 live content, and I am having problems
with metadata.
I got the packets generated by other "well known encoder" that comes to
"ClientBroadcastStream" and deserialized them.
I maked a "reverse" of this, serializing the new packets.
When packet arrive client (the publisher application) I got:
"19:52:45:911 - Asynchronous code error - ReferenceError: Error #1069".
Have you seen this error?
I never created a packet from scratch on my whole life, so, it's
possible that the error is obvious.
_client
is a simple RTMPClient with "published" state (some code from
StreamingProxy).
Look
my
created packet:
Notify createdNotify = new Notify();
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videokeyframe_frequency", (java.lang.Integer)
5);
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009\n");
props2.put("videocodecid", (java.lang.Integer) 4);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
--
http://www.xuggle.com/
xu‧ggle (zŭ' gl) v. To freely encode, decode, and experience audio and
video.
Use Xuggle to get the power of FFmpeg in Java.
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
|

|
Re: Mondain, Art or other semigod! Helping on metadata for live h264 publisher.
redxugglue ;) On Wed, Jul 8, 2009 at 9:46 AM, iMDT - Tiago Jacobs <tiago@...> wrote:
Art, it is out of my skills, when you have a time, please help me.
Suggestions for project name are welcome!
xglue5publisher = xuggle + glue + red5 publisher
lol
Art Clarke wrote:
Sorry Tiago, but I don't have time to look at this right
now.
On Tue, Jul 7, 2009 at 7:49 AM, iMDT - Tiago
Jacobs <tiago@...> wrote:
People, I don't care if it take a week to be replied, just put
"reply to Tiago" in your todo list :D
It will be a big improvement for everyone using red5 (and not much
revolutionaire, because all work was done by paul, with their mp4 code
and by art with xuggler), just putting some glue on this pieces.
Thanks so much.
iMDT - Tiago Jacobs wrote:
SURPRISE! with "three letters other
encoder" it's also give error, and
the codecid is 7, when "three letters other encoder" got closed, it
restarted with vp6.
But no, it's not working yet, any help will be appreciated.
Notify createdNotify = new Notify();
createdNotify.setTimestamp((int)
System.currentTimeMillis());
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009");
props2.put("videocodecid", (java.lang.Integer) 7);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("avcprofile", (java.lang.Integer) 66);
props2.put("avclevel", (java.lang.Integer) 31);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
iMDT - Tiago Jacobs wrote:
It's known by everyone
that i am working on a opensource live encoder, it's ugly and dirty
code for now, just to figure the work, after this, i'll rewrite
everythin on a beauty code.
Please, may I give a bit of your attention?
I am writing a publisher of H264 live content, and I am having problems
with metadata.
I got the packets generated by other "well known encoder" that comes to
"ClientBroadcastStream" and deserialized them.
I maked a "reverse" of this, serializing the new packets.
When packet arrive client (the publisher application) I got:
"19:52:45:911 - Asynchronous code error - ReferenceError: Error #1069".
Have you seen this error?
I never created a packet from scratch on my whole life, so, it's
possible that the error is obvious.
_client
is a simple RTMPClient with "published" state (some code from
StreamingProxy).
Look
my
created packet:
Notify createdNotify = new Notify();
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videokeyframe_frequency", (java.lang.Integer)
5);
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009\n");
props2.put("videocodecid", (java.lang.Integer) 4);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
--
http://www.xuggle.com/
xu‧ggle (zŭ' gl) v. To freely encode, decode, and experience audio and
video.
Use Xuggle to get the power of FFmpeg in Java.
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
-- And do this, knowing the time, that now it is high time to awake out of sleep; for now our salvation is nearer than when we first believed.
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
|

|
Re: Mondain, Art or other semigod! Helping on metadata for live h264 publisher.
Please look at:
http://code.google.com/p/redxugglue/
What do you think?
I will refactor all the code, it's very ugly to commit, I think
that a world available code will help on getting help from people and
help people deploying streaming applications.
The redxugglue code will be LGPL, but the Xuggler part is AGPL, so,
the people will be able to use the program "AS IS" (who will use the
program will be the end-users, not the streaming provider services).
The integration of the software will be using it "as is", with
some configurable parts, like logo, title, etc. The use will not be
incorporating it on other commercial projects It will make people
contribute to player / streamer, at same time they protect their other
work.
I think that everyone will win with this, contributors needed,
interested, please mail-me.
I am offering a premium ( U$ 200 ) for who make h264
"cam-capture-encode-and-publish" work for the project.
Thanks so much.
Tiago
Tyler Kocheran wrote:
redxugglue ;)
On Wed, Jul 8, 2009 at 9:46 AM, iMDT - Tiago
Jacobs <tiago@...> wrote:
Art, it is out of my skills,
when you have a time, please help me.
Suggestions for project name are welcome!
xglue5publisher = xuggle + glue + red5 publisher
lol
Art Clarke wrote:
Sorry Tiago, but I don't have time to look
at this right
now.
On Tue, Jul 7, 2009 at 7:49 AM, iMDT -
Tiago
Jacobs <tiago@...>
wrote:
People, I don't care
if it take a week to be replied, just put
"reply to Tiago" in your todo list :D
It will be a big improvement for everyone using red5 (and not much
revolutionaire, because all work was done by paul, with their mp4 code
and by art with xuggler), just putting some glue on this pieces.
Thanks so much.
iMDT - Tiago Jacobs wrote:
SURPRISE! with "three letters other
encoder" it's also give error, and
the codecid is 7, when "three letters other encoder" got closed, it
restarted with vp6.
But no, it's not working yet, any help will be appreciated.
Notify createdNotify = new Notify();
createdNotify.setTimestamp((int)
System.currentTimeMillis());
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009");
props2.put("videocodecid", (java.lang.Integer) 7);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("avcprofile", (java.lang.Integer) 66);
props2.put("avclevel", (java.lang.Integer) 31);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
iMDT - Tiago Jacobs wrote:
It's known by everyone
that i am working on a opensource live encoder, it's ugly and dirty
code for now, just to figure the work, after this, i'll rewrite
everythin on a beauty code.
Please, may I give a bit of your attention?
I am writing a publisher of H264 live content, and I am having problems
with metadata.
I got the packets generated by other "well known encoder" that comes to
"ClientBroadcastStream" and deserialized them.
I maked a "reverse" of this, serializing the new packets.
When packet arrive client (the publisher application) I got:
"19:52:45:911 - Asynchronous code error - ReferenceError: Error #1069".
Have you seen this error?
I never created a packet from scratch on my whole life, so, it's
possible that the error is obvious.
_client
is a simple RTMPClient with "published" state (some code from
StreamingProxy).
Look
my
created packet:
Notify createdNotify = new Notify();
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videokeyframe_frequency", (java.lang.Integer)
5);
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009\n");
props2.put("videocodecid", (java.lang.Integer) 4);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
--
http://www.xuggle.com/
xu‧ggle (zŭ' gl) v. To freely encode, decode, and experience audio and
video.
Use Xuggle to get the power of FFmpeg in Java.
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
--
And do this, knowing the time, that now it is high time to awake out of
sleep;
for now our salvation is nearer than when we first believed.
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
|

|
Re: Mondain, Art or other semigod! Helping on metadata for live h264 publisher.
since I came up with the name, can I be invited to be a project member? ;) On Wed, Jul 8, 2009 at 2:43 PM, iMDT - Tiago Jacobs <tiago@...> wrote:
Please look at:
http://code.google.com/p/redxugglue/
What do you think?
I will refactor all the code, it's very ugly to commit, I think
that a world available code will help on getting help from people and
help people deploying streaming applications.
The redxugglue code will be LGPL, but the Xuggler part is AGPL, so,
the people will be able to use the program "AS IS" (who will use the
program will be the end-users, not the streaming provider services).
The integration of the software will be using it "as is", with
some configurable parts, like logo, title, etc. The use will not be
incorporating it on other commercial projects It will make people
contribute to player / streamer, at same time they protect their other
work.
I think that everyone will win with this, contributors needed,
interested, please mail-me.
I am offering a premium ( U$ 200 ) for who make h264
"cam-capture-encode-and-publish" work for the project.
Thanks so much.
Tiago
Tyler Kocheran wrote:
redxugglue ;)
On Wed, Jul 8, 2009 at 9:46 AM, iMDT - Tiago
Jacobs <tiago@...> wrote:
Art, it is out of my skills,
when you have a time, please help me.
Suggestions for project name are welcome!
xglue5publisher = xuggle + glue + red5 publisher
lol
Art Clarke wrote:
Sorry Tiago, but I don't have time to look
at this right
now.
On Tue, Jul 7, 2009 at 7:49 AM, iMDT -
Tiago
Jacobs <tiago@...>
wrote:
People, I don't care
if it take a week to be replied, just put
"reply to Tiago" in your todo list :D
It will be a big improvement for everyone using red5 (and not much
revolutionaire, because all work was done by paul, with their mp4 code
and by art with xuggler), just putting some glue on this pieces.
Thanks so much.
iMDT - Tiago Jacobs wrote:
SURPRISE! with "three letters other
encoder" it's also give error, and
the codecid is 7, when "three letters other encoder" got closed, it
restarted with vp6.
But no, it's not working yet, any help will be appreciated.
Notify createdNotify = new Notify();
createdNotify.setTimestamp((int)
System.currentTimeMillis());
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009");
props2.put("videocodecid", (java.lang.Integer) 7);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("avcprofile", (java.lang.Integer) 66);
props2.put("avclevel", (java.lang.Integer) 31);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
iMDT - Tiago Jacobs wrote:
It's known by everyone
that i am working on a opensource live encoder, it's ugly and dirty
code for now, just to figure the work, after this, i'll rewrite
everythin on a beauty code.
Please, may I give a bit of your attention?
I am writing a publisher of H264 live content, and I am having problems
with metadata.
I got the packets generated by other "well known encoder" that comes to
"ClientBroadcastStream" and deserialized them.
I maked a "reverse" of this, serializing the new packets.
When packet arrive client (the publisher application) I got:
"19:52:45:911 - Asynchronous code error - ReferenceError: Error #1069".
Have you seen this error?
I never created a packet from scratch on my whole life, so, it's
possible that the error is obvious.
_client
is a simple RTMPClient with "published" state (some code from
StreamingProxy).
Look
my
created packet:
Notify createdNotify = new Notify();
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videokeyframe_frequency", (java.lang.Integer)
5);
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009\n");
props2.put("videocodecid", (java.lang.Integer) 4);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
--
http://www.xuggle.com/
xu‧ggle (zŭ' gl) v. To freely encode, decode, and experience audio and
video.
Use Xuggle to get the power of FFmpeg in Java.
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
--
And do this, knowing the time, that now it is high time to awake out of
sleep;
for now our salvation is nearer than when we first believed.
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
-- And do this, knowing the time, that now it is high time to awake out of sleep; for now our salvation is nearer than when we first believed.
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
|

|
Re: Mondain, Art or other semigod! Helping on metadata for live h264 publisher.
Sure man, I hope your contributions does not stop here.
Tyler Kocheran wrote:
since I came up with the name, can I be invited to be a
project member? ;)
On Wed, Jul 8, 2009 at 2:43 PM, iMDT - Tiago
Jacobs <tiago@...> wrote:
Please look at:
http://code.google.com/p/redxugglue/
What do you think?
I will refactor all the code, it's very ugly to commit, I think
that a world available code will help on getting help from people and
help people deploying streaming applications.
The redxugglue code will be LGPL, but the Xuggler part is AGPL, so,
the people will be able to use the program "AS IS" (who will use the
program will be the end-users, not the streaming provider services).
The integration of the software will be using it "as is", with
some configurable parts, like logo, title, etc. The use will not be
incorporating it on other commercial projects It will make people
contribute to player / streamer, at same time they protect their other
work.
I think that everyone will win with this, contributors needed,
interested, please mail-me.
I am offering a premium ( U$ 200 ) for who make h264
"cam-capture-encode-and-publish" work for the project.
Thanks so much.
Tiago
Tyler Kocheran wrote:
redxugglue ;)
On Wed, Jul 8, 2009 at 9:46 AM, iMDT -
Tiago
Jacobs <tiago@...>
wrote:
Art, it is out of my
skills,
when you have a time, please help me.
Suggestions for project name are welcome!
xglue5publisher = xuggle + glue + red5 publisher
lol
Art Clarke wrote:
Sorry Tiago, but I don't have time to
look
at this right
now.
On Tue, Jul 7, 2009 at 7:49 AM, iMDT
-
Tiago
Jacobs <tiago@...>
wrote:
People, I don't
care
if it take a week to be replied, just put
"reply to Tiago" in your todo list :D
It will be a big improvement for everyone using red5 (and not much
revolutionaire, because all work was done by paul, with their mp4 code
and by art with xuggler), just putting some glue on this pieces.
Thanks so much.
iMDT - Tiago Jacobs wrote:
SURPRISE! with "three letters
other
encoder" it's also give error, and
the codecid is 7, when "three letters other encoder" got closed, it
restarted with vp6.
But no, it's not working yet, any help will be appreciated.
Notify createdNotify = new Notify();
createdNotify.setTimestamp((int)
System.currentTimeMillis());
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009");
props2.put("videocodecid", (java.lang.Integer) 7);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("avcprofile", (java.lang.Integer) 66);
props2.put("avclevel", (java.lang.Integer) 31);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
iMDT - Tiago Jacobs wrote:
It's known by everyone
that i am working on a opensource live encoder, it's ugly and dirty
code for now, just to figure the work, after this, i'll rewrite
everythin on a beauty code.
Please, may I give a bit of your attention?
I am writing a publisher of H264 live content, and I am having problems
with metadata.
I got the packets generated by other "well known encoder" that comes to
"ClientBroadcastStream" and deserialized them.
I maked a "reverse" of this, serializing the new packets.
When packet arrive client (the publisher application) I got:
"19:52:45:911 - Asynchronous code error - ReferenceError: Error #1069".
Have you seen this error?
I never created a packet from scratch on my whole life, so, it's
possible that the error is obvious.
_client
is a simple RTMPClient with "published" state (some code from
StreamingProxy).
Look
my
created packet:
Notify createdNotify = new Notify();
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videokeyframe_frequency", (java.lang.Integer)
5);
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009\n");
props2.put("videocodecid", (java.lang.Integer) 4);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
--
http://www.xuggle.com/
xu‧ggle (zŭ' gl) v. To freely encode, decode, and experience audio and
video.
Use Xuggle to get the power of FFmpeg in Java.
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
--
And do this, knowing the time, that now it is high time to awake out of
sleep;
for now our salvation is nearer than when we first believed.
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
--
And do this, knowing the time, that now it is high time to awake out of
sleep;
for now our salvation is nearer than when we first believed.
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
|

|
Re: Mondain, Art or other semigod! Helping on metadata for live h264 publisher.
I made red5 ignore all non VideoData packets, to exclude the
possibility of metatags problem.
CHANGES ON org.red5.server.stream.ClientBroadcastStrem.java (to make
red5 only accept videoData and only the first).
private Integer m_number_videoDataPAckets = 0;
public void dispatchEvent(IEvent event) {
if(!event.getClass().getName().contains("VideoData")) return;
if(m_number_videoDataPAckets > 15) return;
else m_number_videoDataPAckets++;
Some tips in this way?
DEBUG from red5 console with "thre letter encoder" (that show image);
[DEBUG] [NioProcessor-2]
org.red5.server.stream.ClientBroadcastStream - setPublishedName:
red5StreamDemo
[INFO] [NioProcessor-2] org.red5.server.stream.ClientBroadcastStream -
Stream start
[DEBUG] [NioProcessor-2] org.red5.server.stream.ClientBroadcastStream -
CBS=@013f99af: firstPacketTime=0 (abs)
[DEBUG] [NioProcessor-2] org.red5.server.stream.ClientBroadcastStream -
CBS=@013f99af: rtmpEvent=VideoData timestamp=0 (absolute)-0 = 0
[INFO] [NioProcessor-2] org.red5.server.stream.VideoCodecFactory -
Trying codec org.red5.server.stream.codec.ScreenVideo@82c23d
[INFO] [NioProcessor-2] org.red5.server.stream.VideoCodecFactory -
Trying codec org.red5.server.stream.codec.SorensonVideo@9e4585
[DEBUG] [NioProcessor-2] org.red5.server.stream.ClientBroadcastStream -
CBS=@013f99af: rtmpEvent=VideoData timestamp=0 (absolute)-0 = 0
[DEBUG] [NioProcessor-2] org.red5.server.stream.ClientBroadcastStream -
CBS=@013f99af: rtmpEvent=VideoData timestamp=1635 (absolute)-0 = 1635
[DEBUG] [NioProcessor-2] org.red5.server.stream.ClientBroadcastStream -
CBS=@013f99af: rtmpEvent=VideoData timestamp=90 (relative)+1635 = 1725
[DEBUG] [NioProcessor-2] org.red5.server.stream.ClientBroadcastStream -
CBS=@013f99af: rtmpEvent=VideoData timestamp=119 (relative)+1725 = 1844
[DEBUG] [NioProcessor-2] org.red5.server.stream.ClientBroadcastStream -
CBS=@013f99af: rtmpEvent=VideoData timestamp=56 (relative)+1844 = 1900
[DEBUG] [NioProcessor-2] org.red5.server.stream.ClientBroadcastStream -
CBS=@013f99af: rtmpEvent=VideoData timestamp=54 (relative)+1900 = 1954
[DEBUG] [NioProcessor-2] org.red5.server.stream.ClientBroadcastStream -
CBS=@013f99af: rtmpEvent=VideoData timestamp=166 (relative)+1954 = 2120
[DEBUG] [NioProcessor-2] org.red5.server.stream.ClientBroadcastStream -
CBS=@013f99af: rtmpEvent=VideoData timestamp=36 (relative)+2120 = 2156
[DEBUG] [NioProcessor-2] org.red5.server.stream.ClientBroadcastStream -
CBS=@013f99af: rtmpEvent=VideoData timestamp=77 (relative)+2156 = 2233
[DEBUG] [NioProcessor-2] org.red5.server.stream.ClientBroadcastStream -
CBS=@013f99af: rtmpEvent=VideoData timestamp=144 (relative)+2233 = 2377
[DEBUG] [NioProcessor-2] org.red5.server.stream.ClientBroadcastStream -
CBS=@013f99af: rtmpEvent=VideoData timestamp=126 (relative)+2377 = 2503
[DEBUG] [NioProcessor-2] org.red5.server.stream.ClientBroadcastStream -
CBS=@013f99af: rtmpEvent=VideoData timestamp=63 (relative)+2503 = 2566
[DEBUG] [NioProcessor-2] org.red5.server.stream.ClientBroadcastStream -
CBS=@013f99af: rtmpEvent=VideoData timestamp=97 (relative)+2566 = 2663
[DEBUG] [NioProcessor-2] org.red5.server.stream.ClientBroadcastStream -
CBS=@013f99af: rtmpEvent=VideoData timestamp=76 (relative)+2663 = 2739
[DEBUG] [NioProcessor-2] org.red5.server.stream.ClientBroadcastStream -
CBS=@013f99af: rtmpEvent=VideoData timestamp=55 (relative)+2739 = 2794
DEBUG from red5 console with redxugglue (that dont show image);
[DEBUG] [NioProcessor-1]
org.red5.server.stream.ClientBroadcastStream - setPublishedName:
red5StreamDemo
[INFO] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream -
Stream start
[DEBUG] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream -
CBS=@0165ab39: firstPacketTime=0 (abs)
[DEBUG] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream -
CBS=@0165ab39: rtmpEvent=VideoData timestamp=0 (absolute)-0 = 0
[INFO] [NioProcessor-1] org.red5.server.stream.VideoCodecFactory -
Trying codec org.red5.server.stream.codec.ScreenVideo@1cc5d23
[INFO] [NioProcessor-1] org.red5.server.stream.VideoCodecFactory -
Trying codec org.red5.server.stream.codec.SorensonVideo@1f6d2e3
[DEBUG] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream -
CBS=@0165ab39: rtmpEvent=VideoData timestamp=67 (absolute)-0 = 67
[DEBUG] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream -
CBS=@0165ab39: rtmpEvent=VideoData timestamp=66 (relative)+67 = 133
[DEBUG] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream -
CBS=@0165ab39: rtmpEvent=VideoData timestamp=67 (relative)+133 = 200
[DEBUG] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream -
CBS=@0165ab39: rtmpEvent=VideoData timestamp=67 (relative)+200 = 267
[DEBUG] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream -
CBS=@0165ab39: rtmpEvent=VideoData timestamp=66 (relative)+267 = 333
[DEBUG] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream -
CBS=@0165ab39: rtmpEvent=VideoData timestamp=67 (relative)+333 = 400
[DEBUG] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream -
CBS=@0165ab39: rtmpEvent=VideoData timestamp=67 (relative)+400 = 467
[DEBUG] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream -
CBS=@0165ab39: rtmpEvent=VideoData timestamp=66 (relative)+467 = 533
[DEBUG] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream -
CBS=@0165ab39: rtmpEvent=VideoData timestamp=67 (relative)+533 = 600
[DEBUG] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream -
CBS=@0165ab39: rtmpEvent=VideoData timestamp=67 (relative)+600 = 667
[DEBUG] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream -
CBS=@0165ab39: rtmpEvent=VideoData timestamp=66 (relative)+667 = 733
[DEBUG] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream -
CBS=@0165ab39: rtmpEvent=VideoData timestamp=67 (relative)+733 = 800
[DEBUG] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream -
CBS=@0165ab39: rtmpEvent=VideoData timestamp=67 (relative)+800 = 867
[DEBUG] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream -
CBS=@0165ab39: rtmpEvent=VideoData timestamp=66 (relative)+867 = 933
[DEBUG] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream -
CBS=@0165ab39: rtmpEvent=VideoData timestamp=67 (relative)+933 = 1000
Mondain wrote:
>From what Steven and I found out about MP4, the
channel ids didnt matter all that much if at all. For example,
RubyIzumi sends all its data on channel 5 (audio, video, and data). BTW
I cant tell whats wrong with your code, when I want to construct meta
data on the fly I just copy code from the Readers.
Paul
On Tue, Jul 7, 2009 at 8:48 AM, iMDT - Tiago
Jacobs <tiago@...> wrote:
Andy, I was looking inside
red5, I debuged entire "walk" of packet.
The method's I used is from red5 meta data services (or I think so).
The amazing thing is that when "Three letter encoder" publish, the
metadata and videoPackets come inside the same channelld.
When the "RTMPClient" send metadata (with method publishStreamData), it
goes inside other channel (Data channel), this is defined in
ConnectionConsumer.java.
I tried setting the data to go inside VideoChannel, like below. But
don't worked.
I also figured that RTMPClient uses channel 5, and "Three letter
encoder" uses channel 4.
case Constants.TYPE_STREAM_METADATA:
log.trace("Meta data");
Notify notify = new Notify(((Notify)
msg).getData().asReadOnlyBuffer());
notify.setHeader(header);
notify.setTimestamp(header.getTimer());
//I set to video for testing
video.write(notify);
break;
Andy Shaules wrote:
Why not copy red5's meta data
method?
-----
Original Message -----
Sent:
Tuesday, July 07, 2009 8:08 AM
Subject:
Re: [Red5] Mondain,Art or other semigod! Helping on metadata for live
h264 publisher.
Sorry Tiago, but I don't have time to look at this right now.
On Tue, Jul 7, 2009 at 7:49 AM, iMDT -
Tiago Jacobs <tiago@...>
wrote:
People, I don't
care if
it take a week to be replied, just put "reply to Tiago" in your todo
list :D
It will be a big improvement for everyone using red5 (and not much
revolutionaire, because all work was done by paul, with their mp4 code
and by art with xuggler), just putting some glue on this pieces.
Thanks so much.
iMDT - Tiago Jacobs wrote:
SURPRISE! with "three letters other
encoder" it's also give error, and the codecid is 7, when "three
letters other encoder" got closed, it restarted with vp6.
But no, it's not working yet, any help will be appreciated.
Notify createdNotify = new Notify();
createdNotify.setTimestamp((int)
System.currentTimeMillis());
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009");
props2.put("videocodecid", (java.lang.Integer) 7);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("avcprofile", (java.lang.Integer) 66);
props2.put("avclevel", (java.lang.Integer) 31);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
iMDT - Tiago Jacobs wrote:
It's known by everyone that i am
working on a opensource live encoder, it's ugly and dirty code for now,
just to figure the work, after this, i'll rewrite everythin on a beauty
code.
Please, may I give a bit of your attention?
I am writing a publisher of H264 live content, and I am having problems
with metadata.
I got the packets generated by other "well known encoder" that comes to
"ClientBroadcastStream" and deserialized them.
I maked a "reverse" of this, serializing the new packets.
When packet arrive client (the publisher application) I got:
"19:52:45:911 - Asynchronous code error - ReferenceError: Error #1069".
Have you seen this error?
I never created a packet from scratch on my whole life, so, it's
possible that the error is obvious.
_client is a simple RTMPClient
with "published" state (some code from StreamingProxy).
Look my created packet:
Notify createdNotify = new Notify();
IoBuffer buf2 = IoBuffer.allocate(1024);
buf2.setAutoExpand(true);
Output out2 = new Output(buf2);
out2.writeString("@setDataFrame");
out2.writeString("onMetaData");
Map<Object, Object> props2 = new HashMap<Object,
Object>();
props2.put("videokeyframe_frequency", (java.lang.Integer)
5);
props2.put("videodevice", "Microsoft LifeCam VX-1000");
props2.put("keywords", "");
props2.put("width", (java.lang.Integer) 320);
props2.put("videodatarate", (java.lang.Integer) 200);
props2.put("presetname", "Medium Bandwidth (300 Kbps) -
H.264");
props2.put("copyright", "");
props2.put("creationdate", "Mon Jul 06 18:22:19 2009\n");
props2.put("videocodecid", (java.lang.Integer) 4);
props2.put("author", "");
props2.put("title", "");
props2.put("height", (java.lang.Integer) 240);
props2.put("description", "");
props2.put("rating", "");
props2.put("framerate", Double.parseDouble("15"));
out2.writeMap(props2, new Serializer());
buf2.flip();
createdNotify.setData(out2.buf());
RTMPMessage msg2 = new RTMPMessage();
msg2.setBody(createdNotify);
_client.publishStreamData(streamId, msg2);
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
--
http://www.xuggle.com/
xu‧ggle (zŭ' gl) v. To freely encode, decode, and experience audio and
video.
Use Xuggle to get the power of FFmpeg in Java.
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
--
http://gregoire.org/
http://code.google.com/p/red5/
http://code.google.com/p/blue5/
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
_______________________________________________
Red5 mailing list
Red5@...
http://osflash.org/mailman/listinfo/red5_osflash.org
|