djextrarice
Visitor
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-13-2013
09:09 AM
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
https://www.dropbox.com/s/sp007uulld8b8 ... oblock.PNG
Any idea on what I need to make sure I have setup to prevent this?
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
https://www.dropbox.com/s/sp007uulld8b8 ... oblock.PNG
Any idea on what I need to make sure I have setup to prevent this?
1 REPLY 1

RokuBradO
Visitor
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-27-2013
05:39 PM
Re: Macroblocking on Bit Rate Switch
Hi,
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.
Cheers,
- brad
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.
Cheers,
- brad