Opened 12 years ago

Closed 12 years ago

#1123 closed defect (fixed)

metadata not read correctly with non-standard AVI structure

Reported by: zavisko Owned by:
Priority: normal Component: avformat
Version: git-master Keywords: AVI metadata
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

I have found out that ffmpeg or ffprobe recognize avi metadata tags only when avi RIFF structure is in special order:
(attached file test2.avi)

  1. RIFF AVI
  2. LIST hdrl
  3. LIST INFO
  4. LIST movi
  5. idx1

if the order is different then INFO tag is not recognized and metadata are not read, for example with following order:
(attached file test1.avi)

  1. RIFF AVI
  2. LIST hdrl
  3. LIST movi
  4. idx1
  5. LIST INFO

It will be great if some future version will be able to read metadata from any position in AVI.

I have attached also a picture with structures of both files (structures.jpg)

Attachments (4)

test1.avi (750.1 KB ) - added by zavisko 12 years ago.
metadata not read correctly
test2.avi (750.1 KB ) - added by zavisko 12 years ago.
metadata read fine (INFO tag after hdrl)
structures.jpg (282.6 KB ) - added by zavisko 12 years ago.
screenshots with structures and ffprobe outputs
ffmpeg_i_test1.jpg (119.4 KB ) - added by zavisko 12 years ago.
output from "ffmpeg -i test1.avi"

Download all attachments as: .zip

Change History (10)

by zavisko, 12 years ago

Attachment: test1.avi added

metadata not read correctly

by zavisko, 12 years ago

Attachment: test2.avi added

metadata read fine (INFO tag after hdrl)

by zavisko, 12 years ago

Attachment: structures.jpg added

screenshots with structures and ffprobe outputs

comment:1 by Carl Eugen Hoyos, 12 years ago

Component: undeterminedavformat
Keywords: FourCC INFO RIFF removed

Please add output of ffmpeg -i test1.avi.
What does the specification say about the position of the INFO tag?

comment:2 by zavisko, 12 years ago

hi,
I have added the screen shot of ffmpeg -i test1.avi (ffmpeg_i_test1.jpg)

If you mean AVI structure specification I did not found anything about INFO tag position. From all documents I've read I think it does not matter where the INFO tag is. This is only my assumption as I'm not an expert :)
To add: All tags are displayed correctly in windows (in explorer or in mediaplayer) also linux tool "mediainfo" is displaying those metatags correctly. On the other side ffmpeg (ffprobe) and libextractor does not work this way.

PS: I forgot to mention that I'm using Ubuntu 10.04 (Lucid) and I have tried the official ubuntu precompiled package (ffmpeg 0.5.1) and also tried the latest release (ffmpeg 0.10.2) - precompiled for debian, downloaded from www.debian-multimedia.org

some avi documentation:
http://www.alexander-noe.com/video/documentation/
http://abcavi.kibi.ru/developer.htm

in reply to:  2 ; comment:3 by Carl Eugen Hoyos, 12 years ago

Replying to zavisko:

I have added the screen shot of ffmpeg -i test1.avi (ffmpeg_i_test1.jpg)

Screen shots are not helpful, please add complete, uncut console output (preferable current git head).

by zavisko, 12 years ago

Attachment: ffmpeg_i_test1.jpg added

output from "ffmpeg -i test1.avi"

in reply to:  3 comment:4 by zavisko, 12 years ago

Replying to cehoyos:

Replying to zavisko:

I have added the screen shot of ffmpeg -i test1.avi (ffmpeg_i_test1.jpg)

Screen shots are not helpful, please add complete, uncut console output (preferable current git head).

sorry but that was the complete output (i have replace the picture with new one which includes surrounding command lines)

how can i include git head in that output?

comment:5 by Carl Eugen Hoyos, 12 years ago

Priority: wishnormal
Status: newopen
Version: unspecifiedgit-master
$ ffmpeg -i test1.avi -i test2.avi
ffmpeg version N-39200-gb222c28 Copyright (c) 2000-2012 the FFmpeg developers
  built on Mar 24 2012 08:09:50 with gcc 4.3.2
  configuration: --cc=/usr/local/gcc-4.3.2/bin/gcc --enable-gpl
  libavutil      51. 44.100 / 51. 44.100
  libavcodec     54. 12.100 / 54. 12.100
  libavformat    54.  2.100 / 54.  2.100
  libavdevice    53.  4.100 / 53.  4.100
  libavfilter     2. 65.102 /  2. 65.102
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0.  7.100 /  0.  7.100
  libpostproc    52.  0.100 / 52.  0.100
Input #0, avi, from 'test1.avi':
  Duration: 00:00:05.92, start: 0.000000, bitrate: 1036 kb/s
    Stream #0:0: Video: mpeg4 (Simple Profile) (XVID / 0x44495658), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 30 tbr, 30 tbn, 30 tbc
    Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, s16, 96 kb/s
Input #1, avi, from 'test2.avi':
  Metadata:
    title           : oggy and cockroaches
    genre           : animation
    ICNT            : france
  Duration: 00:00:05.92, start: 0.000000, bitrate: 1036 kb/s
    Stream #1:0: Video: mpeg4 (Simple Profile) (XVID / 0x44495658), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 30 tbr, 30 tbn, 30 tbc
    Stream #1:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, s16, 96 kb/s
At least one output file must be specified

comment:6 by Michael Niedermayer, 12 years ago

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