Troubleshooting and FAQ
Troubleshooting
Producing a log for the support
The filter can write a diagnostic log, which is what our support usually asks for first. Enable it by adding >log=1 at the end of the URL:
rtsp://192.168.0.25/axis-media/media.amp>log=1
Use >log=0 to disable it again. Reproduce the problem with the log enabled, then send us the log along with the URL and the camera model.
The video is stuttering
Retry after disabling the "low delay" setting:
- either as parameter at the end of the RTSP URL:
rtsp://192.168.100.20/cam0_0>lowdelay=0>vidsync=0>audiostreamenabled=0
- or programmatically before loading the URL by invoking:
DatasteadRtspSourceConfig.SetInt ("RTSP_Source_LowDelay_int", 0)
The MP4 recorded file is truncated
The evaluation timeout occurred: in evaluation mode the recording stops by itself after 2 minutes.
The RTSP URL fails to connect
Try to force a non-default transport mode by adding one of the following settings at the end of the RTSP URL:
>rtsp_transport=udp
>rtsp_transport=tcp
>rtsp_transport=http
>rtsp_transport=https
>rtsp_transport=udp_multicast
E.g.:
rtsp://192.168.0.25/axis-media/media.amp?videocodec=h264>rtsp_transport=udp
Or programmatically: TCP=1, UDP=2, HTTP=3, Udp_Multicast=4, HTTPS=5. E.g. for HTTP:
DatasteadRtspSourceConfig.SetInt ("RTSP_Source_RTSPTransport_int", 3)
The filter fails to connect to the VMR9 (Video Mixing Renderer 9)
Retry after adding >videopinformat=NV12 at the end of the URL, or configure the filter as follows:
DatasteadRtspSourceConfig.SetStr ("RTSP_VideoStream_PinFormat_str", "nv12");
FAQ
Licensing
Should I buy one license for each one of my clients?
No, it is a per-developer, royalty-free license. Once the developer license has been purchased, the filter can be distributed together with the end-user application on as many PCs as needed, without paying anything else.
Install
In the DatasteadRTSPSource.zip there are two folders, x64 and x86. Which one should I use when? For example, Windows 7 32 bit, Windows 7 64 bit?
Note: if the filter is used through our TVideoGrabber SDK, it is enough to copy the filter binaries (.dll and .ax) into the folder of the application executable; in this case it is not necessary to register the filter or to run the filter installer.
The simplest way is to run DatasteadRTSPFilterInstaller.exe: it installs automatically the x86 version on 32-bit versions of Windows, and both the x86 and x64 versions on 64-bit versions of Windows. It can be run silently:
DatasteadRTSPFilterInstaller.exe /silent
DatasteadRTSPFilterInstaller.exe /verysilent
What matters is how the application is compiled:
- compiled for x64 only (or the VS.NET target platform set to "x64"): only the x64 filter has to be distributed; it requires a 64-bit version of Windows,
- compiled for x86 only (or the VS.NET target platform set to "x86"): only the x86 filter has to be distributed; it runs on both 32-bit and 64-bit versions of Windows,
- compiled for both x86 and x64 (or the target platform set to "Any CPU"): install the x86 filter on 32-bit versions of Windows, and both the x86 and x64 filters on 64-bit versions of Windows.
The complete installation guide is in Filter install/uninstall.
Limitations of the evaluation version
The evaluation version displays a Datastead evaluation logo over the video frames, the "Datastead Audio To Backchannel" filter emits a periodic beep, and the recording stops after 2 minutes, after which the application must be restarted.
Filter usage
When doing a Ctrl+Alt+Del the video stops
This is a limitation of the standard DirectShow renderers. Render the video pin to our Datastead Video Renderer instead (CLSID {C7CC1A23-8B8A-4BFD-A96C-B5E735E055BA}), which is included in the filter package and is compatible with the Windows lock screen.
How to reduce the latency
Retry with one or more of the following settings at the end of the RTSP URL:
>buffer=0
>lowdelay=1
>vidsync=0
E.g.:
rtsp://192.168.0.25/axis-media/media.amp?videocodec=h264>buffer=0>lowdelay=1
Note: with vidsync=0 the video samples are rendered as soon as received.
Programmatically, the involved settings are:
DatasteadRtspSourceConfig.SetInt (RTSP_Source_BufferDuration_int, 0)
DatasteadRtspSourceConfig.SetInt (RTSP_Source_LowDelay_int, 1)
DatasteadRtspSourceConfig.SetBool (RTSP_VideoStream_Synchronized_bool, false)
How can I reduce the CPU load?
If the frame rate in the video window is not critical, it is possible to decode only the key-frames to minimize the CPU consumption. In this mode the output frame rate depends on the key-frame spacing (GOP, "Group of Pictures"), usually 1 key frame every 30 frames.
Note: in H264+ or H265+ the key-frames can be more spaced, and not-regularly spaced, so, to use this setting, it may be preferable to configure the stream in H264 or H265.
Note: if controlling the filter programmatically, it is possible to swap this setting on the fly by invoking:
DatasteadRTSPSourceConfig.SetBool (RTSP_VideoStream_Decode_KeyFrames_Only_bool, true/false)
From the TVideoGrabber SDK, the setting can be switched on the fly by invoking:
VideoGrabber.ONVIF_SetBool ("RTSP_VideoStream_Decode_KeyFrames_Only_bool", true/false)
How can I specify the RTSP transport mode?
See RTSP transport, HTTP modes and latency.
Does the filter support UDP TS?
Yes, the UDP URL and port, unicast and multicast are supported, e.g.:
udp://239.255.0.10:10124
Can I decode only key frames?
Yes, either by enabling RTSP_VideoStream_Decode_KeyFrames_Only_bool (see How can I reduce the CPU load?), or through the URL:
rtsp://239.192.1.1:59001>keyframesonly=1
rtsp://239.192.1.1:59001>maxframerate=-1
Both forms enable the same mode.