Opened 9 years ago

Last modified 9 years ago

#3272 open defect

ffmpeg fails to recognize AAC in mpeg program stream container

Reported by: Pavel Koshevoy Owned by:
Priority: normal Component: avformat
Version: git-master Keywords: mpegps aac
Cc: pkoshevoy@gmail.com Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug:
How to reproduce:

$ /Developer/x86_64/bin/ffmpeg -i TimeCode-MPG-MC264-AAC-ES.264 -i TimeCode-MPG-MC264-AAC-ES.aac -c:a copy -c:v copy -f vob -y remux.mpg 
ffmpeg version N-59572-gb53d6ce Copyright (c) 2000-2014 the FFmpeg developers
  built on Jan  5 2014 11:09:00 with gcc 4.8 (SUSE Linux)
  configuration: --prefix=/Developer/x86_64 --enable-gpl --enable-runtime-cpudetect --enable-libxvid --enable-libx264 --enable-libvpx --enable-libvorbis --enable-libtheora --enable-bzlib --enable-gnutls --enable-libass --enable-libcelt --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libdc1394 --enable-version3 --disable-debug --enable-pic --disable-static --enable-shared
  libavutil      52. 60.100 / 52. 60.100
  libavcodec     55. 47.100 / 55. 47.100
  libavformat    55. 22.102 / 55. 22.102
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     4.  0.103 /  4.  0.103
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
Input #0, h264, from 'TimeCode-MPG-MC264-AAC-ES.264':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: h264 (Baseline), yuv420p(tv), 720x480 [SAR 1:1 DAR 3:2], 23.98 fps, 23.98 tbr, 1200k tbn, 47.95 tbc
[aac @ 0x7869c0] Estimating duration from bitrate, this may be inaccurate
Input #1, aac, from 'TimeCode-MPG-MC264-AAC-ES.aac':
  Duration: 00:00:15.51, bitrate: 124 kb/s
    Stream #1:0: Audio: aac, 48000 Hz, stereo, fltp, 124 kb/s
[vob @ 0x785d40] VBV buffer size not set, muxing may fail
Output #0, vob, to 'remux.mpg':
  Metadata:
    encoder         : Lavf55.22.102
    Stream #0:0: Video: h264, yuv420p, 720x480 [SAR 1:1 DAR 3:2], q=2-31, 23.98 fps, 90k tbn, 23.98 tbc
    Stream #0:1: Audio: aac, 48000 Hz, stereo, 124 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #1:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=  362 fps=0.0 q=-1.0 Lsize=    2134kB time=00:00:15.09 bitrate=1158.1kbits/s    
video:1869kB audio:236kB subtitle:0 global headers:0kB muxing overhead 1.380917%


$ ffprobe -i remux.mpg 
ffprobe version N-59572-gb53d6ce Copyright (c) 2007-2014 the FFmpeg developers
  built on Jan  5 2014 11:09:00 with gcc 4.8 (SUSE Linux)
  configuration: --prefix=/Developer/x86_64 --enable-gpl --enable-runtime-cpudetect --enable-libxvid --enable-libx264 --enable-libvpx --enable-libvorbis --enable-libtheora --enable-bzlib --enable-gnutls --enable-libass --enable-libcelt --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libdc1394 --enable-version3 --disable-debug --enable-pic --disable-static --enable-shared
  libavutil      52. 60.100 / 52. 60.100
  libavcodec     55. 47.100 / 55. 47.100
  libavformat    55. 22.102 / 55. 22.102
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     4.  0.103 /  4.  0.103
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
[mp2 @ 0xcb5040] Header missing
    Last message repeated 12 times
[mpeg @ 0xcb3aa0] decoding for stream 1 failed
[mpeg @ 0xcb3aa0] Could not find codec parameters for stream 1 (Audio: mp3, 0 channels, s16p): unspecified frame size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mpeg, from 'remux.mpg':
  Duration: 00:00:15.05, start: 0.500000, bitrate: 1161 kb/s
    Stream #0:0[0x1e0]: Video: h264 (Baseline), yuv420p(tv), 720x480 [SAR 1:1 DAR 3:2], 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
    Stream #0:1[0x1c0]: Audio: mp3, 0 channels, s16p

The output file remux.mpg plays (with sound) in Windows Media Player and Media Player Classic, but not with VLC or other FFmpeg based players.

I also have attached a version of the (nearly) same MPEG-PS file that was muxed using MainConcept SDK. This file is recognized correctly by FFmpeg as well as VLC and Windows Media Player

Attachments (3)

h264-aac-mpeg-ps-mainconcept.mpg (2.2 MB ) - added by Pavel Koshevoy 9 years ago.
File muxed with MainConcept SDK 9.6
TimeCode-MPG-MC264-AAC-ES.264 (1.8 MB ) - added by Pavel Koshevoy 9 years ago.
H.264 elementary stream
TimeCode-MPG-MC264-AAC-ES.aac (235.7 KB ) - added by Pavel Koshevoy 9 years ago.
AAC ADTS elementary stream

Change History (9)

by Pavel Koshevoy, 9 years ago

File muxed with MainConcept SDK 9.6

by Pavel Koshevoy, 9 years ago

H.264 elementary stream

by Pavel Koshevoy, 9 years ago

AAC ADTS elementary stream

comment:1 by Carl Eugen Hoyos, 9 years ago

Component: undeterminedavformat
Keywords: mpegps aac added; avformat mpeg-ps removed

comment:2 by Carl Eugen Hoyos, 9 years ago

Reproduced by developer: set
Status: newopen

comment:3 by Carl Eugen Hoyos, 9 years ago

WMP does not play aac-in-vob here (neither the MainConcept sample nor a file created with FFmpeg).

in reply to:  3 comment:4 by Pavel Koshevoy, 9 years ago

Replying to cehoyos:

WMP does not play aac-in-vob here (neither the MainConcept sample nor a file created with FFmpeg).

I am not at the computer where I was able to play the file right now. However, it runs Windows 8.1 with whatever version of Windows Media Player that implies. It may be also that the file was playable due to MainConcept DirectShow filters being installed on the system too, I could check with a DirectShow graph editor tool tomorrow.

Still, ffprobe does recognize the MainConcept file and doesn't recognize the file muxed with ffmpeg, and that seems broken

comment:5 by Carl Eugen Hoyos, 9 years ago

Works fine with WMP 12 on Windows 8.

comment:6 by Pavel Koshevoy, 9 years ago

Summary: ffmpeg fails to recognize AAC in mpeg program stream contrainerffmpeg fails to recognize AAC in mpeg program stream container
Note: See TracTickets for help on using tickets.