Opened 20 months ago

Last modified 6 months ago

#5090 open defect

fragmented mp4 have bad dts on video track

Reported by: alberto.zacchetti Owned by:
Priority: important Component: avformat
Version: git-master Keywords: mov regression
Cc: michael Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

ffmpeg version 2.8.3-39.1

As you can see from the attached log file, any fragments of video track begin with a dts that is not the continuation of the previous fragment, while in the audio track, dts grows properly, but both audio and video have tfdt box with the correct timing.
Indeed ffplay it does not play the video, but audio only.
However this has started to happen only recently, because before everything was ok.

Attachments (2)

log-ffplay.txt (1017.6 KB) - added by alberto.zacchetti 20 months ago.
videofrag.mp4 (1.8 MB) - added by alberto.zacchetti 20 months ago.
fragmented mp4

Change History (10)

Changed 20 months ago by alberto.zacchetti

Changed 20 months ago by alberto.zacchetti

fragmented mp4

comment:1 Changed 20 months ago by cehoyos

  • Analyzed by developer unset
  • Component changed from ffplay to undetermined
  • Keywords regression added; fragmented mp4 dts tfdt removed
  • Priority changed from critical to important

Please test current FFmpeg git head and provide the command line that allows to reproduce the issue together with the complete, uncut console output to make this a valid ticket.

comment:2 Changed 20 months ago by alberto.zacchetti

The command line is included in log-ffplay.txt attached and the fragmented mp4 file used in this test is videofrag.mp4 also attached. I will try the last release.

comment:3 Changed 20 months ago by cehoyos

  • Component changed from undetermined to avformat
  • Keywords mov added
  • Reproduced by developer set
  • Status changed from new to open
  • Version changed from 2.8.3 to git-master

Regression since 4ab56667594842283dc5ae07f0daba2a2cb4d3af - related to ticket #3842.

$ ffmpeg -i videofrag.mp4 -qscale 2 out.avi
ffmpeg version N-77351-gec1b95d Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl
  libavutil      55. 11.100 / 55. 11.100
  libavcodec     57. 18.100 / 57. 18.100
  libavformat    57. 20.100 / 57. 20.100
  libavdevice    57.  0.100 / 57.  0.100
  libavfilter     6. 21.100 /  6. 21.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'videofrag.mp4':
  Metadata:
    major_brand     : iso5
    minor_version   : 1
    compatible_brands: avc1iso5dash
    creation_time   : 2015-12-16 17:00:57
  Duration: 00:00:56.08, start: 0.000000, bitrate: 265 kb/s
    Stream #0:0(ita): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 720x480, 14589 kb/s, SAR 1:1 DAR 3:2, 29.97 fps, 90k tbr, 90k tbn, 180k tbc (default)
    Metadata:
      creation_time   : 2015-12-16 17:00:57
      handler_name    : VideoHandler
    Stream #0:1(ita): Audio: aac (LC) (mp4a / 0x6134706D), 32000 Hz, stereo, fltp, 63 kb/s (default)
    Metadata:
      creation_time   : 2015-12-16 17:00:57
      handler_name    : SoundHandler
Please use -q:a or -q:v, -qscale is ambiguous
Output #0, avi, to 'out.avi':
  Metadata:
    major_brand     : iso5
    minor_version   : 1
    compatible_brands: avc1iso5dash
    ISFT            : Lavf57.20.100
    Stream #0:0(ita): Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 720x480 [SAR 1:1 DAR 3:2], q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc (default)
    Metadata:
      creation_time   : 2015-12-16 17:00:57
      handler_name    : VideoHandler
      encoder         : Lavc57.18.100 mpeg4
    Side data:
      unknown side data type 10 (24 bytes)
    Stream #0:1(ita): Audio: ac3 ([0] [0][0] / 0x2000), 32000 Hz, stereo, fltp, 192 kb/s (default)
    Metadata:
      creation_time   : 2015-12-16 17:00:57
      handler_name    : SoundHandler
      encoder         : Lavc57.18.100 ac3
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> mpeg4 (native))
  Stream #0:1 -> #0:1 (aac (native) -> ac3 (native))
Press [q] to stop, [?] for help
Past duration 0.985344 too large
Past duration 0.999016 too large
Past duration 0.999443 too large
Past duration 0.999260 too large
Past duration 0.999748 too large
Past duration 0.998711 too large
Past duration 0.999199 too large
Past duration 0.999992 too large
frame=  121 fps=0.0 q=2.0 size=    3638kB time=00:00:41.18 bitrate= 723.7kbits/s dup=0 drop=15[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1f2b3c0] DTS 336330 < 357968 out of order
frame=  121 fps=0.0 q=2.0 Lsize=    4341kB time=00:01:00.00 bitrate= 592.6kbits/s dup=0 drop=1678 speed= 105x
video:2892kB audio:1406kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.975764%

The output file is completely broken.

comment:4 Changed 20 months ago by alberto.zacchetti

libavformat56 2.8-1.1 work fine
libavformat56 2.8.2-3.1 is broken

comment:5 Changed 20 months ago by cehoyos

I tried to find out why this was broken in 2.8 but I wasn't successful:
http://thread.gmane.org/gmane.comp.video.ffmpeg.cvs/95515/focus=96922

comment:6 Changed 20 months ago by michael

  • Cc michael added

comment:7 Changed 18 months ago by alberto.zacchetti

Still no change: ffplay 2.8.6 continues to give the same problem.
I'm sorry, because now many videos are fragmented because of the dash technology and ffmpeg is not more able to handle them.
I find it strange that it can not be fixed this bug that clearly refers to the dts of the video track.

comment:8 Changed 6 months ago by cehoyos

Another sample is attached to ticket #6191.

Note: See TracTickets for help on using tickets.