Closed avicarpio closed 8 months ago
@avicarpio Thank you for sharing the code, is it work with VP8 codec? If so, NvCodec implementation would be caused by the issue.
Hi @karasusan, yes, I see it works with VP8, but we can't use it because we need HW Encoding since we work with high quality video and we use AWS machines. Making simulcast with VP8 with the encodings we use is super exhausting and we would need a very expensive machine. Also, the quality is not as flawless as H264. So we should use simulcast with NVCodec, is it possible? Thank you.
Btw, I've cloned the project and I found this comment on NvEncoderImpl.cpp:
// todo(kazuki): Add multiple configurations to support simulcast
m_configurations[0].width = m_codec.width;
m_configurations[0].height = m_codec.height;
m_configurations[0].sending = false;
m_configurations[0].max_frame_rate = static_cast<float>(m_codec.maxFramerate);
m_configurations[0].key_frame_interval = m_codec.H264()->keyFrameInterval;
m_configurations[0].max_bps = m_codec.maxBitrate * 1000;
m_configurations[0].target_bps = m_codec.startBitrate * 1000;
Is it correct that it is still on todo? Is it that part of the code that does not allow simulcasting? If so, is there any plan to implement it in the short term? Since simulcast is something quite necessary and fundamental in WebRTC. Thank you very much.
memo: WRS-482
@avicarpio Yes, we haven't supported simulcasting with NvCodec. I will try to reproduce your issue in my environment.
Thank you very much @karasusan! I will be waiting for the news to be able to use it as soon as possible. If you need anything else I will be happy to help you.
We are fixing this issue on this PR. https://github.com/Unity-Technologies/com.unity.webrtc/pull/955
Package version
3.0.0-pre.5
Environment
Steps To Reproduce
Create a transceiver before the sdp that has the 3 qualities on the encoding parameters like this:
Then generate the sdp:
On the client browser, I can only see the highest quality, changing the substream is ignored because Unity only generates the highest substream. Do you see anything wrong on the code or on the sdp? Thank you.
Current Behavior
Only highest quality is generated.
Expected Behavior
To generate 3 qualities, that is what simulcast should do.
Anything else?
This is the log that Janus (the WebRTC server I am using) dumps: janus.log
Edit: I can confirm that only the highest quality is being generated (this is from the janus.log):