No Audio To Transcode Causes Video Stream To Freeze

We’ve been running on Wowza 3.6 for a while with no issues. The sources streams are H.264/Speex coming from the Flash player. I am transcoding them with audioonly - using passthrough for the video and AAC for the audio. The output Flash stream plays fine as does the transcoded stream for iOS.

After upgrading to Wowza 4.1.1 we’ve discovered a strange issue. The issue only seems to affect the iOS stream. When there is audio in the source stream, everything seems fine, but as soon as the person stops talking and there is no audio, the iOS stream freezes. Then it picks up again when the person starts talking.

Since I couldn’t copy the configuration files I’m guessing there is something in this new version that is not configured correctly. I’m running the live-lowlatency StreamType and the only packetizer is the cupertinostreamingpacketizer.

Any suggestions what to look at?

Hi

This does seem a little odd, what version of iOS are you using.

You could check for messages in the Error logs [install-dir]/logs to see if there are any messaages relating to audio and cupertino streaming.

You can post what you find in this thread here.

Daren

I think it’s the opposite of this issue:

https://www.wowza.com/forums/showthread.php?23292-Video-with-Silent-Audio-Track-produces-constant-pauses-rebufering-only-in-RTMP

If I read that correctly it freezes on the RTMP stream and the HTML served stream is OK. My scenario is the opposite. It doesn’t matter what type of mobile device that plays the m3u8 stream - they all freeze.

Not only that but it appears I make have been wrong in saying it was working on the old server. I ran a session against a 3.6 Wowza machine and encountered the same problem. As long as there is audio, it works fine. When audio stops the m3u8 stream freezes.

OK here is more info…I can replicate this behavior in the Flash client. If the Netstream.buffertime = 0 in the Flash client, the stream freezes when the audio stops. If the Netstream.buffertime = 1 in the Flash client, the video/audio works as expected. When viewing the m3u8 stream in an HTML5 video container, the stream freezes when the audio stops.

I also tried doing a mic.setSilenceLevel(0) thinking I could force the source to always send audio but that didn’t work either.

Is there some setting on the server that would handle the buffering issue or something that would be affected by the lack of audio? Now it seems it’s not just a trascoding issue because I can see it happen in the RTMP stream being played in Flash and that shouldn’t be transcoded. Perhaps I should post this in the live streaming forum?

Just curious - is the performance hit on the client viewing the video or on the server?

OK I’ve narrowed it down. By changing the encoding profile from baseline to main seems to have helped just when the amount of ambient noise in the background is nothing. But here is what is occurring now and you should easily be able to replicate this.

When I attempt to mute the audio at the source in the Flash Player using either of these two methods, the transcoded stream stops playing (iOS/Android).

mynetstream.attachAudio(null);

mymic.setSilenceLevel(100);

When I restore the audio

mynetstream.attachAudio(mymic);

mymic.setSilenceLevel(0);

the video starts playing again.

Hi,

There is a performance hit when using Netstream.buffertime 0, so that may be a different issue. However, this will be difficult to troubleshoot over the forums.

I suggest opening a ticket with support to move this along.

Send an email to support@wowza.com and provide zipped up [install-dir]/conf, [install-dir]/logs and [install-dir]/transcoder folders.

Reference this thread’s URL in the email you send.

Daren