[FFmpeg-trac] #8426(avformat:new): Streaming some MXF files off S3 takes very long to prepare

FFmpeg trac at avcodec.org
Thu Dec 12 12:26:59 EET 2019

#8426: Streaming some MXF files off S3 takes very long to prepare
             Reporter:  zerodefect   |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  avformat     |                  Version:  git-
             Keywords:  mxf          |  master
  seekable                           |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
 Summary of the bug:

 I'm using ffplay to stream some MXF files off S3 (via https) for simple
 preview. I have a sufficient broadband connection to stream these XDCAMHD
 422 (50Mbps) files off S3.

 I note that when I try to stream some of the larger MXF files (this one is
 ~57GiB), FFplay is taking well over a minute to commence rendering.

 Interestingly, streaming the same file using GStreamer takes considerably
 less time - a few seconds to commence rendering.

 How to reproduce:
 % ffplay "https://s3.eu-west-1.amazonaws.com/test-
 ffplay started on 2019-12-12 at 09:50:31
 Report written to "ffplay-20191212-095031.log"
 Log level: 48
 ffplay version git-2019-12-08-9f7b2b3 Copyright (c) 2003-2019 the FFmpeg
   built with gcc 9.2.1 (GCC) 20191125
   configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
 fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-
 libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame
 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
 --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr
 --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack
 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2
 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-
 libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa
 --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx
 --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc
 --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
   libavutil      56. 36.101 / 56. 36.101
   libavcodec     58. 64.101 / 58. 64.101
   libavformat    58. 35.101 / 58. 35.101
   libavdevice    58.  9.101 / 58.  9.101
   libavfilter     7. 68.100 /  7. 68.100
   libswscale      5.  6.100 /  5.  6.100
   libswresample   3.  6.100 /  3.  6.100
   libpostproc    55.  6.100 / 55.  6.100

 Additional Information:

 Having generated a report (-report), I notice that the demuxer/IO looks to
 seek all the way to the end and start reading backwards. Here is a small
 snippet from the enclosed report/log file showing the seek:

 Range: bytes=0-
 Range: bytes=61964236619-
 Range: bytes=61964225536-
 Range: bytes=0-
 Range: bytes=61964220928-
 Range: bytes=61899003904-
 Range: bytes=61831648768-
 Range: bytes=61764293632-
 Range: bytes=61696938496-
 Range: bytes=61629583360-
 Range: bytes=61562228224-
 Range: bytes=61494873088-
 Range: bytes=61427517952-
 Range: bytes=61360162816-
 Range: bytes=61292807680-
 Range: bytes=61225452544-
 Range: bytes=61158097408-

 It looks like the same behaviour is seen when reading from local
 filesystem too, but it is far less noticeable when reading off my SSD.

 If run the following to disable seeking...
 ffplay -seekable 0 "https://s3.eu-west-1.amazonaws.com/test-
 the file commences rendering as fast as GStreamer

 I am very aware that devs like sample files to be kept short, but I have
 not been able to reproduce this with many other files.

Ticket URL: <https://trac.ffmpeg.org/ticket/8426>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker

More information about the FFmpeg-trac mailing list