Wowza Community

AAC streaming problem

I observed that in some rare cases, when I use jwplayer to play a recorded stream, I cannot hear any sound. So I grabbed the archived file and use ffprobe to analyze the file:

~$ ffprobe temp.flv 
FFprobe version SVN-r23840, Copyright (c) 2007-2010 the FFmpeg developers
...
  libavutil     50.19. 0 / 50.19. 0
  libavcodec    52.78. 0 / 52.78. 0
  libavformat   52.71. 0 / 52.71. 0
  libavdevice   52. 2. 0 / 52. 2. 0
  libavfilter    1.20. 1 /  1.20. 1
  libswscale     0.11. 0 /  0.11. 0
[aac @ 0x101012e00] channel element 1.0 is not allocated
    Last message repeated 8656 times
[flv @ 0x101011c00] Estimating duration from bitrate, this may be inaccurate
Input #0, flv, from 'temp.flv':

The file is playable in mplayer despite of the following messages:

[aac @ 0x10186d200] channel element 1.0 is not allocated
    Last message repeated 8656 times
[flv @ 0x102010c00] Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: video (h264), -vid 0
[lavf] stream 1: audio (aac), -aid 0
VIDEO:  [H264]  320x240  0bpp  15.000 fps    0.0 kbps ( 0.0 kbyte/s)
Clip info:
 duration: 0
 creationdate: Fri Jun 25 14:27:46
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
==========================================================================
Opening audio decoder: [faad] AAC (MPEG2/4 Advanced Audio Coding)
Unsupported LATM configuration: 1 programs/ 2 subframes, 3 layers, allstreams: 1
versionA not supported
versionA not supported
Unsupported LATM configuration: 1 programs/ 2 subframes, 3 layers, allstreams: 1
versionA not supported
versionA not supported

I then manually parsed the flv file, I found the AAC header packet is missing. In the other word,

	faacEncGetDecoderSpecificInfo(hEncoder, &extra, &extra_size);

the “extra_size” octets in “extra” are missing.

It is usually the first audio packet sent through RTMP audio channel, but due to some unknown reason, it is lost. That’s why Flash Player cannot play it: it failed to recognize the information required to decode it.

It is quite hard to reproduce the problem. wowza is set up on my localhost, so I don’t think it is network-latency-related.

Is it possible for wowza to provide a valid AAC header when it does not exist?

Thanks.

I don’t really understand the question.

Charlie

No, Wowza is just going to record what it gets.

Richard

I kind of understand the issue. What encoder are you using? In general if using an RTSP/RTP encoder then we extract this information from the SDP data that is exchanged. I have not heard of others with this issue. Not sure why you are seeing it. I would need to reproduce it to have a chance of understanding it.

Charlie

duplicate

No, Wowza is just going to record what it gets.

Richard

What is the logic of live-streaming a file which contains valid AAC header?

First, wowza sends the AAC header packet to make it possible for the player recognize the audio format, then, sends the audio data part. Is it correct?

The problem is very hard to reproduce, but it does happens occasionally, what should I do for a workaround? If I patch the recorded file on-the-fly, will it also help for live streaming?

Thanks.

I use FMLE to push rtmp stream to wowza. It seems that sometimes the first audio packet (header) is missing, but never has been the video header packet. It is very hard to reproduce, so I think maybe I have to find a workaround.

For a recorded live stream, does wowza fetch the audio header from the recorded file or just use a header in memory?

Thanks.

Is it possible to re-stream a stream with H.264 video and “ffmpeg aac in latm” audio codec (as mplayer recognized) in Wowza? If yes, could you please say how?

I tried It by using “AAC” codec in transcoder file and default audio packetizer and also several scenarios that have been explained in Wowza documentations, but i couldn’t get any audio in my (for example rtmp) output stream and also VLC is unable to play the whole stream (I mean no audio and no video displayed!).