Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Level 7

Macroblocking on Bit Rate Switch

Currently publishing a multi bitrate HLS stream to Akamai with an Cisco Media Processor 7000 (aka Inlet Spinnaker 7000).

I used the default Inlet settings profile provided in the Roku Encoding guide. The stream looks good. I do see some macroblocking (?) on bit rate switching.

See photo ... oblock.PNG

Any idea on what I need to make sure I have setup to prevent this?
0 Kudos
Level 7

Re: Macroblocking on Bit Rate Switch


Could you give me some more details about your setup? Is your Spinnaker publishing HLS packaged content directly to Akamai or are you using another streaming format (such as RTMP or HDS or Smooth) and that is being transmuxed into HLS packaged content?

HLS streams switch on segment boundaries. Each segment begins with some decoder configuration and if this is missing or comes in late, the decoder uses a configuration (resolution, frames per second, profile, level, etc...) for the previous streams bitrate.

If it's the former (your encoder packages), I would make sure your encoder is configured to use the same keyframe interval/GOP size settings across every bitrate rendition. Each segment needs to start with an IDR frame (keyframe). The segment sizes should also be the same. You're likely getting macroblocks here because of a misalignment of segments and the necessary (keyframe and configs) being present at the beginning of the segment.

Additionally, the same GOP size, you'll want to make sure the frames per second is consistent across all the renditions as well. It's not necessary the H.264 profile, level and stream dimensions are the same across bitrates.

If you're publishing in a different format and Akamai is packaging content into HLS for you, then you will need to speak to them and make sure they are forcing an IDR (keyframe) at the beginning of each segment. This is an option in their HLS packaging configs.


- brad
0 Kudos