Skip to content

Add av1 codec feature support#736

Open
bsriramprasad wants to merge 2 commits intodevelopmentfrom
video/feat-add-av1-codec-config
Open

Add av1 codec feature support#736
bsriramprasad wants to merge 2 commits intodevelopmentfrom
video/feat-add-av1-codec-config

Conversation

@bsriramprasad
Copy link
Copy Markdown
Contributor

@bsriramprasad bsriramprasad commented Mar 10, 2026

This is PR is a feature proposal to add ONVIF configuration and streaming support for AV1 encoded video.

Introduction

This specification extends the ONVIF Media2 configuration and Streaming framework to support video streams encoded using the AV1 codec. AV1 is a modern video coding format developed by the Alliance for Open Media that provides improved
compression efficiency compared to earlier codecs.

The transport of AV1 video over RTP shall follow the RTP Payload Format for AV1 Video specification. Unless otherwise specified, the RTP transport behavior defined in this specification remains applicable.

The additions in this document describe the signaling, synchronization behavior, and RTP payload considerations required to support AV1 video streams within the ONVIF streaming architecture.

Changes description

Thanks to Media2, there is an existing structure that makes adding this enhancement relatively simple.

Specifications affected/updated

  • Media 2
    • Mime type
    • Codec 'profile' level added
  • Streaming
    • RTP header spec reference for AV1

@bsriramprasad bsriramprasad changed the title updates for av1 codec feature support Add av1 codec feature support Mar 10, 2026
@bsriramprasad bsriramprasad marked this pull request as ready for review March 11, 2026 08:44
<para>IETF RFC 8285, A General Mechanism for RTP Header Extensions</para>
<para role="reference">&lt;<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.ietf.org/rfc/rfc8285.txt"></link>&gt;</para>
<para>AV1 Bitstream and Decoding Process Specification</para>
<para role="reference">&lt;<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://aomediacodec.github.io/av1-spec/"></link>&gt;</para>
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.

This link goes to a WIP document. You get the following notice:

"Notice

This is an internal AOMedia working document and not an approved version of the AV1 specification. The approved AV1 bitstream specification can be found here: https://aomediacodec.github.io/av1-spec/av1-spec.pdf"

Probably better to point to the explicit pdf.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The reason we were referring to the 'home' link instead of specific document is, we don't want to keep maintaining the versions on our end.

</entry>
</row>
<row>
<entry valign="middle">OBU</entry>
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.

Do we really need to define OBU? We have not defined NAL. If you have to explicitly state OBU somewhere you then have to explicitly state NAL for the same reason.
So for consistency you should either add and update the spec with NALs, or remove this.
Looking at this PR, I'd say you can remove it.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I have added this because I referred this in the text, if we can avoid reference in text this can be removed.

<para>In addition it is recommended to support the PLI messages as described in [RFC 4585] in order to allow receivers as defined in the ONVIF Receiver Service Specification to request a Synchronization Point. </para>
<para>For H.264 and H.265 Video the SPS/PPS header shall be sent in-band if these have been changed during the transmission.</para>
<para>For AV1 video, the device shall generate a Key Frame in response to a synchronization
point request. If the Sequence Header OBU changes during transmission, it shall be sent
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.

You can remove "OBU". It is implicit when you mention AV1, just like we don't write "SPS/PPS NAL" for H.26x in the paragraph above.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I don't have any objection to remove it.

@@ -876,6 +893,9 @@
<para>The WebService based methods require to support the Synchronization Point request as defined in the section “Synchronization Point” of the ONVIF Media Service Specification. </para>
<para>In addition it is recommended to support the PLI messages as described in [RFC 4585] in order to allow receivers as defined in the ONVIF Receiver Service Specification to request a Synchronization Point. </para>
<para>For H.264 and H.265 Video the SPS/PPS header shall be sent in-band if these have been changed during the transmission.</para>
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.

Out-of-scope, but why is not VPS for H.265 mentioned? Can't that be changed during transmission?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I can add VPS as part of this edit to keep it consistent?

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants