Jetson TX2 NX Module - H264 Lossless Encoding

Hi, there,
We are testing HW H264 encoder on TX2 NX module for lossless h264 encoding.
Q1: Does sample application ‘01_video_encode’ takes planar or packed pixel yuv444 file for lossless encoding?
Q2: If we need use gstreamer do lossless h264 streaming, does any gstreamer plugin support TX2 NX HW lossless h264 encoder?
“gst-inspect-1.0 omxh264enc” and “gst-inspect-1.0 nvv4l2h264enc” shows only YV12 and NV12, no YUV444 or Y444.
Thanks

Hi,
For lossless encoding, please refer to
H.264 lossless encoding - #2 by DaneLLL

Input format is planar 4:4:4 YUV.

Thanks for the reply. I see the " H.264 lossless encoding - #2 by DaneLLL" uses gst save yuv file, then use ‘video_encode’ to encode it.
Sorry my Q2 in op is also our concern, is there any gst plugin supports TX2 HW 264 encoder to do YUV444 lossless encoding?

Hi,
There is no implementation in gstreamer. Please consider to use jetson_multimedia_api.

Thanks for the reply.
If we need below pipe (lossless) on Jetson TX2 NX, is there any suggestion on how to implement ?
camera → gst pipe → h264/265 udp stream → gst rtsp server
or
camera → h264/265 udp stream → rtsp server

Hi,
A possible solution is to run like:

nvarguscamerasrc ! video/x-raw(memory:NVMM),format=NV12 ! nvvidconv ! video/x-raw(memory:NVMM),format=Y444 ! nvv4l2h264enc ! h264parse ! rtph264pay ! udpsink

And you would need to adding Y444 format in nvvidconv and nvv4l2h264enc plugins. The source code of the plugins is public and in the package:
https://developer.nvidia.com/embedded/l4t/r32_release_v5.1/r32_release_v5.1/sources/t186/public_sources.tbz2

You can build/replace the default code first and then do customization by referring to jetson_multimedia_api samples.

1 Like