I am developing a video conferencing application using H.264. When my application works with RMX-2000, I faces a problem that is RMX-2000 only accepts single NAL unit mode in RTP. So how can I set Intel H.264 encoder to create multiple slices per frame with size was set before?
I am using Intel Media SDK 2013 R2, and use hardware encoder implementation.
Unfortunately there is no way of controlling the max size of the NAL in current release or Media SDK and Intel hardware. The reason for this is a dependency on fixed function HW encode component which sadly was not designed with such capability in mind. This feature is being explored for future generations of Intel hardware.
Is there a public copy of the spec on how the NALs must be formed for the RMX-2000 ?
I do not understand exactly from your message what the constraints are, or rules of composition that must be applied, and I'm curious.
There is no public spec of RMX-2000 telling about this, but in real world with my application, although I have signaled that I use FA-U, but RMX can not decode my stream. So I tried to setting to create multiple NALUs per frame (by setting fixed number slices per frame) and RMX-2000 can decode my stream.
With this setting, I can make my application working with RMX but the quality of frame is un-acceptable
Just a note, it would be great if this is fixed in future versions of hardware, I am running up against an issue where I need to be able to set the maximum size of a NAL unit myself, and it is unfortunate that this is not supported.
Even without hardware support, it would be nice if the software encoder had support for this, too.
Without maximum NAL length control, it means the IMSDK is constrained in which environments it can be used in with regards to RTP.
[The IMSDK cannot be used in places where only a baseline RTP decoder is implemented, unless the transport layer handles NALS of arbitrary length, something untrue for the typical RTP/UDP scenario. [yes fragmented UDP is available, but has problems in its own right]
This is the problem with the RMX 2000, I believe.