Opened 8 years ago
Closed 7 years ago
#6138 closed defect (wontfix)
MP4 video is not displayed
Reported by: | cgbug | Owned by: | |
---|---|---|---|
Priority: | important | Component: | avformat |
Version: | git-master | Keywords: | mov edts regression |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | yes |
Description
Video is detected correctly, but not displayed by FFplay.
Sample:
https://www.datafilehost.com/d/6cc6bcac
Regression since:
http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=ca6cae73db207f17a0d5507609de12842d8f0ca3
Change History (9)
comment:1 by , 8 years ago
Keywords: | mov edts regression added |
---|---|
Priority: | normal → important |
Reproduced by developer: | set |
Status: | new → open |
comment:2 by , 8 years ago
This video has a video edit list with duration zero.
elst
entry_count: 1
segment duration, media time, media rate, media rate fraction
0, 3003, 1, 0
With the edit list being parsed correctly from that patch on, we don't get any video. This is the same behavior when played through QuickTime 10.4 or QuickTime 7. Looks like ffmpeg is doing the right thing now.
comment:3 by , 8 years ago
It might be correct from the perspective of a video editor. But FFmpeg is also widely used by video playback applications. So there should really be an option to ignore the edit list. Maybe an option to ignore it completely (disabled by default) and an option to avoid discarding entire tracks like in this sample (enabled by default).
comment:4 by , 8 years ago
What's wrong with -ignore_editlist 1
?
Note that not ignoring the edit list is crucial for playback of many relevant samples.
comment:5 by , 8 years ago
My apologies, I didn't know that option already existed.
https://www.w3.org/2013/12/byte-stream-format-registry/isobmff-byte-stream-format.html
Section 3 mentions a single edit list with a duration of zero. But I am not sure how to interpret it.
comment:6 by , 8 years ago
if edit list have 1 entry with duration = 0 and media time > 0 - it must interpret as timestamp offset(delay) for all packets. And when read packet need add this offset to packet timestamp.
This idea/code is working in MPC-BE.
comment:7 by , 8 years ago
It is not clear if the edit list duration zero section in https://www.w3.org/2013/12/byte-stream-format-registry/isobmff-byte-stream-format.html speaks for non-fragmented MP4 files too.
At least I played such a file using HTML5 video tag, and it doesn't play. Until it is clear in the specification, I will ask you to please use the -advanced_editlist=0 option to make these files playable.
This option was introduced in http://git.videolan.org/?p=ffmpeg.git;a=commit;h=ef71dc7948322254d1f0fa41218b91f2da0279d9 and will turn off the edit list parsing features introduced in http://git.videolan.org/?p=ffmpeg.git;a=commit;h=ca6cae73db207f17a0d5507609de12842d8f0ca3
comment:8 by , 8 years ago
The file originates from the web (YouTube) so it might have actually been fragmented originally and merged by the download tool.
comment:9 by , 7 years ago
Analyzed by developer: | set |
---|---|
Resolution: | → wontfix |
Status: | open → closed |
Closing this bug as wontfix. As explained in the comment:7, I think we are doing the right thing, and we are also consistent with what Quicktime player does. Please use -advanced_editlist=0 for workaround.