The previous code sets the bitrate to be calculated only when duration>0.5, which is obviously not general enough.
In some scenarios, we may need to set hls_time<0.5, then the generated segments are all <0.5. At this time, because the bitrate is not calculated, max_bitrate is empty, and ff_hls_write_stream_info cannot write stream info normally, causing master_pl to be unavailable. Signed-off-by: Jack Lau <jacklau1...@qq.com> --- libavformat/hlsenc.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index c6ffdb99e5..223c516103 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -1150,9 +1150,7 @@ static int hls_append_segment(struct AVFormatContext *s, HLSContext *hls, vs->total_size += size; vs->total_duration += duration; - if (duration > 0.5) { - // Don't include the final, possibly very short segment in the - // calculation of the max bitrate. + if (duration > 0) { int cur_bitrate = (int)(8 * size / duration); if (cur_bitrate > vs->max_bitrate) vs->max_bitrate = cur_bitrate; -- 2.47.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".