--
You received this message because you are subscribed to the Google Groups "xuggler-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/xuggler-users?hl=en.
--
You received this message because you are subscribed to the Google Groups "xuggler-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/xuggler-users?hl=en.
Thank you for that tutorial !
On Aug 24, 2010 7:38 AM, "Art Clarke" <[email protected]> wrote:
Thanks Stefan! That's awesome.
On Tue, Aug 24, 2010 at 1:15 AM, bebeto <[email protected]> wrote:
>
> I posted a short tutorial on transcoding mpeg4/amr incoming streams to
> rtmp using xuggler adva...
--
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.
--
You received this message because you are subscribed to the Google Groups "xuggler-users" grou...
I posted a short tutorial on transcoding mpeg4/amr incoming streams to
rtmp using xuggler advanced api.
http://www.brokenmill.com/2010/08/xuggler-rtmp-howto/
--
You might also want to minimize the reference frames to avoid the player to start buffering. Also any vbv settings will also introduce a delay/buffer in the client.
Even if you force the first frame to be the key-frame, you might still have the problem for clients subscribing later (depending on the reference frame count). In those cases, you have to experiment with changing the GOP value to something that is acceptable to you – for example if you set GOP to a low value, you won’t have this problem but quality might suffer and vice versa.
Siva.
Updated the tutorial... for red5 pushing.
Hope it helps.
Stefan
IPacket packet = IPacket.make();
IConverter converter =
ConverterFactory.createConverter(currentScreenshot,
IPixelFormat.Type.YUV420P);
IVideoPicture outFrame = converter.toPicture(currentScreenshot,
timeStamp);
outFrame.setKeyFrame(true);
outFrame.setQuality(0);
coder.encodeVideo(packet, outFrame, 0);
This didn't seem to make a difference.
packet.isComplete()
...is never 'true' until image 37?
for what its worth.... WHat is the purpose, and can you 'wait' for it to be
complete rather than blasting past and dropping it?
--
You received this message because you are subscribed to the Google Groups "xuggler-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/xuggler-users?hl=en.
You shouldn't be stuck if you follow the tutorial. Use the oflaDemo
for testing, before implementing your own red5 application. (test if
pushing works first by using the ffmpeg binary like here:
http://blog.xuggle.com/2010/06/18/xuggle-now-has-librtmp-support/)
If this works, them implementing a xuggler app for publishing rtmp
like in the tutorial should be straightforward.
Don't use B-Frames; If you set your B-frame threshold to a non-zero number then the H264 encoder has to buffer frames. For a full definition of the types of settings x264 can use, well, that's beyond the scope of this list, but check here for how x264 thinks of low-latency encoding:
http://x264dev.multimedia.cx/?p=249
And then see libx264.c in the captive/ffmpeg/csrc/libavcodec directory for how FFmpeg command line options map to x264 command line options. Then in Xuggler, set the relevant settings through the setProperty command.