Opened 9 years ago
Closed 9 years ago
#4632 closed enhancement (needs_more_info)
The mov demuxer doesn't support bad data offsets in tfhd/trun
Reported by: | RedDwarf | Owned by: | |
---|---|---|---|
Priority: | wish | Component: | avformat |
Version: | git-master | Keywords: | mov |
Cc: | revol@free.fr, gael.dev@4now.net | Blocked By: | |
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
In this sample http://btskprobe.edgesuite.net/BigBuckBunny/Big%20buck%20bunny.ism/QualityLevels(2436000)/Fragments(video=0)
Which "http://btskprobe.edgesuite.net/BigBuckBunny/Big%20buck%20bunny.ism/Manifest" says was created with "Expression Encoder version 2.1.1216.0". Neither the tfhd or trun boxes specify a data offset. No discussion, the file is broken. But apparently they are on the wild...
VLC is able to play the stream correctly. From what I understand simply because it ignores data offsets. It just looks for sample sizes, looks for the mdat box and is happy with it.
It would be nice if libavformat would better handle these files. I guess a check could be added to see if the sample->pos is inside the (first) mdat box. If it isn't, use as implicit offset the start of the mdat box instead of the one from the moof.
Attachments (1)
Change History (5)
comment:1 by , 9 years ago
by , 9 years ago
Attachment: | broken_offset.ismv added |
---|
comment:2 by , 9 years ago
I have attached http://btskprobe.edgesuite.net/BigBuckBunny/Big%20buck%20bunny_300000.ismv (26 MiB) until the end of the first video mdat box.
Seems to be an old version of http://www.microsoft.com/en-us/download/details.aspx?id=18199 . The current one, done with "Expression Encoder version 4.0.1628.0", works just fine.
The error with ffplay is this, which seems to be unrelated to the data offsets problem. I noticed the data offsets problem when using my own code using libavformat (since the data offset was wrong, one avio_seek() used a offset behind the current one, the AVIOContext didn't support seek, and it broke).
$ ./ffplay /Big\ buck\ bunny_300000.ismv ffplay version N-72981-gdc87758 Copyright (c) 2003-2015 the FFmpeg developers built with gcc 5.1.1 (GCC) 20150422 (Red Hat 5.1.1-1) configuration: libavutil 54. 27.100 / 54. 27.100 libavcodec 56. 41.100 / 56. 41.100 libavformat 56. 36.100 / 56. 36.100 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 17.100 / 5. 17.100 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 2.100 / 1. 2.100 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7ff0a0004ac0] Could not find codec parameters for stream 0 (Audio: none (owma / 0x616D776F), 44100 Hz, 2 channels): unknown codec Consider increasing the value for the 'analyzeduration' and 'probesize' options [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7ff0a0004ac0] Could not find codec parameters for stream 1 (Video: none (ovc1 / 0x3163766F), none, 320x176): unknown codec Consider increasing the value for the 'analyzeduration' and 'probesize' options /Big buck bunny_300000.ismv: could not find codec parameters
comment:4 by , 9 years ago
Resolution: | → needs_more_info |
---|---|
Status: | new → closed |
Please reopen if you have a sample that plays with any other media player but cannot be decoded with FFmpeg: The sample you uploaded does not play here with vlc. If it plays for you, please post your vlc version.
Please attach a sample input file and post your failing command line including the complete, uncut console output to make this a valid ticket.