Browse Source

dashenc: calculate stream bitrate from first segment if not available

Bandwidth information is required in the manifest, but not always
provided by the demuxer. In that case calculate the bandwith based
on the size and duration of the first segment.

Signed-off-by: Peter Große <pegro@friiks.de>
Signed-off-by: Martin Storsjö <martin@martin.st>
tags/n3.4
Peter Große Martin Storsjö 8 years ago
parent
commit
9df9309d23
1 changed files with 10 additions and 0 deletions
  1. +10
    -0
      libavformat/dashenc.c

+ 10
- 0
libavformat/dashenc.c View File

@@ -834,6 +834,16 @@ static int dash_flush(AVFormatContext *s, int final, int stream)
if (ret < 0)
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);
}


Loading…
Cancel
Save