Results 1 to 10 of 10

Thread: Silverlight Out-of-Sync Audio with SMIL

  1. #1
    Join Date
    Feb 2012
    Posts
    5

    Default 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:

    <SmoothStreamingMedia MajorVersion="2" MinorVersion="1" Timescale="10000000" Duration="77039570000"><StreamIndex Type="audio" Index="0" Chunks="3842" QualityLevels="1" Timescale="10000000" Url="QualityLevels({bitrate})/Fragments(audio={start time})/Chunks({chunk id})/WowzaSessions(924166328).isma?audioindex=1">
    <c d="20050000"/>
    <c d="20060000"/>
    <c d="20050000"/>
    <c d="20050000"/>
    <c d="20060000"/>
    ....
    </StreamIndex>
    <StreamIndex Type="video" Chunks="16874" QualityLevels="6" MaxWidth="852" MaxHeight="480" DisplayWidth="853" DisplayHeight="480" Timescale="10000000" Url="QualityLevels({bitrate})/Fragments(video={start time})/Chunks({chunk id})/WowzaSessions(924166328).ismv?audioindex=1">
    <QualityLevel Index="0" Bitrate="400000" FourCC="H264" MaxWidth="416" MaxHeight="232" CodecPrivateData="000000016764000dacec1a1ff97ff00740075100000303e90000ea608f1429380000000168eaecb22c "/>
    <QualityLevel Index="1" Bitrate="1500000" FourCC="H264" MaxWidth="852" MaxHeight="480" CodecPrivateData="000000016764001facec0d83de7fff0280027f1000003e90000ea608f18313800000000168eaecb22c "/>
    <QualityLevel Index="2" Bitrate="600000" FourCC="H264" MaxWidth="640" MaxHeight="320" CodecPrivateData="000000016764001eacec0a029bff000800091000003e90000ea608f162d3800000000168eaecb22c"/>
    <QualityLevel Index="3" Bitrate="44000" FourCC="H264" MaxWidth="416" MaxHeight="232" CodecPrivateData="000000016764000dacec1a1ff97ff00740075100000303e90000ea608f1429380000000168eaecb22c "/>
    <QualityLevel Index="4" Bitrate="1000000" FourCC="H264" MaxWidth="852" MaxHeight="480" CodecPrivateData="000000016764001facec0d83de7fff0280027f1000003e90000ea608f18313800000000168eaecb22c "/>
    <QualityLevel Index="5" Bitrate="110000" FourCC="H264" MaxWidth="416" MaxHeight="232" CodecPrivateData="000000016764000dacec1a1ff97ff00740075100000303e90000ea608f1429380000000168eaecb22c "/>
    <c d="2670000"/>
    <c d="3000000"/>
    <c d="2670000"/>
    <c d="5010000"/>
    <c d="5000000"/>
    <c d="5010000"/>
    <c d="5000000"/>
    <c d="5010000"/>
    ....
    </StreamIndex>
    <Protection>
    <ProtectionHeader SystemID="9A04F079-9840-4286-AB92-E65BE0885F95">
    .......
    </ProtectionHeader></Protection></SmoothStreamingMedia>

  2. #2

    Default

    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 [ CODE ] [ /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.

  3. #3
    Join Date
    Dec 2007
    Posts
    21,962

    Default

    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

    http://www.wowza.com/forums/content....-packetization

    Richard

  4. #4
    Join Date
    Feb 2012
    Posts
    5

    Default

    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!
    Last edited by wst0rm; 05-27-2012 at 02:59 PM.

  5. #5

    Default

    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.

  6. #6
    Join Date
    Feb 2012
    Posts
    5

    Default

    Now it's working perfectly thank you...

  7. #7

    Default

    Quote Originally Posted by wst0rm View Post
    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:

    <SmoothStreamingMedia MajorVersion="2" MinorVersion="1" Timescale="10000000" Duration="0">
    </SmoothStreamingMedia>

    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?
    Last edited by david_cota; 07-25-2012 at 03:12 PM. Reason: clarification

  8. #8

    Default

    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".

  9. #9

    Default

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

  10. #10

    Default

    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.

Similar Threads

  1. adaptive for Silverlight using smil on Wowza/EC2
    By sethbb in forum Wowza Media Server 3 for Amazon EC2 Discussion
    Replies: 1
    Last Post: 11-25-2011, 05:25 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •