-
Notifications
You must be signed in to change notification settings - Fork 101
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error: Measured peak bitrate compared to master playlist declared value exceeds error tolerance #39
Comments
Hi, It seems you've been quite unlucky :) First, to explain what it's warning about. In your encode, you've specified 4 bitrates - But, by default The apple tool checks the maximum bitrate observed within the stream and compares it to that declared in the manifest. As you can see, sometimes it's spiked much higher than that declared. A bit of variance isn't something to be too concerned about, but significant variance could cause playback issues. Adaptive players will try to calculate the bandwidth available to them and playback the most appropriate stream (actually, most take resolution into consideration too, but lets ignore that). One problem comes when the player decides there's (say) 80Kbps bandwidth, and selects your 64Kbps representation. Because there are peaks up to 260Kbps (i.e. 3.25x the available bandwidth) playback may stall. Whether it actually does depends on a variety of things (like what the bitrates leading up to that spike were - if you've a long succession of lows followed by a spike, the player may have had time to fetch it ahead of time). When encoding video, though, most will go with VBR because it traditionally gives higher quality files (being able to switch the bitrate down when "safe" allows for higher spikes later etc etc) If you run HLS-Stream-Creator with I've not personally had any delivery issues from using VBR, but as described above it is a technical possibility |
Thanks, @bentasker really appreciate the detailed answer. I have been testing a few different FFmpeg commands mainly this one. https://docs.peer5.com/guides/production-ready-hls-vod/ I don't think I was really understanding the relationship between the bitrate in the master manifest and -b:v option in the FFmpeg command. In the option at the link above the master, manifest bandwidths are.
Obviously I understand now that the BANDWIDTH value is set by the -b:v option
And your generated manifest is the same.
Relating to -b 28,64,128,256 I also use the AWS Media Convert encoder which outputs this in the manifest.
Not sure how they are grabbing the bandwidth, whether it is done via a two pass as they don't seem to be set values? |
Hi, After generation, they probably check the stream with the equivalent of a If you're so minded, you can get I do something similar (though it's on the input rather than the output) here - https://snippets.bentasker.co.uk/page-1804131128-Automating-HLS-Stream-Creator-Python.html I think, if you wanted to declare This
Will dump out info, but you're probably best doing the probe (and manifest rewrite) in Python. One thing to watch for is the difference in fields (both names and presence) depending on the codec. |
Hi @bentasker Yes, that's exactly what I was initially trying to do with ffprobe. I would get the following output when running on the input file.
This outputs everything needed but the bit_rate is (2317499) obviously a single value for the input video I wasn't sure how to work out the BANDWIDTH master.m3u8 manifest values for the different resolutions 360p, 480p, 720p, 1080p. Also if I run ffprobe in the master.m3u8 file after encoding to hls I get this.
And the validator output is.
I can't figure out where the validator is getting its bitrate values from.
But maybe this isn't something to worry about. Thanks |
Hi @bentasker
Not sure if this is an issue because I get the same error if I test with various streams but curious on why you think this may be occurring.
If you download the hls validation tools from here https://developer.apple.com/download/more/?=http%20live%20streaming%20tools
And then run the mediastreamvalidator tool on a created playlist you should see errors similar to this.
Is this something to be concerned about or is it just a guide to follow.
Thanks
The text was updated successfully, but these errors were encountered: