Opened 12 years ago

Closed 12 years ago

#1596 closed defect (fixed)

Unable to detect AAC in Quicktime file with timecode track embedded.

Reported by: Joe Pelayo Owned by:
Priority: normal Component: avformat
Version: git-master Keywords: mov
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug:

I've been working with FFMPEG for quite some time now but have recently run into a problem when attempting to use FFMPEG to encode a MOV file to an audio WAV file only. I've done this easily in the past, but was provided a MOV file encoded with H264 video and AAC audio. The MOV also has an timecode track. When I first attempted to transcode the video to a lower bit rate H264 file, the encode is fine but without audio. I noticed that examining the source file with FFProbe, I receive an error of: Unsupported codec with ID 0 for input stream 1. FFProbe identifies the video correctly at stream #0:0, but when it reaches #0:1, that's where the error occurs. This appears to be the location of the timecode stream. The audio stream is not even identified. Quicktime plays the video with audio fine and shows the correct movie properties with the AAC audio as one of the tracks along with the H264 track and the Timecode track. (See attached QT Movie Properties). VLC also plays fine. MediaInfo output and FFprobe output of the source file are attached. (As you can see in MediaInfo, the Timecode ID is before the Audio ID, which I think is the reason why FFMPEG does not see the AAC audio. My guess is that the timecode track causes the FFProbe scan to error before it reaches the audio, so the audio is not found.)

How to reproduce:

ffmpeg -i "proxy 1500k.mov.
MOV" -acodec pcm_s16le -vn -y "proxy 1500
k.wav"
ffmpeg version N-41416-g718607b Copyright (c) 2000-2012 the FFmpeg developers
  built on Jun  8 2012 12:46:19 with gcc 4.6.3
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-ru
ntime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r --enable-libass
 --enable-libcelt --enable-libopencore-amrnb --enable-libopencore-amrwb --enable
-libfreetype --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libope
njpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libth
eora --enable-libutvideo --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-
libvorbis --enable-libvpx --ena  libavutil      51. 56.100 / 51. 56.100
  libavcodec     54. 25.100 / 54. 25.100
  libavformat    54.  6.101 / 54.  6.101
  libavdevice    54.  0.100 / 54.  0.100
  libavfilter     2. 78.101 /  2. 78.101
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\videos\
proxy 1500k.mov.MOV':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2012-07-20 09:53:07
  Duration: 00:00:19.65, start: 0.000000, bitrate: 1641 kb/s
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [
SAR 1:1 DAR 16:9], 1509 kb/s, 29.97 fps, 29.97 tbr, 2997 tbn, 59.94 tbc
    Metadata:
      creation_time   : 2012-07-20 09:53:07
    Stream #0:1(eng): Data: none
    Metadata:
      creation_time   : 2012-07-20 09:53:07
Output #0, wav, to 'C:\videos\proxy 1500k.wav':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2012-07-20 09:53:07
Output file #0 does not contain any stream

I tried using the -map 0:2 (which should be the audio stream), but that also fails. I looked at other MOV videos that also have Timecode streams and I have no problem with those. But those MOVs had the Timecode after the Audio stream, which makes me think that is the cause of my problems. FFProbe always seems to throw an Unsupported codec error for videos with timecode tracks. (In my experience.) Not sure if that has anything to do with my problem. Thanks.

Attachments (3)

ffprobe.txt (1.5 KB ) - added by Joe Pelayo 12 years ago.
mediaInfo.txt (2.5 KB ) - added by Joe Pelayo 12 years ago.
movieproperties.jpg (38.7 KB ) - added by Joe Pelayo 12 years ago.

Download all attachments as: .zip

Change History (9)

by Joe Pelayo, 12 years ago

Attachment: ffprobe.txt added

by Joe Pelayo, 12 years ago

Attachment: mediaInfo.txt added

by Joe Pelayo, 12 years ago

Attachment: movieproperties.jpg added

comment:1 by Carl Eugen Hoyos, 12 years ago

Component: FFmpegavformat
Keywords: mov regression added
Priority: normalimportant
Version: unspecifiedgit-master

Please provide a sample.

comment:3 by Carl Eugen Hoyos, 12 years ago

Is this really a regression (= Does it work with an older version of FFmpeg) or did I misunderstand your original report?

comment:4 by Joe Pelayo, 12 years ago

Not regression. I don't think it works in any older version of FFMPEG. Problem appears to be related to this particular MOV file. The video plays fine in Quicktime, VLC and imports into Final Cut. FFMPEG is unable to transcode the audio track. Like FFProbe, it doesn't even see the audio track. FFProbe correctly recognizes the video track, but then errors on the 0.1 Data (which is the timecode), and then stops before the audio.

comment:5 by Carl Eugen Hoyos, 12 years ago

Keywords: regression removed
Priority: importantnormal
Reproduced by developer: set
Status: newopen
Summary: Unable to extract audio (AAC) from Quicktime file with timecode track embedded.Unable to detect AAC in Quicktime file with timecode track embedded.

Sample moved to samples/ffmpeg-bugs/trac/ticket1596

comment:6 by Michael Niedermayer, 12 years ago

Resolution: fixed
Status: openclosed
Note: See TracTickets for help on using tickets.