sipsorcery-org / sipsorcery

A WebRTC, SIP and VoIP library for C# and .NET. Designed for real-time communications apps.
https://sipsorcery-org.github.io/sipsorcery
Other
1.47k stars 442 forks source link

Is there a way to use RTPSession with VP9 #635

Open tribaud opened 2 years ago

tribaud commented 2 years ago

Hello, we have done a Webrtc application with SIPSorcery 5.1.2 (not the latest) and SipSorcery.FFMpeg for video encoding.

We do not need audio and we actually achieve encoding video with ffmpeg on linux with H264 and VP8.

So we try to go to VP9: We saw some unit tests in this repository dealing with VP9 And when we look in ffmpegVideoEncoder.cs it seems to be able to support VP9

But the question is : is it a big deal to add VP9 support in RTPSession ?

When we test it the Channel is closed with the VideoIncompatible reason.... https://github.com/sipsorcery-org/sipsorcery/blob/d1a2f2bc18d3868ceefbd50ad4c1b076e0ed1392/src/net/RTP/RTPSession.cs#L670

Thanks for your answer.

sipsorcery commented 2 years ago

The reason is here. You'll note there is no VP9 packetisation. Yet another thing I didn't get around to.

I haven't looked into it but I think VP8 and VP9 packetisation are the same, however, I could be wrong. If they are the same then in theory it would not be a big deal to add support to RTPSession. If not, it would be a big deal.