mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-25 00:32:31 +00:00
concatdec: add option for adding segment start time and duration metadata
Reviewed-by: Nicolas George <george@nsup.org> Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
parent
ba9191ab3a
commit
65406b0bed
@ -204,6 +204,14 @@ Currently, the only conversion is adding the h264_mp4toannexb bitstream
|
||||
filter to H.264 streams in MP4 format. This is necessary in particular if
|
||||
there are resolution changes.
|
||||
|
||||
@item segment_time_metadata
|
||||
If set to 1, every packet will contain the @var{lavf.concat.start_time} and the
|
||||
@var{lavf.concat.duration} packet metadata values which are the start_time and
|
||||
the duration of the respective file segments in the concatenated output
|
||||
expressed in microseconds. The duration metadata is only set if it is known
|
||||
based on the concat file.
|
||||
The default is 0.
|
||||
|
||||
@end table
|
||||
|
||||
@section flv
|
||||
|
@ -62,6 +62,7 @@ typedef struct {
|
||||
int eof;
|
||||
ConcatMatchMode stream_match_mode;
|
||||
unsigned auto_convert;
|
||||
int segment_time_metadata;
|
||||
} ConcatContext;
|
||||
|
||||
static int concat_probe(AVProbeData *probe)
|
||||
@ -318,6 +319,13 @@ static int open_file(AVFormatContext *avf, unsigned fileno)
|
||||
file->file_inpoint = (file->inpoint == AV_NOPTS_VALUE) ? file->file_start_time : file->inpoint;
|
||||
if (file->duration == AV_NOPTS_VALUE && file->outpoint != AV_NOPTS_VALUE)
|
||||
file->duration = file->outpoint - file->file_inpoint;
|
||||
|
||||
if (cat->segment_time_metadata) {
|
||||
av_dict_set_int(&file->metadata, "lavf.concatdec.start_time", file->start_time, 0);
|
||||
if (file->duration != AV_NOPTS_VALUE)
|
||||
av_dict_set_int(&file->metadata, "lavf.concatdec.duration", file->duration, 0);
|
||||
}
|
||||
|
||||
if ((ret = match_streams(avf)) < 0)
|
||||
return ret;
|
||||
if (file->inpoint != AV_NOPTS_VALUE) {
|
||||
@ -701,6 +709,8 @@ static const AVOption options[] = {
|
||||
OFFSET(safe), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 1, DEC },
|
||||
{ "auto_convert", "automatically convert bitstream format",
|
||||
OFFSET(auto_convert), AV_OPT_TYPE_INT, {.i64 = 1}, 0, 1, DEC },
|
||||
{ "segment_time_metadata", "output file segment start time and duration as packet metadata",
|
||||
OFFSET(segment_time_metadata), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DEC },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user