jit.ndi - Externals for sending video/audio over the network

    • Dec 12 2021 | 2:51 pm
      I managed to get video data as well in one out of 3 laptops from the one PTZ camera that was advertising as well. I still can't see the other one even on this laptop. Weird that I don't have these problems in OBS and NDI Monitor. Any suggestion are still very much welcomed. Anyway I tested the PTZ control functions in jit.ndi. It seems I can only use ptz_pantilt_speed, but ptz_pantilt and ptz_zoom are not working. Any idea why that is? Thank you!! I created a demo here: https://youtu.be/3tsdetR8tfs
    • Dec 12 2021 | 3:33 pm
      It's possible that the PTZ hardware device doesn't support directly setting the pan/tilt/zoom/focus from a discreet value, which case you have to use the 'speed' attributes. (@ptz_pantilt_speed, @ptz_zoom-speed, @ptz_focus_speed). These don't directly set their respective properties, they instead adjust the rate at which they should change. This is equivalent to a PTZ joystick or zoom/focus slider which returns to a centre position when you let go.
    • Dec 13 2021 | 4:24 pm
      Great!! Makes sense now. I managed to control that specific camera. Thank you so much. I still gotta figure out why the other camera cannot be seen in Max. :/
    • Dec 13 2021 | 5:03 pm
      Any idea how @ptz_zoom_speed works? If I send something bigger than 0. like 0.3, I see it starts to zoom in. If I send 0. it stops zooming. But I don't know how to zoom out. If I send a negative value like. -0.1 or -0.3 or any other, it does not zoom out.
    • Dec 13 2021 | 9:17 pm
      Looks like you found a bug! The minimum value for that attribute was specified incorrectly. Have fixed, will be in the next release in a couple of days.
    • Dec 14 2021 | 9:17 am
      Grrreat!! Related to the other problem, is it possible that the fact that the PTZ camera's firmware is old, jit.ndi might not see that specific camera?
    • Dec 14 2021 | 12:50 pm
      Ok. I believe I finally have the actual proof that jit.ndi.receive~ does not receive NDI HX sources. Or at least, it has issues with most of them. Like I was mentioning before, my 2 NDI HX cameras have issues in Max, but not in OBS or NDI Monitor. Also NDI Bridge has issues in Max. I wrote about the problem here: https://cycling74.com/forums/errors-using-ptz-cameras-with-jit-ndi-receive~ But now, with the help of a friend, we noticed something else. NDI 5 comes with a few programs. One of them is Screen Capture which send NDI data of a captured screen. But there si also a program called Screen Capture HX that captures the screen and creates an NDI HX stream. We tested both options of capture and tried to play the stream on the same laptop using either Max with jit.ndi.receive~ or NDI Monitor. While capturing a normal NDI stream worked on both NDI Monitor and Max, capturing an NDI HX stream did not work on Max while still working on NDI Monitor. So the conclusion is that jit.ndi.receive~ definitely has some issues with NDI HX streams. Here is a demo where we show how jit.ndi.receive~ reacts to both normal NDI and NDI HX: https://www.youtube.com/watch?v=BPB8_D7CZxk May I ask that you replicate the test and see if you have the same issues? Thank you so much!!
    • Dec 14 2021 | 2:05 pm
      I have tested with the iOS NDI HX camera app, and with the Screen Capture HX (on Windows), and could not replicate this issue. I would note that as far as jit.ndi.receive~ is concerned, there is no difference between NDI and NDI-HX sources. They are both discovered and received via the NDI runtime library in exactly the same way. I'm not sure if it's even possible to determine from the runtime library whether a source is HX or not.
      Hence, if you're not seeing HX sources in Max, then the problem is going to be NDI runtime library related. I'm not sure how the NDI tools applications link to the runtime, but jit.ndi is dynamically linked to the system-wide NDI install, meaning that it will use whichever version of the NDI runtime which is installed on the system. If the NDI tools applications link statically then they might end up using a different version of the runtime which would explain the different result. It's also worth checking that you've definitely installed the NDI HX driver with the tools, as this may also be something which the tools statically link but other applications need to access dynamically.
    • Dec 30 2021 | 9:29 pm
      Thank you, David. I didn't want to respond before trying a few more things. I still didn't manage to fix this issue. It seems I have the same problem with another PTZ NDI HX camera from PTZ Optics. And weirdly enough one of the 2 cameras does not work on all 4 laptops I tested and the second one for sure works on 2 of the 3 laptops I tested. I mean it gets advertised and I can also get the stream. Anyway I will look further. But I wanted to ask you. From my understanding jit.ndi.send~ sends normal a NDI stream. Is there a possibility to send an NDI HX stream instead? Thank you!
    • Dec 30 2021 | 9:40 pm
      AFAIK Newtek do not make HX encoding available in the public SDK.
      Something that might be worth checking is that mDNS (and multicast traffic generally) is being received on all your laptops. This would affect discovery. You could also try running an NDI discovery server instance (part of the Windows SDK download) to check discovery using a non-multicast mode.
    • Jan 15 2022 | 2:18 pm
      I managed to solve the problem. The cameras I had did not have a setting to change the name. Thus both cameras had the same name and this caused the issues. I talked to the developers of those cameras and they game a tool to change the name of each camera and thus the issue was solved. Did you manage to fix the bug with the ptz_zoom and ptz_focus acting weird? If not, may I ask that you fix that? Thank you so much! And thank you for all your help!
    • Jan 21 2022 | 10:45 pm
      Hi, David, and anyone else reading this :) It seems the fix I mentioned in the last comment resolved one problem where jit.ndi would not see both cameras at the same time.
      But I still have the following problem. On 2 out of 5 laptops I tested, jit.ndi does not see any image from streams that are NDI HX. I even tested with steams coming from the same laptop from NDI Screen Capture HX. I reinstalled Max and jit.ndi, I reinstalled NDI 5 SDK and Tools, I disabled the Firewall (just in case even though it does not see HX steams from the same device). This problem only affects Max and jit.ndi. I don't have this problem using OBS or NDI Monitor. Considering I don't have this problem on the other 3 laptops, I just don't know where the problem is coming from. I am thinking of installing Win 10 again and start from scratch. You mentioned mDNS, but would it affect an HX stream coming from the same laptop? Also wouldn't it affect normal NDI streams as well and also create the same problem on other apps? Any idea what else should I check? And please, please fix the bug with ptz_zoom!! Thank you so much!
    • Jan 22 2022 | 7:16 pm
      Updated release with the PTZ fixes above.
    • Jan 22 2022 | 7:24 pm
      Thank you so much, David. Much appreciated! Related to the previous problems I mentioned, I forgot to add that when getting HX streams from PTZ cameras, even though I see only black, I can move the aforementioned cameras.
    • Jan 23 2022 | 12:26 am
      That would suggest that the NDI runtime is failing to decode the H264 component of the stream, which could indicate an issue with the NDI HX driver.
    • Jan 23 2022 | 9:41 am
      Thank you, David. But wouldn't that mean I should have the same problem in OBS or NDI Monitor? Which I don't. I only have this problem in Max. Like I was saying above, this problem only affects 2 out of 5 win machines I tested on and the problem is only related to jit.ndi and Max.
    • Jan 23 2022 | 9:52 am
      I reformulated the whole problem to have more sense. Hopefully.
      I have a weird problem where I cannot see HX streams in one application out of 3 tested. -I have tested NDI on 5 Windows machines. I have the following problem on 2 out the 5 Windows machines.
      -The problem affects only the Cycling 74 Max application, but not OBS nor NDI Monitor.
      -I cannot see the HX steams (even HX streams created on the same machine - for example Screen Capture HX) on those 2 machines. I can see HX streams on the other 3 machines. Normal NDI streams just fine.
      -On PTZ camera that output HX streams, even though I only see black (so no image), I can control those specific cameras
      Any idea what could be wrong that it affects only HX sources, only on some Windows machines and only on one application, but not the other?
    • Jan 27 2022 | 3:15 pm
      I reinstalled Windows on one of the devices where NDI HX is not streamed in Max. Still the same issue. Here are 2 videos where the problem is shown. Video 1 with a laptop where everything runs smoothly. NDI HX is streamed in Max: https://youtu.be/FBB_vkniA4s Video 2 with a laptop where NDI HX is not streamed in Max, not even the HX stream from the same laptop. OBS and NDI Monitor do get those streams. https://youtu.be/RPnE0SQH69c Sorry. No audio as I had some issues recording it on OBS.
    • Jan 29 2022 | 2:59 pm
      I recently reinstalled Win 10 on one laptop where I have no issues and on another one where I do. I reinstalled afterwards Max, jit.ndi and NDI Tools. I have exactly the same issues as before. On the laptop where it worked before, it works now. On the laptop where I didn't get any HX NDI images in Max, I still don't get them. I have to mention that on the laptop where I have no issues I only installed NDI Tools and not NDI DSK (which comes with NDI Runtime). And it worked. No issues whatsoever including in Max. So I did the same on the other laptop. Still no HX images in Max, but with normal NDI images in Max. And both normal and HX NDI in NDI Monitor. This is weird as hell. I also activated mDNS and still nothing.
    • Jan 29 2022 | 10:23 pm
      Hi, David and everyone reading this. I reinstalled Win 10 6 times in the last days. For science! :) I reinstalled Win 10 and the necessary apps (Max, jit.ndi and NDI Tools) on the 2 laptops again. And I recorded the screen just so you can see the weirdness. I started with the laptop where NDI in Max worked before. And after Win 10 finished installing, I immediately installed Max , opened Max, then copied jit.ndi. I then installed NDI Tools. After NDI Tools installed, I opened NDI Monitor and tested to see if I could see the HX streams coming from the 2 cameras. Everything fine there. Then opened Max. It didn't work as I wasn't able to see external NDI sources. I restarted Max and all the sources became available. Including HX streams coming from the 2 cameras. I even tested with NDI Screen Capture HX coming from the same laptop. Everything worked as expected. No issues at all. Every software I used is last version. You can see the demo here: https://youtu.be/LUSjnTNOXZ8 . I recommend 2x speed playback. I then reinstalled Win 10 on the laptop that had issues previously where Max couldn't see video from HX sources. I followed the same steps and used exactly the same software (including the same Win 10 usb stick): waited for Win 10 to finish installing, installing Max afterwards, copied jit.ndi, installed NDI Tools, opened NDI Monitor, opened Max, closed and reopened Max. And Max again has the same issue. It does not see HX streams from PTZ cameras as well as HX streams coming from NDI Screen Capture HX running on the same laptop. It does see normal NDI streams. And NDI Monitor does see normal as well as HX streams. You can see a demo here: https://youtu.be/YPMqQW41hDk Any suggestions or opinions are truly welcome. I am considering writing Newtek and presenting this situation. But considering it is related to Max, I don't know if they can do anything about it. What do you think? Thank you so much!
    • Jan 30 2022 | 6:24 pm
      Updates as they happen. The laptop where I had no issues with HX streams in Max has a Nvidia GeForce GTX 1060 GPU. The laptop where I had issues with HX streams in Max has a GeForce GTX 2070 GPU. This is important because this is what I found.
      On the laptop with a GeForce GTX 1060, like I was saying earlier, I reinstalled the necessary software for testing HX streaming in Max and everything was working. I forgot to mention that the GPU drivers were installed automatically by Windows. This happened before I had the time to make the tests. So the tests were done with GPU drivers installed automatically by Windows. After the tests I also installed GeForce Experience app and updated the GPU drivers via that app. (GeForce reported I had at this point v511.23 , but the Device Manager reported I had v30.0.15.1123 - I don't know why they report differently). Once I updated the GPU drivers, I realized that jit.ndi stopped streaming HX streams. Just like on the other laptop which has a GeForce RTX 2070 GPU. I went to the Device Manager and unrolled the drivers for the GPU card (and now the Device Manager reports I have v22.21.13.8205). I restarted the laptop and now I get HX streaming inside of Max once more. So definitely HX streams are affected by the newer GPU drivers.
      On the other laptop that boasts a GeForce RTX 2070 GPU card, the drivers installed automatically by Windows are probably newer and this is why they don't work with HX streams in Max either. I will try to update the GPU drivers there as well, but my guess is that I will have to use older drivers in order to make it work. And I hope I can find older drivers. As an extra note, my colleague told me that his laptop that had similar issues also has a RTX 2070 GPU card. Surprise, surprise! As a conclusion, for sure the newer GPU drivers are creating this issue where I get black instead of HX streams in Max via jit.ndi.receive~. And I am asking what I should do in this situation other then using older drivers? Should I also talk to Nvidia or maybe Newtek. I have to bring again the fact that the only app affected by this GPU driver / NDI bug is jit.ndi. NDI Monitor and OBS work just fine. I need your advice! Thank you so much! PS:
      These are the drivers I used and logged after tests: Laptop 1 Clevo P751 P751DM2-G
      CPU: Intel® Core™i7 Quad Core Processor i7-6700k (4.0GHz) 8MB Cache 91w
      GPU: NVIDIA® GeForce GTX 1060 (N17E-G1) 6GB GDDR5 Video RAM
      Drivers tested:
      Not OK v30.0.15.1123 (which is the last version for this laptop)
      OK v22.21.13.8205 (This is the rolled back version after I tested the one above. I believe this is the version that Windows 10 automatically installs)
      OK v21.21.13.7620 from 12/2/2016 (installed from the laptop manufacturer package of drivers)
      Laptop 2 Dream Machine
      CPU: AMD Ryzen™ 9 3900X 12 Core 3.8GHz Up to 4.6GHz Boost Clock 64MB L3 Cache
      GPU: NVIDIA® GeForce® RTX 2070 - 8.0GB GDDR6 Video RAM
      RAM: 2x32GB Corsair VENGEANCE 2666MHz SODIMM DDR4
      Drivers tested:
      Not OK v27.21.14.5720 from 11/2/2020 (installed automatically by Windows 10 and also available from the laptop manufacturer package of drivers)
      Not OK v10.0.19041.868 from 6/21/2006 (rolled back drivers for generic graphics card)
      Not OK v30.0.15.1123 from 1/10.2022
      Not OK v27.21.14.6677 from 6/8/2021
    • Jan 30 2022 | 9:31 pm
      Or maybe I can disable some specific feature in the NVidia Control Panel..
    • Mar 31 2022 | 9:11 am
      For anyone interested, I still have no image from NDI HX. I use jit.ndi to control the camera and I use another jit.ndi to get the video stream from the camera via another app called Zen NDI RTx: http://www.zenvideo.co.uk/ndi.htm