Galène videoconferencing server discussion list archives
 help / color / mirror / Atom feed
From: Juliusz Chroboczek <jch@irif.fr>
To: Alexandre IOOSS <erdnaxe@crans.org>
Cc: galene@lists.galene.org
Subject: [Galene]  Re: Building a streaming gateway for Galène
Date: Tue, 06 Apr 2021 14:57:47 +0200
Message-ID: <87zgybsh84.wl-jch@irif.fr> (raw)
In-Reply-To: <228e92c1-d1f7-bc6d-4f44-c9cfd28f0096@crans.org>

> For the past two weeks I have been working on streaming from a
> broadcasting software such as OBS-Studio (that uses FFMpeg) to Galène.

This would be a great addition!  We have quite a few users that use OBS,
and, as you mention, going through the v4l virtual camera has some
disadvantages.

> 0. Using OBS Virtual v4l2 camera, but it is not portable and has audio
> sync issues.
> 1. Streaming to a gateway that will initiate the WebRTC session with Galène.
> 2. Implement WebRTC support in OBS-Studio as an output plugin.

I would tend to agree, (1) is probably the best solution, since it avoids
bloating either Galène or OBS.

> Last week I tried to implement a gateway using GStreamer webrtcbin
> plugin, <https://github.com/erdnaxe/galene-stream>. Although I am able
> to stream to Galène, I observe video drops. I am circumventing the issue
> by forcing the VP8 encoder to insert a keyframe every 5 frames, but that
> seems a terrible hack.

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.

> Right now [...] I don't know if I should...

I'll have a look, think it over, then get back to you.

-- Juliusz

  reply	other threads:[~2021-04-06 12:57 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 ` Juliusz Chroboczek [this message]
2021-04-06 16:10   ` [Galene] webrtc security cameras? Dave Taht
2021-04-06 17:07     ` [Galene] " Juliusz Chroboczek
2021-04-06 17:44   ` [Galene] Re: Building a streaming gateway for Galène Alexandre IOOSS
2021-04-06 23:19     ` 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=87zgybsh84.wl-jch@irif.fr \
    --to=jch@irif.fr \
    --cc=erdnaxe@crans.org \
    --cc=galene@lists.galene.org \
    /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

Galène videoconferencing server discussion list archives

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://lists.galene.org/galene

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V1 galene galene/ https://lists.galene.org/galene \
		galene@lists.galene.org
	public-inbox-index galene

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git