* [FFmpeg-devel] [PATCH] avformat/hls: Revert "reduce default max reload to 3"
@ 2025-01-19 8:52 softworkz
2025-01-19 9:27 ` Soft Works
0 siblings, 1 reply; 2+ messages in thread
From: softworkz @ 2025-01-19 8:52 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: softworkz
From: softworkz <softworkz@hotmail.com>
This change has caused regressions for many users and consumers.
Playlist reloads only happen when a playlist doesn't indicate that it
has ended (via #EXT-X-ENDLIST), which means that the addition of future
segments is still expected.
It is well possible that an HLS server is temporarily unable to serve
further segments but resumes after some time, either indicating a
discontinuity or even by fully catching up.
With a segment length of 3s, a max_reload value of 1000 corresponds to
a duration of 50 minutes which appears to be a reasonable default.
---
avformat/hls: Revert "reduce default max reload to 3"
This change has caused regressions for many users and consumers.
Playlist reloads only happen when a playlist doesn't indicate that it
has ended (via #EXT-X-ENDLIST), which means that the addition of future
segments is still expected. It is well possible that an HLS server is
temporarily unable to serve further segments but resumes after some
time, either indicating a discontinuity or even by fully catching up.
With a segment length of 3s, a max_reload value of 1000 corresponds to a
duration of 50 minutes which appears to be a reasonable default.
Published-As: https://github.com/ffstaging/FFmpeg/releases/tag/pr-ffstaging-51%2Fsoftworkz%2Fsubmit_hls_reload-v1
Fetch-It-Via: git fetch https://github.com/ffstaging/FFmpeg pr-ffstaging-51/softworkz/submit_hls_reload-v1
Pull-Request: https://github.com/ffstaging/FFmpeg/pull/51
libavformat/hls.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavformat/hls.c b/libavformat/hls.c
index 045741c3b4..426cf30f70 100644
--- a/libavformat/hls.c
+++ b/libavformat/hls.c
@@ -2577,7 +2577,7 @@ static const AVOption hls_options[] = {
{.str = "3gp,aac,avi,ac3,eac3,flac,mkv,m3u8,m4a,m4s,m4v,mpg,mov,mp2,mp3,mp4,mpeg,mpegts,ogg,ogv,oga,ts,vob,wav"},
INT_MIN, INT_MAX, FLAGS},
{"max_reload", "Maximum number of times a insufficient list is attempted to be reloaded",
- OFFSET(max_reload), AV_OPT_TYPE_INT, {.i64 = 3}, 0, INT_MAX, FLAGS},
+ OFFSET(max_reload), AV_OPT_TYPE_INT, {.i64 = 1000}, 0, INT_MAX, FLAGS},
{"m3u8_hold_counters", "The maximum number of times to load m3u8 when it refreshes without new segments",
OFFSET(m3u8_hold_counters), AV_OPT_TYPE_INT, {.i64 = 1000}, 0, INT_MAX, FLAGS},
{"http_persistent", "Use persistent HTTP connections",
base-commit: ced9fddec0e45e1ce1b3425a1fed66af971e934c
--
ffmpeg-codebot
_______________________________________________
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".
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/hls: Revert "reduce default max reload to 3"
2025-01-19 8:52 [FFmpeg-devel] [PATCH] avformat/hls: Revert "reduce default max reload to 3" softworkz
@ 2025-01-19 9:27 ` Soft Works
0 siblings, 0 replies; 2+ messages in thread
From: Soft Works @ 2025-01-19 9:27 UTC (permalink / raw)
To: ffmpeg-devel
> This change has caused regressions for many users and consumers.
See:
- https://www.reddit.com/r/mpv/comments/181yu2z/problem_streaming_radio/
- https://github.com/mpv-player/mpv/issues/13428
In my case:
Restreaming HLS to HLS. The source provides segments of 15s length, while
output is 3/6s segments. This causes segments in the output playlist to be
added "in waves", i.e. 5 segments are added (roughly) at the same time after
which no more segments are added for the next 15s. As the HLS demuxer reloads
the playlist in intervals of the segment length, it can easily happen that
will reload the playlist more than 3 times until a new segment appears in the
playlist.
Other example:
Since the HLS demuxer uses the duration of the last segment instead of the
target duration for the reload interval, it can also happen that one segment is
comparably short (which is perfectly valid) which can cause the 3 reloads to be
done even before a regular segment duration has passed.
Example cases for why 1000 is a reasonable default:
When receiving (e.g. for recording) from an HLS service which looses its
upstream connection for whatever reason (network outage, DDOS, etc.) it might
recover after some time, delivering all segments since the start of the situation.
A TV receiver streams via HLS and reception gets interrupted due to weather
conditions. The missed content is lost, but the HLS playlist can indicate a
discontinuity and resume serving segments.
sw
_______________________________________________
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".
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-01-19 9:27 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-01-19 8:52 [FFmpeg-devel] [PATCH] avformat/hls: Revert "reduce default max reload to 3" softworkz
2025-01-19 9:27 ` Soft Works
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