webrtc icon indicating copy to clipboard operation
webrtc copied to clipboard

AV1 packets are incompatible with GStreamer and possibly Chromium-based browsers

Open anonymix007 opened this issue 1 year ago • 4 comments

Your environment.

What did you do?

Server is based on play-from-disk-renegotiation example, client is either Chromium or based on gstreamer-receive

What did you expect?

Video should play in both Chromium and Gstreamer

What happened?

It doesn't. Refer to the gstreamer issue above. Chromium doesn't report any errors and just doesn't play the video.

anonymix007 avatar Jun 12 '24 17:06 anonymix007

The relevant part here is https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/560#note_2448414

In short, Pion currently includes the obu_has_size_field in the OBUs while the AV1 RTP spec recommends ("SHOULD") to not include them. GStreamer does not support that currently (but I'm changing that right now).

sdroege avatar Jun 12 '24 17:06 sdroege

Similarly, temporal delimiter OBUs are still part of the packets but should be stripped according to the AV1 RTP spec.

sdroege avatar Jun 12 '24 17:06 sdroege

Also the payload is generally invalid. The aggregation header claims that only a single OBU is contained in the packet, but the packets contain a temporal delimiter OBU followed by a sequence header OBU and others.

Additionally the N bit of the aggregation header is never set.

sdroege avatar Jun 12 '24 18:06 sdroege

@Sean-Der any idea when it could be fixed? Also thanks for your great work in here

lebedyncrs avatar Sep 05 '24 17:09 lebedyncrs

Resolved by https://github.com/pion/rtp/pull/295 and released in https://github.com/pion/webrtc/releases/tag/v4.0.11

JoeTurki avatar Mar 02 '25 08:03 JoeTurki