Wowza Community

Performance tuning for transcode only (mostly?) applications

We want to transcode as many 3Mbit incoming RTMP streams as possible. Outgoing streams are sent via RTMP stream targeting (about 2 stream targets per transcoder). So no VOD, no DVR, no RTSP, few/no clients, no UDP etc.

I am experiencing stuttered video earlier than I had hoped (if I go beyond 1 stream for every 2 cores, I begin to see stuttering artifacts).

Many of the settings (particularly threads) seem to be relating to serving buffered content. Would it benefit a transcoding machine to reduce these settings, turn off system capabilities, or ? And if so, what are some ways to do this?

Our engineers took a look at this question and they are looking for some clarification. When you talk about turning off “buffered content” what do you mean? Are you looking to turn off VOD, DVR, RTSP, etc? Can you talk a bit more about your workflow? Particularly when you say few/no clients.

No red flags with the setup, but we do have some comments for you.

If the CPU isn’t getting to capacity (and there are no late frame error messages in the logs) it’s unlikely it’s actually an issue with transcoding the frames. This feels a bit more of a “general system tuning when using transcoder” rather than a transcoder specific tuning issue.

We think you might be hitting the limits of your machine, but you would need to look in the logs for any SKIP messages. If you are seeing those, our suggestion is to move to GPU for transcoding. If you don’t have a compatible card, you can try to reproduce your workflow on a GPU enabled instance.

Additionally, if you aren’t seeing SKIP messages, you may wan to look at the input side (network) on the video coming in. You could be maxing out your bandwidth depending on your network connection and exceeding your upload speed.

Let us know if any of this helps!

Thanks for the info on the SKIP messages - I see them in the logs, this is much better than the subjective eye test. Also thank you for your sense of machine performance limits. So perhaps this is a memory bandwidth issue?

Are there other performance - related error messages that indicate a heavily loaded system? Are they this listed somewhere? This will be helpful in lead testing.

I am about to add NVENC GPU into the mix. Will post to thread as I learn.

Thank you @Amara Graham - here is more detail:

I have a Wowza Streaming Engine server 4.8.0 (Ubuntu) that is transcoding and adding overlays. For each stream I have:

  • Incoming RTMP feed. Generally 720p/480p @ 1.0-3.0 Mbps
  • One transcoder to add overlays and recode to 720p, H.264, 720p.
  • One pass-thru transcoder, using variable length stream buffer to add short (2-30s) A/V delays
  • A small number (3 or so) of stream targets to route the transcoded streams out as RTMP.
  • OverlayCheckFrequency is reduced (250ms) for faster overlay response.
  • No direct streaming clients other than for troubleshooting purposes.

My goal is to get to as many of these streams as possible. I have a physical machine with decent CPU (8-core 3GHz, 32GB), as well as cloud servers (16 dedicated vCPU). But on those platforms I am only able to do 4, 5 streams respectively. The CPU does not max out, but streams start to glitch (lose frames?) beyond the numbers I listed.

Are there any red flags in my setup? I was hoping to get many more streams.

Fantastic Ben! Glad we got you going in the right direction.