diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c index ca24015115..089a3e7b01 100644 --- a/libavformat/dashenc.c +++ b/libavformat/dashenc.c @@ -754,6 +754,16 @@ static int dash_flush(AVFormatContext *s, int final, int stream) break; } } + + if (!os->bit_rate) { + // calculate average bitrate of first segment + int64_t bitrate = (int64_t) range_length * 8 * AV_TIME_BASE / (os->max_pts - os->start_pts); + if (bitrate >= 0) { + os->bit_rate = bitrate; + snprintf(os->bandwidth_str, sizeof(os->bandwidth_str), + " bandwidth=\"%d\"", os->bit_rate); + } + } add_segment(os, filename, os->start_pts, os->max_pts - os->start_pts, start_pos, range_length, index_length); av_log(s, AV_LOG_VERBOSE, "Representation %d media segment %d written to: %s\n", i, os->segment_index, full_path); }