Silverlight Out-of-Sync Audio with SMIL

Hi,

I’m using Wowza’s ABR solution with 6 different video profiles using ios, rtmp and silverlight.

Everything works fine with ios and rtmp (flash) but when i get it working with silverlight’s default player it plays the audio completely out-of-sync for some reason.

Here is the manifest:

Hi wst0rm,

Happy to help figure this out.

Can you describe your setup in more detail? Describe your source stream: encoder make/model, codecs, bitrate, resolution, keyframe interval, etc… A keyframe interval of 2 sec is recommended.

Can you post your transcoder template? FYI, you can encode large bits of text in BB code brackets, for readability.

Have you done any troubleshooting, such as sending a low complexity stream and using a transcoder template with just two total transcoded streams? Any error messages, or pattern you notice?

If you don’t get it sorted, it will help if you can provide steps to reproduce.

Now it’s working perfectly thank you…

Testing this. Looks like a solution to a problem we have been seeing. When we remove system bitrate and width properties the manifest looks like this:

There are no streams declared so we err out and can’t play back.

gutted smil looks like this:

<smil>
	<head>
	</head>
	<body>
		<switch>
			<video src="mp4:SAMPLE_16X9_2398_1280x720_ftr.mp4"/>
			<video src="mp4:SAMPLE_16X9_2398_960x540_ftr.mp4"/>
			<video src="mp4:SAMPLE_16X9_2398_720x404_ftr.mp4"/>
			<audio src="mp4:SAMPLE_16X9_2398_720x404_ftr.mp4"/>	
		</switch>
	</body>
</smil>

smoothStreamingUseSMILBitrates is not enabled.

Any other details needed to make the auto-detect work for silverlight?

Thanks Randall, I’m mostly just curious at this point how this guy was able to smooth out his playback in a way that seems to stop me from playing at all. On the other hand, if you have a guide to smil tags for silverlight I would love to see it. I won’t be able to do adaptive because I can’t get keyframes synced but I still want to optimize as much as possible.

Thanks again.

Audio sync issue in live stream is encoder issue. Some clients, like Flash RTMP clients, are able to adjust on the fly, but others like iOS devices are not. You can debug the issue by enabling this Property

https://www.wowza.com/docs/how-to-debug-aac-or-mp3-timecode-issues-with-apple-hls-packetization

Richard

Your manifest bitrates and resolutions don’t match your .smil file. This is likely the issue. You could remove the bitrate and size info from the .smil and the corresponding property from your Application.xml. The values will be autodetected.

The reason it works with the other protocols but not Smooth is because smooth only uses the audio from the first item in the list. If the actual bitrate doesn’t match what’s in the .smil, you’ll probably have an audio sync problem.

Hi David,

In my in my extensive testing with both live and VOD streams “Setting UseSmilBitrates, with accurate bitrates in in ascending order in the smi, seems to work well.”

Also, be sure to refresh the smooth player browser window when changing things. Sometimes errors are resolved this way.

I am not able to open the smil in the player if the smil is missing the bitrate entries. I get “failed to download manifest: d”.

I’ll ask around about the smoothStreamingUseSMILBitrates property. Maybe someone else has some experience with smooth and can chime in.

Hi Richard,

Thank you for your help. Actually I’m using the VoD service so Live Streams issues are out of the picture.

Here is one of my SMIL files:

<smil>
  <head>
  </head>
  <body>
    <switch>
      <video src="mp4:697627/697627-DUAL-2000-1280x720.mp4" system-bitrate="2000000" width="1280"/>
      <video src="mp4:697627/697627-DUAL-1000-854x480.mp4" system-bitrate="1000000" width="854"/>
      <video src="mp4:697627/697627-DUAL-600-640x320.mp4" system-bitrate="600000" width="640"/>
      <video src="mp4:697627/697627-DUAL-400-416x234.mp4" system-bitrate="400000" width="416"/>
      <video src="mp4:697627/697627-DUAL-110-416x234.mp4" system-bitrate="110000" width="416"/>
      <video src="mp4:697627/697627-DUAL-44-416x234.mp4" system-bitrate="44000" width="416"/>
    </switch>
  </body>
</smil>
 

All of the files above are in sync and account for. As I said it works perfectly on RTMP and HLS… It’s just on Silverlight/Smooth Streaming that for some reason the ABR doesn’t Work.

I’ve already checked my config and followed the ABR Tutorial to the letter including the Application.xml Conf:

                <HTTPStreamer>
                        <!-- Properties defined here will override any properties defined in conf/HTTPStreamers.xml for any HTTPStreamer loaded by this applications -->
                        <Properties>
                                 <Property>
                                         <Name>smoothStreamingUseSMILBitrates</Name>
                                         <Value>true</Value>
                                         <Type>Boolean</Type>
                                 </Property>
                        </Properties>
                </HTTPStreamer>

Cheers!

Now it’s working perfectly thank you…