Nvv4l2h264enc Without BFrame

Please provide complete information as applicable to your setup.

**• Hardware Platform : DGPU
**• DeepStream Version 6.2
**• NVIDIA GPU Driver Version 535.129.03
**• Issue Type : questions

Hello,

I try to publish a live stream with inference bbox has WebRtc Stream.
To do this i publish my stream encoded with nvv4l2h264enc to rtspclientsink and i use MediaMtx to serve WebRtc.

I can read the stream with the RTSP url provided by MediaMtx.
I can’t read the stream with the WebRTC url provided by MediaMtx.

WebRTC H264 does’nt support B-Frame, so my ideao is to set profile to 0 (BaseLine H.264 — Wikipédia profile without b-frame) on nvv4l2h264enc but without success …

Do you know how i can configure nvv4l2h264enc to provider WebRTC valid stream ?

There is “profile” property for nvv4l2h264enc to set the profile.

https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_plugin_gst-nvvideo4linux2.html#id3

Yes but it not work.
Pipeline below work only in RTSP, WebRTC show black screen :
gst-launch-1.0 videotestsrc ! nvvideoconvert ! ‘video/x-raw(memory:NVMM),format=I420’ ! nvv4l2h264enc profile=0 ! ‘video/x-h264’ ! h264parse ! rtspclientsink location=rtsp://localhost:8554/stream

Pipeline below work in RTSP and WebRTC but very slowly :
gst-launch-1.0 videotestsrc ! nvvideoconvert ! ‘video/x-raw,format=I420’ ! x264enc bframes=0 ! ‘video/x-h264’ ! h264parse ! rtspclientsink location=rtsp://localhost:8554/stream

I share my solution tu publish to MediaMTX and work in RTSP and WebRTC :
gst-launch-1.0 videotestsrc ! nvvideoconvert ! ‘video/x-raw(memory:NVMM),format=I420’ ! nvvideoconvert ! ‘video/x-raw,format=I420’ ! nvh264enc ! ‘video/x-h264’ ! h264parse ! rtspclientsink location=rtsp://localhost:8554/stream

But i think memory conversion can cause damage on CPU/GPU/Memory comsumption …
I dont’t have time to analyze H264 frame proced by nvv4l2h264enc with profile 0 but i think it contains B-Frame …

There is no update from you for a period, assuming this is not an issue anymore. Hence we are closing this topic. If need further support, please open a new one. Thanks

No. The “profile=0” property works. There is no B frame. I think you may try with DeepStream 6.3 version, whose nvv4l2h264enc support “idrinterval” property. The shorter IDR interval will save the time to wait for the new SPS/PPS+IDR frame to start decoding in the receiver side.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.