Stream Choppy for RTMP playback

Hi all.

I’m setting up Wowza Streming Engine 4.0.1 to use as a live encoder machine. My desired scenario is to have a set up that can ingest an RTMP live stream, transcode it into different bitrates and then republish to another server.

Currently I have set up the server as a production server in WSE Manager, and that’s all the performance tweak I’ve done. Hardware specs are:

CPU i7 2600K

RAM 8GB DDR3@1600MHz

HDD Crucial C300 SSD

I’ve been reading about this issue but haven’t find any help. I’ve tried to use a freshly set up application for live streaming with only RTMP playback enabled and published a 500k stream just to test a simple scenario but I get choppy playback under this circumstances. Obviously I get choppy playback for 2Mbps stream @ 720p encoded to other 5 bitrates that are then republished using WSE addon.

CPU utilization and RAM utilization is way under 20% at all time. For transcoding I’m using Intel Quick Sync 1.4 with the HD3000 GPU in the 2600k and CPU usage is really low, but it’s important to note I’m getting choppy playback even if I’m not transcoding at all.

Hope this describes my scenario pretty well.

Thanks in advance for any help you can provide.

Regards

Eduardo

Hi Eduardo,

Can you provide detail about the incoming stream:

What is the source?

What is the video and audio codec?

Keyframe interval(GOP length)?

FPS?

Profile setting?

What player are you testing playback in?

Salvadore

Eduardo,

500 + 64kbs is not very high, but for RTMP playback, choppiness is usually a bitrate/bandwidth problem. It might be a bottle-neck between the encoder and Wowza, or between Wowza and the playback client you are testing.

You can use this tool at the playback client location to measure bandwith between Wowza and that client location.

And you can use this tool at the encoder location to measure client to Wowza bandwidth

You can eliminate the encoder-side, for testing purposes, by creating a server-side stream using this scheduler.

Richard

Eduardo,

The transcoder params you indicate you are working with might help, but in my own tests and other customers remarks, I haven’t seen significant differences. I think it depends on the source and many other factors, that is difficult to transcode to actual CBR. I think if anything it is a constrained VBR, i.e. with high and low thresholds.

Richard

Sorry for the misread. Frame rate is not configurable. In some cases the frame rate of the source is not in the metadata. That might be the problem. You can tell the Transcoder what the source frame rate is by adding sourceStreamFrameRate Property following this guide

Richard

Do you experience the same issues if you test playback in one of the Wowza example players?

If you change the fps to 30 and the GOP length to 2 seconds, so every 60 frames, do you notice any improvement?

Salvadore

Hi Eduardo,

Can you provide detail about the incoming stream:

What is the source?

What is the video and audio codec?

Keyframe interval(GOP length)?

FPS?

Profile setting?

What player are you testing playback in?

Salvadore

Ni Salvadore. Thanks for the answer

Codec is H264 for video and AAC -LC for audio.

The encoder is FMLE. Bitrate for video is 500kbps and for audio 64kbps. Encoding parameters are baseline profile, level 3.1 and keyframe interval of 3 seconds. Frame rate is 29.97 and the source is analog TV captured by a blackmagic intensity pro through HDMI in NTSC 720x480.

Playback was tested on osmf (SMP) and flvplayback (as3 video).

There is no buffer nor frame drops on the publish side.

One thing that happens during playback is sudden fast forwards as well as choppyness.

By the way video plays fine when published to adobe media server.

Do you experience the same issues if you test playback in one of the Wowza example players?

If you change the fps to 30 and the GOP length to 2 seconds, so every 60 frames, do you notice any improvement?

Salvadore

Wowza test player for rtmp is Strobe Media Playback (the same I am using). I’ll try to change GOP size and report any changes, but I don’t think that is the problem. Also I’m forced to encode at 29.97 fps, but I don’t think that’s the problem either.

Salvadore, I changed keyframe interval to 2 seconds, and I checked and even though the capture card is set to 29.97, FMLE encodes @30fps constant.

Here are 2 live streams that I am publishing right now, one to Adobe Media Server and the other to Wowza Streaming Engine, can you tell the difference? I’ll leave it streaming some minutes. Thanks

WSE : http://usa3.lineadgroup.com/embed/?src=rtmp://arg1.lineadgroup.com:1936/live1/definst/testlive

AMS: http://usa3.lineadgroup.com/embed/?src=rtmp://arg1.lineadgroup.com/live/definst/testlive

Still problems with frame drops. Any ideas?

Eduardo,

500 + 64kbs is not very high, but for RTMP playback, choppiness is usually a bitrate/bandwidth problem. It might be a bottle-neck between the encoder and Wowza, or between Wowza and the playback client you are testing.

You can use this tool at the playback client location to measure bandwith between Wowza and that client location.

And you can use this tool at the encoder location to measure client to Wowza bandwidth

You can eliminate the encoder-side, for testing purposes, by creating a server-side stream using this scheduler.

Richard

My upload and download values are okay, way above the streams I’m trying to play, what I’ve realized is that Strobe Media Playback (the player I’m using) and I think Flash Player Video, drop frames when they’re not able to play a single stream, while Strobe Media Playback buffers content when I provide an Adaptive bitrate stream to playback.

So I think choppyness is a bandwidth related issue and sometimes FlashPlayer issue when there is some frame drops in low bandwidth streams. Overall in Adaptive bitrate I’m getting a relatively good playback but it’s definitely not perfect.

Another issue I’m having, that I’ll be posting in the Transcoder forum, is that Wowza Transcoder produces variable frame rate streams. I am using Intel Quick Sync H.264 encoder version 1.4 with a i7 2600k CPU. CPU utilization is really low and I have lots of RAM available. I tried to tweak some params in the Transcoder but with not much success. Any ideas?

Thanks.

Eduardo

Eduardo,

The transcoder params you indicate you are working with might help, but in my own tests and other customers remarks, I haven’t seen significant differences. I think it depends on the source and many other factors, that is difficult to transcode to actual CBR. I think if anything it is a constrained VBR, i.e. with high and low thresholds.

Richard

Hi Richard. THanks for your answer. I’m not talking about constant bit rate, what I need is constant frame rate, that is having the fps constant.