Galène videoconferencing server discussion list archives
 help / color / mirror / Atom feed
From: Alexandre IOOSS <erdnaxe@crans.org>
To: Juliusz Chroboczek <jch@irif.fr>
Cc: galene@lists.galene.org
Subject: [Galene] Re: Building a streaming gateway for Galène
Date: Tue, 6 Apr 2021 19:44:07 +0200	[thread overview]
Message-ID: <76e5b62b-ee5b-3117-ea04-368fab0e659b@crans.org> (raw)
In-Reply-To: <87zgybsh84.wl-jch@irif.fr>

On 4/6/21 2:57 PM, Juliusz Chroboczek wrote:
> I'll have a look at your code as soon as I have some time.  In the
> meantime, there are three things that you need to do:
> 
> 1. send periodic RTCP Sender Reports with accurate NTP times;
> 2. react to RTCP PLI packets by inserting a keyframe;
> 3. react to RTCP NACK packets by resending the packets listed in the NACK.
> 
> (1) is essential for proper lipsynch.  (2) is what allows a stream to
> recover after a catastrophic loss event.  (3) is what allows a stream to
> recover rapidly after moderate amounts of loss.

When dumping traffic in Wireshark, I see only RTCP "Sender report" and
"Receiver report" packets. Sender reports are periodic, and sent by
groups of 2 (video then audio):

```
Real-time Transport Control Protocol (Sender Report)
    10.. .... = Version: RFC 1889 Version (2)
    ..0. .... = Padding: False
    ...0 0000 = Reception report count: 0
    Packet type: Sender Report (200)
    Length: 6 (28 bytes)
    Sender SSRC: 0x9ce1015b (2631991643)
    Timestamp, MSW: 2797058655 (0xa6b7ba5f)
    Timestamp, LSW: 1448315617 (0x56538ae1)
    [MSW and LSW as NTP timestamp: Aug 20, 1988 08:44:15.337212257 UTC]
    RTP timestamp: 866227088
    Sender's packet count: 2194185357
    Sender's octet count: 2612991028
    [RTCP frame length check: OK - 28 bytes]

Real-time Transport Control Protocol (Sender Report)
    10.. .... = Version: RFC 1889 Version (2)
    ..0. .... = Padding: False
    ...0 0000 = Reception report count: 0
    Packet type: Sender Report (200)
    Length: 6 (28 bytes)
    Sender SSRC: 0x3a724a90 (980568720)
    Timestamp, MSW: 4079490799 (0xf32816ef)
    Timestamp, LSW: 2870575121 (0xab198011)
    [MSW and LSW as NTP timestamp: Apr 10, 2029 07:53:19.668357853 UTC]
    RTP timestamp: 2166723788
    Sender's packet count: 468654353
    Sender's octet count: 2838781192
    [RTCP frame length check: OK - 28 bytes]
```

I don't really understand what you mean by "accurate NTP times". Streams
from Firefox or GStreamer seem to use random NTP timestamps.

When dumping Firefox WebRTC traffic, I also see "Generic RTP Feeback:
NACK" packets, which confirms the fact that GStreamer is not doing NACK
in my script. I should see if it's possible to enable it.

I am still quite new to WebRTC, so be aware that I might have done
something stupid with the GStreamer pipeline.

Thank you for pointing out this could be a potential problem,

-- 
Alexandre Iooss

  parent reply	other threads:[~2021-04-06 17:44 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-06 11:05 [Galene] " Alexandre IOOSS
2021-04-06 12:57 ` [Galene] " Juliusz Chroboczek
2021-04-06 16:10   ` [Galene] webrtc security cameras? Dave Taht
2021-04-06 17:07     ` [Galene] " Juliusz Chroboczek
2021-04-06 17:44   ` Alexandre IOOSS [this message]
2021-04-06 23:19     ` [Galene] Re: Building a streaming gateway for Galène Juliusz Chroboczek
2021-04-07 20:40       ` Alexandre IOOSS
2021-04-07 22:01         ` Juliusz Chroboczek
2021-04-07 22:05           ` Juliusz Chroboczek
2021-04-09 13:42             ` Alexandre IOOSS
2021-04-09 13:55               ` Juliusz Chroboczek
2021-04-09 14:17               ` Juliusz Chroboczek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.galene.org/postorius/lists/galene.lists.galene.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=76e5b62b-ee5b-3117-ea04-368fab0e659b@crans.org \
    --to=erdnaxe@crans.org \
    --cc=galene@lists.galene.org \
    --cc=jch@irif.fr \
    --subject='[Galene] Re: Building a streaming gateway for Galène' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox