Opened 11 years ago

Closed 11 years ago

#2419 closed defect (fixed)

ffprobe reports error on timecode stream

Reported by: milix Owned by:
Priority: normal Component: ffprobe
Version: git-master Keywords: timecode
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: yes

Description

Summary of the bug:

ffprobe says "Unsupported codec with id 0 for input stream 1" when given a Quicktime .mov with timecode, even though it does report the timecode correctly. ffmpeg from the same build does not report any error, and also shows the correct timecode.

How to reproduce:

Create a .mov with timecode:

% ffmpeg -f lavfi -i testsrc -t 5 -timecode "10:00:00:00" testsrc-with-tc.mov
ffmpeg version N-51433-g551f683 Copyright (c) 2000-2013 the FFmpeg developers
  built on Mar 28 2013 21:52:57 with gcc 4.8.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 22.101 / 52. 22.101
  libavcodec     55.  2.100 / 55.  2.100
  libavformat    55.  0.100 / 55.  0.100
  libavdevice    55.  0.100 / 55.  0.100
  libavfilter     3. 48.105 /  3. 48.105
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
[lavfi @ 02577780] Estimating duration from bitrate, this may be inaccurate
Input #0, lavfi, from 'testsrc':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 320x240 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
Codec AVOption gop_timecode (MPEG GOP Timecode in hh:mm:ss[:;.]ff format) specified for output file #0 (testsrc-with-tc.mov) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
No pixel format specified, yuv444p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[...]
Output #0, mov, to 'testsrc-with-tc.mov':
  Metadata:
    timecode        : 10:00:00:00
    encoder         : Lavf55.0.100
    Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv444p, 320x240 [SAR 1:1 DAR 4:3], q=-1--1, 12800 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo -> libx264)
Press [q] to stop, [?] for help
[...]

Examine with ffprobe:

% ffprobe version N-51433-g551f683 Copyright (c) 2007-2013 the FFmpeg developers
  built on Mar 28 2013 21:52:57 with gcc 4.8.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 22.101 / 52. 22.101
  libavcodec     55.  2.100 / 55.  2.100
  libavformat    55.  0.100 / 55.  0.100
  libavdevice    55.  0.100 / 55.  0.100
  libavfilter     3. 48.105 /  3. 48.105
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'testsrc-with-tc.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 512
    compatible_brands: qt
    encoder         : Lavf55.0.100
  Duration: 00:00:05.00, start: 0.000000, bitrate: 44 kb/s
    Stream #0:0(eng): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p, 320x240 [SAR 1:1 DAR 4:3], 39 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc
    Metadata:
      handler_name    : DataHandler
      timecode        : 10:00:00:00
    Stream #0:1(eng): Data: none (tmcd / 0x64636D74), 0 kb/s
    Metadata:
      handler_name    : DataHandler
      timecode        : 10:00:00:00
Unsupported codec with id 0 for input stream 1

Note that the timecode was read correctly by ffprobe, but it still gives an error.

Change History (1)

comment:1 by Stefano Sabatini, 11 years ago

Analyzed by developer: set
Reproduced by developer: set
Resolution: fixed
Status: newclosed

Should be fixed in:

commit 5d12ec8fb7e6022f23e5c155e42e531cea9bd860
Author: Stefano Sabatini <stefasab@gmail.com>
Date:   Mon Sep 16 19:20:56 2013 +0200

    ffprobe: downgrade log level for non fatal errors in open_input_file()
    
    Since the errors are not fatal, it is less confusing not to show them as
    errors but as warnings.
    
    Arbitrarily fixes trac ticket #2419.

If I understand the problem correctly, it should be addressed by simply downgrading the error message. I'm not still sure this is the better way to fix the problem, since ffprobe/libavcodec is not supposed to "decode" data streams, but at least this should make the output clearer. Feel free to reopen the ticket if you can suggest a better solution.

Last edited 11 years ago by Stefano Sabatini (previous) (diff)
Note: See TracTickets for help on using tickets.