[FFmpeg-trac] #8426(avformat:new): Streaming some MXF files off S3 takes very long to prepare
FFmpeg
trac at avcodec.org
Thu Dec 12 21:50:12 EET 2019
#8426: Streaming some MXF files off S3 takes very long to prepare
--------------------------------------+------------------------------------
Reporter: zerodefect | Owner:
Type: defect | Status: new
Priority: normal | Component: avformat
Version: git-master | Resolution:
Keywords: mxf seekable | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
--------------------------------------+------------------------------------
Comment (by Tjoppen):
This is because mxfdec.c parses all partition headers in the file before
demuxing. This is done backwards since there is no "!NextPartition" value
in the partition headers. This is necessary to figure out the BodySID of
each partition, which is necessary for seeking to work. See
mxf_read_seek(), mxf_edit_unit_absolute_offset() and
mxf_absolute_bodysid_offset().
If you do not need seeking you can mark the file as not seekable and it'll
work just fine, as you have noticed. You could configure your web server
to refuse seeking on the files to make this work automagically for
everyone else.
Potential solutions:
The file has a !RandomIndexPack (RIP) of size 11087, with 921 entries.
This means 921+ seeks to parse all partitions, and at least as many
allocations. It should be possible to do this lazily, especially when a
file has a RIP. You still run into an almost impossible problem if a user
wants to seek into the middle of a file though, and I would rather not
make the code even more complicated to try and handle that.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/8426#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list