sipsorcery icon indicating copy to clipboard operation
sipsorcery copied to clipboard

Is there a way to use RTPSession with VP9

Open tribaud opened this issue 3 years ago • 1 comments

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.

  • The video h264 is good but it works only with chrome browser as a client (Firefox disabled the support of H264 natively)
  • The video VP8 is using libvpx with one pass and the quality is really poor (but it works with a firefox client)

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.

tribaud avatar Dec 08 '21 13:12 tribaud

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.

sipsorcery avatar Dec 08 '21 22:12 sipsorcery