@kklee many thanks for your suggestion of onvifer. It certainly helped me in finding the right parameters, but there was a huge amount of fiddling involved. I feel we might need to make a tutorial on how to use that app. the UX is terrible. After finding the URLs, I gave it a go and it still didnt work for some of the cameras so I had to mess around with the motion detection settings as you suggested and it fixed it eventually for all the cameras. I finally got the sub streams working. I dont know what I changed to get them to work but they did eventually start reporting a main stream and a sub stream. This is not the easiest of things to achieve and I believe that "if" the sub streams dont work, I would do what
@kklee just suggested, delete the camera and add it again.
A few suggestions for using ONVIFER, ensure that ONVIF is activated on all cameras. On hikvision it is deactivated by default. Onvif also needs its own user to be added as it does not use the main authentication of camera, look at onvif users in the settings, add them and then you should be able to see the camera in ONVIFER.
For Dahua, the URL that worked for me for substream was /cam/realmonitor?channel=1&subtype=1&unicast=true
For my hikvision cameras: /Streaming/Channels/2 and /Streaming/Channels/2?transportmode=unicast&profile=Profile_2 and also /Streaming/Channels/102?transportmode=unicast&profile=Profile_1
As to what my next challenge is, I need to figure out how to get the cameras to trigger onvif events when I am not using ONVIF credentials in BI. To get ONVIF triggers, I think only the ONVIF authenticated users will get the events, however in BI, there is no separate username and password fields for onvif specific events, so the mind boggles.