My team is utilizing the Jetson TX2 hardware for a computer vision project. We are running a gstreamer pipeline setup similar to the Jetson inference demo.
The issue we face is that we are using an h264 rtsp stream. Something about the h264 encoding gives the Jetson omxh264dec hardware decoder some trouble, and after some time the stream gets delayed. We only have the option of h264 or mjpeg, and both have had the same issues with TX2 hardware decoders.
Does anyone have experience with RTSP pipelines on the Jetson? Do you have any idea why prolonged usage of the decoder would deteriorate the output/cause delay? After 20-30 minutes, performance of the decoder is degraded and we either get blocky output or a massive delay (or both). Eventually it becomes totally unusable.
Here is a link to a saved raw rtsp stream clip that produces the same decoder issues as the rtsp stream. If you run it through filesrc with gstreamer, it will give some SEI type 5 errors.
For reference our gstreamer pipeline is similar to this:
This software decoder pipeline works at 15fps 1080p over long periods of time (tested 10 hrs with no delay) but fails at 30fps
std::string pipelinestr = “rtspsrc location=” + RTSP_URL + " ! queue ! rtph264depay ! queue ! h264parse ! queue ! avdec_h264 ! queue ! videoconvert ! video/x-raw, format=RGB ! queue ! appsink name=mysink sync=false";
This hardware decoder pipeline is what we would image should work at 30 fps 1080p h264 over long periods of time. It starts out running fine, but eventually will begin to develop a delay after 10-20minutes, you can see the gstreamer memory usage increase during this process.
std::string pipelinestr = “rtspsrc location=” + RTSP_URL + " ! queue ! rtph264depay ! queue ! h264parse ! queue ! omxh264dec ! nvvidconv ! video/x-raw, format=NV12 ! queue ! appsink name=mysink sync=false";
The goal is to have an rtsp feed being decoded in real-time and operate for long periods of time without lagging behind or the output becoming unusable.
For reference, a similar pipeline but with omxh264dec replaced with avdec_h264 on GTX 1080 Ubuntu desktop produces no issues, even when run 24 hours straight, whereas the performance of the Jetson degrades quickly.
Any input you have would be appreciated!