Repository navigation
docs: A demo recording in the README - #81
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A demo recording in the README
Why
The README described the server but showed nothing running. A visitor had to
run it to see that it works.
Changes
Demo recording
A 20 second recording sits at the top of both READMEs. OBS publishes four
simulcast layers at 60 fps and the watch page plays them: automatic mode first,
then the viewer switches to the lowest layer and back to the highest. The
broadcast shows a millisecond clock and the page overlays its own, so the delay
can be read off any frame.
Two things differ from the issue:
on the page.
against about 3 MB for a GIF at half the frame rate. GitHub strips
<video>from a README, so an mp4 in the repository cannot be embedded.
Layer bitrate without filler data
Found while recording: the layer buttons read 6001 kbps while the viewer was
receiving 1.7 Mbps.
OBS in constant bitrate mode pads H264 with filler data. The server measured a
layer by the length of each received frame, filler included, but str0m drops
filler when it packetizes a frame for a viewer. Automatic layer selection and
the relay cutoff were therefore judging layers by a bitrate no viewer is sent.
A layer is now measured by what will be sent. An H264 frame goes through
str0m's own packetizer and the sizes of the resulting packets are summed, which
needs str0m's
unversionedfeature. Other codecs are measured as before.Tested
With OBS in constant bitrate mode, top layer at 1080p:
The integration test for layer measurement only checked that layers rank by
bitrate, which a count of packets would also pass. It now checks that each
figure is within 25 percent of what the publisher sends. The test publisher
does not send H264, so the H264 path is covered by the OBS run above.
Closes #76