[FFmpeg-devel] [PATCH] avformat/utils fix calculating wrong bitrate on HLS, DASH stream
Dongwon Kim
dongwon00.kim at gmail.com
Fri Jul 17 11:44:01 EEST 2020
"filesize" variable is size of MPD file(MPEG-DASH) or M3U8 playlist file(HLS).
So, the bitrate is calculated deviding size of playlist or manifest file(not segment files) by duration.
On Fri, Jul 17, 2020 at 05:21:42PM +0900, Dongwon Kim wrote:
> Signed-off-by: Dongwon Kim <dongwon.kim at sk.com>
> Signed-off-by: Dongwon Kim <dongwon00.kim at gmail.com>
> ---
> libavformat/utils.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/libavformat/utils.c b/libavformat/utils.c
> index 807d9f10cb..e90467e2e0 100644
> --- a/libavformat/utils.c
> +++ b/libavformat/utils.c
> @@ -2715,7 +2715,8 @@ static void update_stream_timings(AVFormatContext *ic)
> if (duration != INT64_MIN && duration > 0 && ic->duration == AV_NOPTS_VALUE) {
> ic->duration = duration;
> }
> - if (ic->pb && (filesize = avio_size(ic->pb)) > 0 && ic->duration > 0) {
> + if (ic->pb && (filesize = avio_size(ic->pb)) > 0 && ic->duration > 0
> + && strcmp(ic->iformat->name, "hls") && strcmp(ic->iformat->name, "dash")) {
> /* compute the bitrate */
> double bitrate = (double) filesize * 8.0 * AV_TIME_BASE /
> (double) ic->duration;
> --
> 2.25.1
>
More information about the ffmpeg-devel
mailing list