Skip to content

Fec with pion#54

Merged
JoTurk merged 17 commits into
masterfrom
fec_with_pion
Jun 23, 2025
Merged

Fec with pion#54
JoTurk merged 17 commits into
masterfrom
fec_with_pion

Conversation

@3DRX
Copy link
Copy Markdown
Member

@3DRX 3DRX commented Jun 3, 2025

Add a blog post about fec with pion, with small changes to the code too.

  1. Add comma between authors.
  2. Supports rendering mermaid charts, this should also help with charts in Add post about reasons for congestion control #49 . This requires a version bump of hugo too since the use of render hooks.
  3. Bump the ci-runner's ubuntu version, since github no longer runs the old ones.

@3DRX 3DRX requested review from JoTurk, Sean-Der and aalekseevx June 3, 2025 06:49
@JoTurk
Copy link
Copy Markdown
Member

JoTurk commented Jun 3, 2025

@3DRX I'll make few commits, then when I'm done I'll ask for your review, I also cherry-picked your CI change commit and merged it

@3DRX
Copy link
Copy Markdown
Member Author

3DRX commented Jun 3, 2025

@3DRX I'll make few commits, then when I'm done I'll ask for your review, I also cherry-picked your CI change commit and merged it

Sounds great!

Copy link
Copy Markdown
Member

@aalekseevx aalekseevx left a comment

Choose a reason for hiding this comment

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

Great text! I have added comments about things that might also be worth mentioning.

Comment thread content/en/blog/fec-with-pion.md Outdated
Comment thread content/en/blog/fec-with-pion.md
Comment thread content/en/blog/fec-with-pion.md
fecInterceptor, err := flexfec.NewFecInterceptor()
// handle error...
i.Add(fecInterceptor)
```
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do you guys think the ConfigureFlexFEC03 helper is worth mentioning?

Copy link
Copy Markdown
Member Author

@3DRX 3DRX Jun 4, 2025

Choose a reason for hiding this comment

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

Of course, I think perhaps we can only mention the helper here (to make the post more concise)? One thing is that I remember @joeturki talked about the intention to change helper functions like this in the future. I’m perfectly happy with either one!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

It's worth mentioning for now, I think we should update the examples in the article, we can update it in the future if we change that!

Comment thread content/en/blog/fec-with-pion.md
Comment thread content/en/blog/fec-with-pion.md Outdated

### Verify that FlexFEC is Enabled

- On sender side, which is within Pion, you can log the packets.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

It's not that easy to log something after the interceptors by hand, is it? Maybe we should suggest using the packetdump interceptor?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Good idea, I was thinking about this interceptor when writing this. It’s definitely better if we include a link to it.

@aalekseevx
Copy link
Copy Markdown
Member

@3DRX, I can help and make some commits for my suggestions if you want me to

@3DRX
Copy link
Copy Markdown
Member Author

3DRX commented Jun 4, 2025

@3DRX, I can help and make some commits for my suggestions if you want me to

Sure! These are great suggestions. Thanks you sooo much.

@JoTurk
Copy link
Copy Markdown
Member

JoTurk commented Jun 4, 2025

@aalekseevx @3DRX I'm not sure what's the best way to continue this, But I'm finishing few edits, and new sections, finishing in the next 24 hours, What if we do turns, Until the article is approved by all? @3DRX -> me -> @aalekseevx 🔁

@3DRX
Copy link
Copy Markdown
Member Author

3DRX commented Jun 4, 2025

Good idea, I’ll not make any commits until @aalekseevx finishes his to avoid collision.

@JoTurk
Copy link
Copy Markdown
Member

JoTurk commented Jun 5, 2025

Okay, I added few stuff, they are still raw, I'll go through it again after you guys are done etc.

@aalekseevx I think it's your turn :)

Comment thread content/en/blog/fec-with-pion.md Outdated

## FEC Algorithms in WebRTC

FlexFEC and ULPFEC both use XOR-based recovery logic to generate packets. Another family of algorithms, like [Reed-Solomon](https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction), can recover from more complex losses but are currently too computationally expensive for real-time use in WebRTC.
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Nit pick: I've seen some company managed to implemented Reed-Solomon based FEC in their WebRTC based proprietary app. And there is quite some QoS gain. With SIMD, the performance overhead isn't as huge as it may seems to be. Perhaps we should clarify that the main reason why WebRTC don't RSFEC is most likely due to the lack of open standard? I'm worring that this may mislead people to think that computational overhead is the main blocker, and won't likely be fixed (which to me is not the case).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Sounds good, I think another issues is that RS blocks design is tricky for real time, sure you can use smaller blocks, or partial decoding / sliding window tricks. But either ways I don't think it will happen with webrtc soon. Anyway, you can edit this part as you wish.

@aalekseevx
Copy link
Copy Markdown
Member

I'll add my commits today. Sorry if it takes too long

@JoTurk
Copy link
Copy Markdown
Member

JoTurk commented Jun 6, 2025

I'll add my commits today. Sorry if it takes too long

Take all the time you want, no rush at all :)

@aalekseevx
Copy link
Copy Markdown
Member

@3DRX, @joeturki, I think that's all from me for now :)

@3DRX 3DRX force-pushed the fec_with_pion branch from 3e49b3b to 4dc876b Compare June 7, 2025 18:58
@3DRX
Copy link
Copy Markdown
Member Author

3DRX commented Jun 7, 2025

@joeturki @aalekseevx I've finished my edits. Btw #59 is ready for review too.

@aalekseevx
Copy link
Copy Markdown
Member

@3DRX, what I like about .drawio.png files is that they're editable in draw.io. If we need to add something or modify the diagram for another article, we don’t have to start from scratch. Maybe we can keep both the editable .drawio file and webp?

This reverts commit 1194c23.
@3DRX
Copy link
Copy Markdown
Member Author

3DRX commented Jun 8, 2025

@aalekseevx I just read more about Hugo and found that it supports optimizing image at build time, I opened #60 to add this. In this PR let’s only keep the editable pngs.

Comment thread content/en/blog/fec-with-pion.md Outdated
@JoTurk
Copy link
Copy Markdown
Member

JoTurk commented Jun 13, 2025

I'll add my edits today or tomorrow, Sorry I missed the notifications on this.

@JoTurk
Copy link
Copy Markdown
Member

JoTurk commented Jun 18, 2025

@3DRX @aalekseevx Sorry I got busy at work. and I don't want scuff this, I'll add some edits and sections this weekend

@JoTurk
Copy link
Copy Markdown
Member

JoTurk commented Jun 23, 2025

@3DRX @aalekseevx done my round for now, sorry it took time.

@3DRX
Copy link
Copy Markdown
Member Author

3DRX commented Jun 23, 2025

The changes looks great, thank you @joeturki for taking your time on this. @aalekseevx do you have anything to edit, I think we can publish this after your final review:)

@aalekseevx
Copy link
Copy Markdown
Member

@3DRX, I will commit some minor changes shortly. Thank you @joeturki

@aalekseevx
Copy link
Copy Markdown
Member

@3DRX, @joeturki, nothing else frome me!

@JoTurk
Copy link
Copy Markdown
Member

JoTurk commented Jun 23, 2025

@3DRX should we merge this?

@3DRX
Copy link
Copy Markdown
Member Author

3DRX commented Jun 23, 2025

@joeturki Sure! Let’s merge.

@JoTurk JoTurk merged commit 1e97024 into master Jun 23, 2025
1 check passed
@JoTurk JoTurk deleted the fec_with_pion branch June 23, 2025 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants