[libav-bugs] [Bug 599] New: flv demuxer can't handle rtmp streamed file with broken extradata

bugzilla at libav.org bugzilla at libav.org
Wed Nov 27 19:33:25 CET 2013


http://bugzilla.libav.org/show_bug.cgi?id=599

           Summary: flv demuxer can't handle rtmp streamed file with
                    broken extradata
           Product: Libav
           Version: 0.8
          Platform: All
        OS/Version: Linux
            Status: NEW
          Severity: minor
          Priority: Normal
         Component: libavformat
        AssignedTo: bugzilla at libav.org
        ReportedBy: benjamin at southpole.se


This file that was taken from a rtmp stream has aac extra data signaling a mono
stream.

avconv -i rtmpt_stream2.flv 
avconv version 0.8.9-6:0.8.9-0ubuntu0.13.04.1, Copyright (c) 2000-2013 the
Libav developers
  built on Nov  9 2013 19:09:48 with gcc 4.7.3
[flv @ 0x1e22d40] max_analyze_duration reached
[flv @ 0x1e22d40] Estimating duration from bitrate, this may be inaccurate
Input #0, flv, from 'rtmpt_stream2.flv':
  Metadata:
    Encoder         : Omnia A/XE
    StreamTitle     : 
    StreamUrl       : 
  Duration: 00:00:11.86, start: 0.000000, bitrate: 32 kb/s
    Stream #0.0: Audio: aac, 44100 Hz, mono, s16, 32 kb/s


The file actually has parametric stereo in the bitstream:

avconv -i rtmpt_stream2.flv out.wav
avconv version 0.8.9-6:0.8.9-0ubuntu0.13.04.1, Copyright (c) 2000-2013 the
Libav developers
  built on Nov  9 2013 19:09:48 with gcc 4.7.3
[flv @ 0x25e7d40] max_analyze_duration reached
[flv @ 0x25e7d40] Estimating duration from bitrate, this may be inaccurate
Input #0, flv, from 'rtmpt_stream2.flv':
  Metadata:
    Encoder         : Omnia A/XE
    StreamTitle     : 
    StreamUrl       : 
  Duration: 00:00:11.86, start: 0.000000, bitrate: 32 kb/s
    Stream #0.0: Audio: aac, 44100 Hz, mono, s16, 32 kb/s
File 'out.wav' already exists. Overwrite ? [y/N] y
Output #0, wav, to 'out.wav':
  Metadata:
    StreamUrl       : 
    StreamTitle     : 
    encoder         : Lavf53.21.1
    Stream #0.0: Audio: pcm_s16le, 44100 Hz, mono, s16, 705 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (aac -> pcm_s16le)
Press ctrl-c to stop encoding
[aac @ 0x25e9d60] Parametric Stereo signaled to be not-present but was found in
the bitstream.
    Last message repeated 248 times
size=    1036kB time=12.03 bitrate= 705.6kbits/s    
video:0kB audio:1036kB global headers:0kB muxing overhead 0.004336%


There is an option in the git head version to use the flv metadata to "Allocate
streams according to the onMetaData array". That doesn't work as the extradata
in this file is broken, and the aac extradata parsing overwrites the channel
allocation.


File onMetaData block
DEBUG: Property: <Name:           duration, NUMBER:    0.00>
DEBUG: Property: <Name:      audiodatarate, NUMBER:    32.00>
DEBUG: Property: <Name:    audiosamplerate, NUMBER:    44100.00>
DEBUG: Property: <Name:    audiosamplesize, NUMBER:    16.00>
DEBUG: Property: <Name:             stereo, BOOLEAN:    TRUE>
DEBUG: Property: <Name:       audiocodecid, NUMBER:    10.00>
DEBUG: Property: <Name:            Encoder, STRING:    Omnia A/XE>
DEBUG: Property: <Name:        StreamTitle, STRING:    >
DEBUG: Property: <Name:          StreamUrl, STRING:    >




The proposed solution:
The audiodatarate, the codec and the stereo meta data field should be used to
decide a change of aac extra. This should result in proper channel allocation
for this type of streams.

-- 
Configure bugmail: http://bugzilla.libav.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.


More information about the libav-bugs mailing list