mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-11-27 13:10:37 +00:00
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>
This commit is contained in:
parent
e519dcd937
commit
9df9309d23
@ -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…
Reference in New Issue
Block a user