Fec with pion#54
Conversation
|
@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! |
aalekseevx
left a comment
There was a problem hiding this comment.
Great text! I have added comments about things that might also be worth mentioning.
| fecInterceptor, err := flexfec.NewFecInterceptor() | ||
| // handle error... | ||
| i.Add(fecInterceptor) | ||
| ``` |
There was a problem hiding this comment.
Do you guys think the ConfigureFlexFEC03 helper is worth mentioning?
There was a problem hiding this comment.
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!
There was a problem hiding this comment.
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!
|
|
||
| ### Verify that FlexFEC is Enabled | ||
|
|
||
| - On sender side, which is within Pion, you can log the packets. |
There was a problem hiding this comment.
It's not that easy to log something after the interceptors by hand, is it? Maybe we should suggest using the packetdump interceptor?
There was a problem hiding this comment.
Good idea, I was thinking about this interceptor when writing this. It’s definitely better if we include a link to it.
|
@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. |
|
@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 🔁 |
|
Good idea, I’ll not make any commits until @aalekseevx finishes his to avoid collision. |
|
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 :) |
|
|
||
| ## 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. |
There was a problem hiding this comment.
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).
There was a problem hiding this comment.
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.
|
I'll add my commits today. Sorry if it takes too long |
Take all the time you want, no rush at all :) |
|
@joeturki @aalekseevx I've finished my edits. Btw #59 is ready for review too. |
This reverts commit 1194c23.
|
@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. |
|
I'll add my edits today or tomorrow, Sorry I missed the notifications on this. |
|
@3DRX @aalekseevx Sorry I got busy at work. and I don't want scuff this, I'll add some edits and sections this weekend |
|
@3DRX @aalekseevx done my round for now, sorry it took time. |
|
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:) |
|
@3DRX should we merge this? |
|
@joeturki Sure! Let’s merge. |
Add a blog post about fec with pion, with small changes to the code too.