NDI|HX for Linux

pinpox

New member
Hello,
I'm using NDI to stream from a phone to a linux computer with OBS+obs-ndi plugin. This works ok if the phone app is set to "Full NDI" but I can't decode the HX formats. Is HX supported on linux? What SDK do I need to decode it?

I guess I'm missing some driver or SDK, since I heard of people using obs-ndi with HX on other operating systems. Where can I find the appropiate linux drivers/libraries?
 
HX is just H264/H265 encoded data. HX2 and HX3 are the same but with carefully crafted GOP lengths for lower latency. For decoding HX I believe it will use the H264/H265 decoder available on the operating system, their are many available for Linux but how you point the plugin to it is not clear. On Windows it just works because it is preinstalled (H265 may need an add-on).
 
As probably a lot of people are aware, the SDK for Linux doesn't seem to be working for NDI|HX on many current Linux distributions, e.g. Ubuntu 24. Whatever application you use (OBS/DistroAV, GStreamer, ..), if you try to view an HX source all you get is an error screen about "Video Decoder not available". It's possible this is related to the fact that recent versions of ffmpeg do not include libndi - for GPL licensing reasons. This has been broken since at least last October. VizRT doesn''t seem to have any plans to address this.
Does anyone know of any recent Linux distribution where the SDK does work with NDI|HX, and if so exactly what libraries are required?
 
I don't have a x86 Linux system to test on, but it has been my understanding that NDI doesn't include a H.264 or HEVC codec, only a SpeedHQ codec is included (this is the codec used by High Bandwidth NDI). For any HX formats, it is expected that there is a system/OS codec available. It's this way on Windows and macOS, I'm assuming it's the same on Linux as well.

Perhaps this might help? https://thelinuxcode.com/install-h264-decoder-ubuntu/
 
I don't have a x86 Linux system to test on, but it has been my understanding that NDI doesn't include a H.264 or HEVC codec, only a SpeedHQ codec is included (this is the codec used by High Bandwidth NDI). For any HX formats, it is expected that there is a system/OS codec available. It's this way on Windows and macOS, I'm assuming it's the same on Linux as well.

Perhaps this might help? https://thelinuxcode.com/install-h264-decoder-ubuntu/
Thanks for the response! Unfortunately libavcodec-extra doesn't seem to be sufficient. (I'm testing with an iPhone running NDICam, so I think H.264 should be sufficient)
I also tried installing ubuntu-restricted-extras, just in case, but that doesn't help.
It does seem like this is on the right track though, I've seen reports of NDI|HX working with some distributions, so it feels like it's either a missing package or a version issue. That's part of why I was asking: to try to figure out (and document) what the missing pieces are.
 
Last edited:
Back
Top