Skip to content

Dynamic GOV / FPS and compression#741

Open
cemond-genetec wants to merge 4 commits intodevelopmentfrom
video/dynamic-compression
Open

Dynamic GOV / FPS and compression#741
cemond-genetec wants to merge 4 commits intodevelopmentfrom
video/dynamic-compression

Conversation

@cemond-genetec
Copy link
Copy Markdown

No description provided.

</xs:element>
<xs:element name="DynamicFPS" type="xs:boolean" minOccurs="0">
<xs:annotation>
<xs:documentation>Indicates that device is allowed to skip unnecessary P-frames when there is no motion. To ensure a minimum framerate, enable GuaranteedFrameRate and set FrameRate.</xs:documentation>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<xs:documentation>Indicates that device is allowed to skip unnecessary P-frames when there is no motion. To ensure a minimum framerate, enable GuaranteedFrameRate and set FrameRate.</xs:documentation>
<xs:documentation>Indicates that device is allowed to skip unnecessary P-frames. To ensure a minimum framerate, enable GuaranteedFrameRate and set FrameRate.</xs:documentation>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As there will always be some motion and depends on what we classify as motion and it gets into the details, to avoid such ambiguity, we recommend to remove 'no motion'.

@bsriramprasad
Copy link
Copy Markdown
Contributor

bsriramprasad commented Mar 23, 2026

Additional Feedback from Axis

  • DynamicEncoding needs to be part of VideoRateControl2 (better as separate/individual parameters/attributes than another sub-structure as DynamicEncoding
    • These are treated as 'controlling levers' than configuration itself.
  • Need to add below configuration parameters for VideoEncoder2Configuration that are affected by above levers
    • Feature DynamicGov
      • Existing GovLength parameter need to be repurposed as Minimum GovLength
      • Need a new parameter for MaxGovLength
  • Feature Dynamic FPS
    • Maximum FPS set via FrameRateLimit
    • Need a new parameter for Minimum FPS
    • Recommend NOT to tie this feature to GuaranteedFrameRate as the primary use case for that is like a fixed/constant framerate and device adapts all internal parameters including bitrate to get there.

Co-authored-by: Sriram Bhetanabottla <sriram.bhetanabottla@axis.com>
@cemond-genetec
Copy link
Copy Markdown
Author

Additional Feedback from Axis

  • DynamicEncoding needs to be part of VideoRateControl2 (better as separate/individual parameters/attributes than another sub-structure as DynamicEncoding

    • These are treated as 'controlling levers' than configuration itself.
  • Need to add below configuration parameters for VideoEncoder2Configuration that are affected by above levers

    • Feature DynamicGov

      • Existing GovLength parameter need to be repurposed as Minimum GovLength
      • Need a new parameter for MaxGovLength
  • Feature Dynamic FPS

    • Maximum FPS set via FrameRateLimit
    • Need a new parameter for Minimum FPS
    • Recommend NOT to tie this feature to GuaranteedFrameRate as the primary use case for that is like a fixed/constant framerate and device adapts all internal parameters including bitrate to get there.

I will wait the others opinion next week. It is inline with the original proposition with 2 new parameters for MaxGovLength and MinimumFps because existing parameter are needed for the upper bound (for bandwidth control).

  1. Dynamic encoding parameters to be part of VideoRateControl2 makes sense to me
  2. I agree
  3. I agree.
    Should the GuaranteedFrameRate be disabled (automatically) when DynamicFPS is used ?

@kieran242
Copy link
Copy Markdown
Contributor

@cemond-genetec can you please add a description to the PR please.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants