Table of Contents
RTSP Video Plugin
The RTSP Plugin is a more modern protocol supported by most HD cameras. Usually no other configuration information or urls need to be known other than the port that the camera is running it on. This kind of stream is more resource intensive on the XTension machine as it requires helper apps to decode and manage the low level protocol, which usually is H264 encoded for better video with lower bandwidth.
For information on the settings that all the Video plugin share please see the Main Video Wiki Page.
In the RTSP Url field please make sure to start your link with “rtsp:“ and then include the user and password as shown. The port of 554 is usually not needed as that is the default for an RTSP stream. If you are connecting on some other port then it would be required to include it.
When setting up a Camera API please make sure to also check the send authentication checkbox and fill in the user/pass fields there as well. Because the port of the API is not the same as the RTSP port you should also fill in the API Port field with the port that the API interface is running on. Usually 80, but it might be different for your camera. Almost every RTSP capable camera will require that “Digest” be selected in the authentication type popup. If you still get authentication errors after selecting that you can try the Basic method.
In general you would want to set the camera to send only the framerate that you wish to push into XTension. It is not practical to try to push 30fps into XTension so you’ll definitely want to reduce that and experiment to see what is possible on your machine without causing issues for other processes or XTension slow downs. The Recording FPS field can be set to a lower number than the incoming framerate and the plugin will reduce the framerate locally. This will reduce the load on XTension but it still requires that the plugin process every frame received so will use more CPU resources than having the camera send only as many frames as you want in XTension.
RTSP Streams can suffer from long startup times and longer latency than the other types. Please see the discussion of decreasing latency on the Video Main Page
Though this is called the RTSP plugin, it is capable of receiving any of the streaming methods that can be indicated with the protocol type in the URL field. For example HTTP streaming would work just fine, as well as tcp: or udp: or any of the other connection methods that would be supported by the ffmpeg application.
Amcrest Camera RTSP Links:
This plugin supports all currently known Amcrest cameras.
Note that when using the Amcrest Camera Control it is necessary to select “Digest” authentication mode and to re-enter the user and password even if they were included in the RTSP link in the field above. For more info on the Camera Control available for Amcrest Cameras and others see the Camera Control Plugin article.
The “Smart Home” cameras support only a subset of the API used in the Amcrest Camera Control and have no built in web interface for configuration. All config must be done through their mobile apps or via the Amcrest IP Config Application Which is available for both windows and Mac desktops. It is very useful for finding the cameras on your local network and giving them static IP addresses and the other useful things.
For IP Cameras:
For DVR Devices:
For NVR Devices:
The RTSP Decoding tries to use the GPU to accelerate the decoding of the RTSP stream by default. This works for both Intel and Apple Silicon devices. The plugin should automatically decide if it can make use of the currently available GPU and if so to use it. In my testing Intel machines get a much larger CPU usage savings with this than Apple Silicon just because decoding the video in software is so much faster in that case that it’s less helpful. If you have a problem with using the GPU or if you find it actually takes more cpu when pipeing everything to the GPU, you can turn off hardware acceleration by running the interface and issuing the command:
tell xInterface “my RTS Video Stream Plugin Name” to SetHWAccel( False)
or pass True to turn it back on. You can only issue the command while the interface is enabled and you must disable and re-enable the interface for the changes to take effect. The setting is remembered for the interface so it is not necessary to issue the command at each startup.