Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Marton Balint <cus@passwd.hu>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [PATCH 05/10] doc/muxers: Add documentation for segment_limit option
Date: Fri, 13 Jun 2025 23:59:46 +0200 (CEST)
Message-ID: <764ebc53-28d4-8671-117b-d76b453770b9@passwd.hu> (raw)
In-Reply-To: <DM8P223MB0365AC99E37A01007D24277EBA77A@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM>



On Fri, 13 Jun 2025, softworkz . wrote:

>
>> -----Original Message-----
>> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
>> Marton Balint
>> Sent: Freitag, 13. Juni 2025 22:26
>> To: FFmpeg development discussions and patches <ffmpeg-
>> devel@ffmpeg.org>
>> Subject: Re: [FFmpeg-devel] [PATCH 05/10] doc/muxers: Add
>> documentation for segment_limit option
>>
>>
>>
>> On Fri, 13 Jun 2025, softworkz wrote:
>>
>>> From: softworkz <softworkz@hotmail.com>
>>>
>>> Signed-off-by: softworkz <softworkz@hotmail.com>
>>> ---
>>> doc/muxers.texi | 7 +++++++
>>> 1 file changed, 7 insertions(+)
>>>
>>> diff --git a/doc/muxers.texi b/doc/muxers.texi
>>> index 6d5c17b4cc..1cca8da1fb 100644
>>> --- a/doc/muxers.texi
>>> +++ b/doc/muxers.texi
>>> @@ -3510,6 +3510,13 @@ packet written. Defaults to @code{0}.
>>> Write segments to files with a .tmp extension. Each file is
>> renamed to its
>>> actual name on completion. This can help to prevent segment files
>> from
>>> being accessed before they are complete. Disabled by default
>> (@code{0}).
>>> +
>>> +@item segment_limit @var{number}
>>> +Stops after the specified number of segments has been generated.
>>> +This can be helpful to fill gaps in a range of already generated
>> segments,
>>> +which is difficult to achieve otherwise as it would either cause
>> the last
>>> +segment to be incomplete or to overwrite an existing segment
>> with a partial
>>> +data. Default is @code{0} - no limit.
>
> Hi Marton,
>
> thanks a lot for reviewing.
>
>> You can merge the documentation patch with the feature patch, there
>> is no
>> need to split.
>
> Sure, will do that - I just never know which way is right.
>
>
>> What is not quite clear is that what is going to happen to the
>> surplus
>> data at after the last segment? Is it silently dropped? Because
>> that would be unacceptable IMHO.
>
> Well, that's the whole point of the feature. FFmpeg will stop as
> soon as the specified number of segments has been generated.

As far as I understand ffmpeg will not stop, but will keep reading on the 
input till the end of the source file, gigabytes worst case. Or am I 
missing something?

>
> (Please note, that the default is 0, which means that nothing is
> dropped and there's no change in behavior when it's 0).
>
> Probably it's best to look at an example. Let's say we have:
>
> - a 300s video
> - that we want to stream via HLS
> - Segment-Duration: 3s - makes 100 segments
> - Now we want to create the segments on-demand only,
>  so we deliver a synthetic playlist with 100 3s segments,
>  even though we don't have any segment yet
> - Once specific segments are needed, we create them on-the-fly
>
> That's a situation that the commit message is about:
>
> Existing segments 0-30 and 70-99 => we already have them on disk
>
> 31-69 need to be created
>
> This option allows to stop precisely after 69.
> Otherwise, it would start overwriting segment 70 before stopping
> via 'q' or break signal.
>
> So, in order to generate segments 31-69, you will set
> segment_start_number to 31 and the segment_limit to 38.
> This causes the muxer to write and complete segment 69
> in the exact same way like when it would be creating segment
> 70, but without starting to write segment 70 - which would destroy
> the existing segment 70 (which is good already).

Buy you have to seek in the input to achieve that, don't you? And you can 
just as easily specify the input duration to not overwrite segment 70...

If you want to implement the segment limit, you have to make sure the 
ffmpeg encoding process stops after the last segment. One idea is to 
return an error if the segment limit is reached.

Regards,
Marton
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

  reply	other threads:[~2025-06-13 22:02 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-13  5:54 [FFmpeg-devel] [PATCH 00/10] avformat/segment: Various segment muxer improvements ffmpegagent
2025-06-13  5:54 ` [FFmpeg-devel] [PATCH 01/10] avformat/segment: Add segment_write_temp option softworkz
2025-06-13 20:37   ` Marton Balint
2025-06-13 21:43     ` softworkz .
2025-06-13 22:07       ` Marton Balint
2025-06-13 22:26         ` softworkz .
2025-06-13  5:54 ` [FFmpeg-devel] [PATCH 02/10] doc/muxers: Add documentation for " softworkz
2025-06-13  5:54 ` [FFmpeg-devel] [PATCH 03/10] avformat/segment: Log more detailed information about written segments softworkz
2025-06-13 13:42   ` Derek Buitenhuis
2025-06-13 14:03     ` softworkz .
2025-06-13 20:44   ` Marton Balint
2025-06-13 23:53     ` softworkz .
2025-06-13  5:54 ` [FFmpeg-devel] [PATCH 04/10] avformat/segment: Add segment_limit option softworkz
2025-06-13  5:54 ` [FFmpeg-devel] [PATCH 05/10] doc/muxers: Add documentation for " softworkz
2025-06-13 20:25   ` Marton Balint
2025-06-13 21:33     ` softworkz .
2025-06-13 21:59       ` Marton Balint [this message]
2025-06-13 22:49         ` softworkz .
2025-06-14 15:59           ` Marton Balint
2025-06-13  5:54 ` [FFmpeg-devel] [PATCH 06/10] avformat/segment: Fix invalid codecpar extradata_size after copying softworkz
2025-06-13  6:03   ` softworkz .
2025-06-13  5:54 ` [FFmpeg-devel] [PATCH 07/10] avformat/segment: Remove non-negative constraint from segment_time_delta softworkz
2025-06-13  5:54 ` [FFmpeg-devel] [PATCH 08/10] avformat/segment: Don't allow negative segment duration softworkz
2025-06-13  5:54 ` [FFmpeg-devel] [PATCH 09/10] avformat/segment: Fix typo softworkz
2025-06-13  5:54 ` [FFmpeg-devel] [PATCH 10/10] avformat/segment: Indent and whitespace fixes softworkz
2025-06-14  0:59 ` [FFmpeg-devel] [PATCH v2 0/6] avformat/segment: Various segment muxer improvements ffmpegagent
2025-06-14  0:59   ` [FFmpeg-devel] [PATCH v2 1/6] avformat/segment: Add segment_write_temp option softworkz
2025-06-14  0:59   ` [FFmpeg-devel] [PATCH v2 2/6] avformat/segment: Add segment_limit option softworkz
2025-06-14  0:59   ` [FFmpeg-devel] [PATCH v2 3/6] avformat/segment: Remove non-negative constraint from segment_time_delta softworkz
2025-06-14  0:59   ` [FFmpeg-devel] [PATCH v2 4/6] avformat/segment: Don't allow negative segment duration softworkz
2025-06-14 20:40     ` Michael Niedermayer
2025-06-14  0:59   ` [FFmpeg-devel] [PATCH v2 5/6] avformat/segment: Fix typo softworkz
2025-06-14  0:59   ` [FFmpeg-devel] [PATCH v2 6/6] avformat/segment: Indent and whitespace fixes softworkz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=764ebc53-28d4-8671-117b-d76b453770b9@passwd.hu \
    --to=cus@passwd.hu \
    --cc=ffmpeg-devel@ffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git