Dear libav developers,
please don't remove the concat: protocol or disable it by default, as
previously suggested in this list.
Right now it is the only way to correctly play back a recording that
is split into many segments, without wasting space, time, or giving up
on useful functionality.
Segmented recordings are much more widespread than some seem to think.
All DVB receivers with a recording function (really, *all* of them
that I have ever seen, both DVB-S and DVB-T) save the streams as
directories of segmented TS files. Many web streams are also composed
of a sequence of TS files, that will be saved as such when the stream
is downloaded. And so on.
The concat: protocol, as exposed by most libav-based video players,
allows playing back such recordings easily and correctly. For example,
using the mpv player and a bash one-liner:
mpv ffmpeg://concat:$(IFS='|'; f=(segment*.ts); echo "${f[*]}")
Without the concat: protocol, one would need to either:
1. cat the segments into a huge TS file, wasting space, time, and
possibly exceeding the filesystem limits;
or
2. play them back as a (simple) playlist, which in all my tests I
could never get to achieve gapless playback, a unified progress bar
over the entire recording, and correct seeking behaviour, all things
which concat: achieves effortlessly;
or
3. generate complex metadata, such as a proper HLS playlist with
EXTINF record markers, which is beyond the capability of a simple bash
one-liner (because of the mandatory duration in seconds of each
segment.)
Therefore, until such time when players and converters are able to
read a directory of TS segments and feed the metadata properly to
libav, the concat: protocol is the only practical way to play them
back.
IIUC, it may pose security issues when invoked by remote sources. In
that case, may I suggest somehow restricting it to local invocations?
But please don't throw it away or disable it altogether.
-Tobia
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel