Limitations of AMD Xilinx acceleration with Wowza Streaming Engine transcoding

The Wowza Streaming Engine and AMD Xilinx Alveo U30 integrated flow has some limitations with U30 usage. These limitations are explained in this document.

The main features of an Alveo U30-based flow (decoding, scaling, encoding) are hardware accelerated, enabling high-density real-time transcoding for live streaming.

Note: If the integrated flow is run on a free-trial mode, the scaling is performed on the CPU. For more trial information, see Wowza Streaming Engine Free Trial.

Limitations

The following sections include limitations of using an Alveo U30 card in the Wowza Streaming Engine and AMD Xilinx Alveo U30 integrated flow:

U30 decoder limitations in Wowza Streaming Engine

  • U30 does not support interlaced video streams. You can use the Wowza SW decoder for de-interlacing.
  • YUV 420 planar is not supported.
  • SEI message is not retrievable. For example, closed captions.

U30 scaler limitations in Wowza Streaming Engine

  • The input and output aspect ratio must be the same. For example, changing from 16:9 to 4:3 doesn't work.
  • Resolutions from 128x128 to 3840x2160 in multiples of four are supported. 
  • Using a stretch fit mode when configuring a transcoding template is recommended. However, if you select the fit-height or fit-width modes, width or height values are automatically adjusted to be divisible by four.
  • ABR ladder for 4Kp60 input streams is not supported (example: 4Kp60 -> 4Kp60, 1080p60, 720p60). However, ABR ladders for 4Kp30 input streams are supported (example: 4Kp30 -> 4Kp30, 1080p30, 720p30, 480p30).
  • Frame rate reduction is supported. The limitation is that the first output needs to match the incoming frame rate (example: 1080p60 -> 1080p60, 720p30, 540p30).
  • Input and output overlay is not supported.
  • YUV 420 planar is not supported.
  • Crop, rectangle, and letterboxing (black filling) are not supported.

U30 encoder limitations in Wowza Streaming Engine

  • SEI message metadata is not insertable. For example, closed captions.
  • YUV 420 planar is not supported.
  • Profile propagation to the output stream is not supported in Wowza Streaming Engine 4.8.23 and earlier, where a high profile was always written to the output stream. With version 4.8.24, the profile level for the U30 encoder is automatically set depending on output settings, such as bitrate, resolution, and codec. You can also configure the profile level from the transcoder template. See Configure AMD Xilinx accelerated transcoding.

WebRTC input-specific limitations in Wowza Streaming Engine

Support for transcoding WebRTC inputs was added to version 4.8.25 as a preview, with the following limitations:

  • Supports 1080p maximum and 360p minimum input resolutions.
  • Supports 30 fps minimum and 60 fps maximum input frame rate.
  • Supports H264 codec input and H264/H265 code outputs.
  • During transcoding jobs, you may observe stream interruptions. When a stream ends, resources may still be in use. This occurs more frequently when each card device is full or the stream has many resolution changes. To fix this, reset the device using this guide.
  • For enhanced stability, especially with 30 fps streams, set the frame rate to 40 fps by enabling fallback to CPU transcoding.
  • Constant frame rates can be achieved using Wowza Streaming Engine's suggested parameters, but zero-copy must be disabled. This negatively impacts performance.
  • After an input resolution change, the output streams freeze for approximately two seconds. If the property for constant frame rate is activated, the output will have a broken frame during that freeze time.
  • If the input is not divisible by four or the U30 card is at full capacity, Wowza Streaming Engine will reject the stream or default to CPU transcoding based on a user-modifiable parameter. However, the default to CPU will result in a broken output stream where the video isn't correct.