w3c / w3c/webcodecs

Video encoder bitrate control in case frame rate is not provided

Open
#804 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
HTML
Stars
1.3k
Forks
194
Avg merge
1d 13h
Merged PRs (30d)
3

Description

Experiment based on https://peaceful-genie-41c2b6.netlify.app/codec-compare.html and https://bugs.webkit.org/show_bug.cgi?id=274822.

Chrome and Safari behave roughly the same in terms of bitrate control when bitrate and frame rate are provided.
I haven't checked Firefox.

Chrome seems to make sure the bitrate is applied consistently whatever the actual frame rate is, be it 30fps or 100fps.

When frame rate is not provided, Safari uses a default frame rate (30 fps).
If the frame rate is above this default frame rate, Safari actual bitrate per second is above the given bitrate.

There is a note in the spec that Authors are encouraged to provide both bitrate and frame rate.

Given this has interop impact, I wonder what the intent of the specification is when frame rate is not provided, or if the actual frame rate is far from the configured frame rate (much lower or much higher).

Should we have more implementation guidelines in that area?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the linked codec comparison and WebKit issue, then review the WebCodecs specification language about bitrate and frame rate. Compare the described Chrome and Safari behavior, including cases where frame rate is omitted or differs from the actual rate. Done means reaching agreement on the intended behavior and whether implementation guidance or a specification clarification is needed.

Written by the indexing model from the issue text.

Assessment

Tech stack
html
Domain
api, web-dev
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.