Menu Close

RTSP/RTMP/HTTP/ONVIF DirectShow Source Filter – Changelog – version history

9.4.2.2 – September 16, 2026

fixed

– recording an IP camera with an external audio capture device (TVideoGrabber AudioSource = as_UseExternalAudio, RTSP_Source_SetAudioDevice_str) failed with “failed to connect to URL”, in particular with cameras without audio.
– with an external audio capture device, the recorded audio was about 1 second behind the video. The audio delay setting (RTSP_AudioStream_DelayMs_int, URL parameter “audiodelay”) now also applies to the external audio device.
– recording pause/resume with re-encoded audio (e.g. external audio device): no audio after the resume and playback stalling at the resume point.
– recording pause/resume with external audio: the paused duration is no longer kept as a gap in the recorded file.
– a failed connection was reported as a generic error or as cancelled; the actual cause is now reported. A failure to open the external audio device is reported as “cannot open the audio capture device”.
– the application could freeze for up to 60 seconds when a camera whose connection had failed or timed out was stopped or closed.

9.4.2.1 – September 14, 2026

fixed

– realtime renderer: crash when the video window is created or destroyed while stopping
– video post-processing (deinterlacing / temporal filters): chain rebuild on a resolution or pixel format change, and frame handling

9.4.1.9 – September 3, 2026

fixed (when using from the TVideoGrabber SDK)

– TVideoGrabber.SetFFmpegFilter(): fixed a crash (access violation) occurring when the video size in use is not the size delivered by the video device, for instance after UseNearestVideoSize (768, 576, true) on a device offering only 640×480, or after setting PreferredVideoWidth / PreferredVideoHeight with StretchPreferredVideoSize. The video was not displayed at all. Video filters buffering several frames, like “yadif”, could also produce artefacts or corrupt memory.

– TVideoGrabber v360 processing: same fixes applied.

9.4.1.8 – September 1, 2026

added

– audio backchannel: new mode_record=auto|0|1 URL parameter controlling the ‘;mode=record’ token of the backchannel SETUP Transport header. Default auto sends it and retries once without it if the camera rejects the SETUP (required by Axis firmwares based on the GStreamer RTSP server, while Hikvision expects it). Round-tripped by the backchannel property page. e.g. rtsp://cam/path?profile=profile0>mode_record=0

– DirectShow app: new EC_RTSP_PARAM1_RECORDTONEWFILE_FAILED notification, fired when RecordToNewFileNow finalized the previous file but could not start the next one (HRESULT in Param2): the host used to receive COMPLETED but neither STARTED nor any error

– explicit error message when the recording file cannot be created (read-only or non-writable StoragePath), instead of a generic connection error

fixed

– application freeze at filter destruction when the filter worker thread was blocked in a cross-thread call to the host UI thread: the wrapper close now waits with a bound and delivers the pending sent messages instead of waiting forever

– an asynchronous open completing after the host had cancelled it (slow or degraded network) notified success against a session being torn down

– audio backchannel: heap corruption (0xC0000374) on stop

– audio backchannel: a stop issued during the RTSP handshake (push-to-talk released early) could block for the whole connection timeout

– audio backchannel: Stop() is now serialized and idempotent (no double CloseHandle, no Start/Stop overlap on the thread handles)

– audio backchannel: the input options were appended at every reconnection instead of being replaced, growing the list indefinitely

9.4.1.6 – July 15, 2026

added

– new IDatasteadRTSPSourceConfig5 interface with GetStats2(): video-only decode-pipeline statistics — packets received, frames decoded, frames delivered, frames dropped, frames queued, queue duration. Lock-free, so it can be polled cheaply (per frame or periodically).

– new actions RTSP_Action_PauseDecodedFramesDelivery / RTSP_Action_ResumeDecodedFramesDelivery: stop and resume delivering decoded frames to the output pin while the RTSP connection stays alive — resuming is instant, with no reconnection

fixed

– the filter’s custom configuration interfaces are now agile across apartments (free-threaded marshaler): they can be called from any thread — fixes failures in .NET hosts that run the graph on their own MTA thread

– on a degraded network, a connection dropped right after a successful open (e.g. TCP reset during format negotiation) was reported as success, and the graph then started on a dead stream. The failure is now reported through Pause/Run and the graph start fails cleanly

– a clean server disconnection on a live source is no longer reported as end-of-stream: it is reported as device lost. This also removes a deadlock that could freeze the filter when the disconnection happened during the connection window

– removed the internal reconnection watchdog thread, which caused wrong behaviour on severely degraded networks

– UDP sources set to wait indefinitely for a connection: a read timeout is now applied, so a stream that never sends data is detected instead of blocking forever

– Datastead renderer: black window after a reparent, a resize or an RTSP reconnect

– renderer windows: random black display while running

– adjacent Datastead renderers sharing the same parent window can no longer paint over each other

9.4.1.4 – June 2, 2026

fixed

– possible crash when the Datastead renderer is used (may be used by default from TVideoGrabber)
– infinite initial connection retries by specifying “>retryinitialconnect=-1” not working
– possible corrupted recording duration when recording .MP4 or .MKV with some cameras

9.4.1.2 – May 11, 2026

fixed

– if an exception is encountered the filter may generate a buch of temp files in the %temp% folder

9.4.1.1 – May 6, 2026

added

– faster ONVIF connection

– support for ONVIF Focus and IR-Cut filter

– possibility to send audio to the IP camera backchannel through the “Datastead Audio To Backchannel” sink filter included (in the TVideoGrabber SDK manual, search for “backchannel” for the sample code).

fixed

– more efficient GPU decoding with “>hwaccel=1” (GPU decothrough DirectX)

9.2.2.2 – January 28, 2026

fixed

– video/audio not in sync in the recording if it has been delayed by passing “nul.mp4” as recording filename (or VideoGrabber.HoldRecording = true from the TVideoGrabber SDK)

9.2.2.1 – January 27, 2026

fixed

– possible corrupted frames at the beginning of the preview and/or the recorded file

9.2.2.0 – January 26, 2026

fixed

– wrong duration of the video clip recorded

added

– possibility to pre-configure the video pin format by specifying the width, height, frame rate, and eventually RGB format when configuring the filter

9.2.1.8 – January 22, 2026

changed

– filter will start even if a GPU acceleration has been enabled but it is not available

fixed

– filter may take time to stop, of freeze when stopping
– NVidia GPU acceleration may fail (>hwaccel=3)

9.2.1.6 – January 20, 2026

fixed

– filter may report successful autoreconnection through EC_RTSPNOTIFY (EC_RTSP_PARAM1_DEVICELOST_RECONNECTED, 0) although it is not yet reconnected
– faster connection to IP cameras streaming at a low fps
– faster connection to IP cameras by specifying >fastconnect=1 at the end of the URL (however the frame rate detection may be less accurate)
– faster connection to IP cameras by specifing the frame rate of the IP camera (if known, of course), by adding >srcframerate=value at the end of the URL, e.g. >srcframerate=30

9.2.1.4 – October 6, 2025

fixed

– auto-reconnection of IP cameras may stop after a few number of attempts

9.2.1.2 – August 4, 2025

fixed

– 360° video decoding (when invoked from the TVideoGrabber SDK) not working properly
– NTP frame time not reported in callback
– MP4 recording may raise out of memory when stopping very long recordings having video + audio

9.2.1.0 – May 20, 2025

added

–

possibility to real-time AES encrypt the recordings from the TVideoGrabber SDK

–

possibility to real-time AES decrypt video clips from the TVideoGrabber SDK player

improved

–

URL source starts faster, especially when audio is rendered

fixed

–

selection of the audio stream number by RTSP_AudioStream_Index_int not working,

9.1.6.2 – April 16, 2025

improved

– reduced CPU load when using the Datastead Video Renderer

fixed

– 360° video decoding may freeze when pausing the video playback from the TVideoGrabber SDK

9.1.6.1 – April 3, 2025

fixed

– auto-reconnection may fail with some IP cameras

9.1.6.0 – March 19, 2025

fixed

– FilterConfig.SetInt (RTSP_Source_CopyTimestamps_bool, true) not working (url parameter: “>copyts=1”)

– black video window in the C# demo project with the default renderer selected (or Datastead renderer)

9.1.4.8 – February 4, 2025

added

– FilterConfig.SetInt (RTSP_ONVIF_Media_Version_int, value)
lets specify whether the ONVIF Media1 (VER10) or Media2 (VER20) version should be used to query the ONVIF media information:
0: uses both methods, returns profile information from the media version reporting the higher number of profiles
1: uses Media1 (VER10)
2: uses Media2 (VER20)
Can be specified at the end of the URL by adding e.g. “>mediaversion=1”

fixed

– ONVIF URL connection may hang with some ONVIF sources

– IDatasteadRTSPSourceConfig4.GetStats(…) not reporting the number of dropped frames

– FilterConfig.GetStr (RTSP_Source_StreamInfo_as_XML_str, …) may not return any stream info

– FilterInfo.GetStr (RTSP_ONVIF_Profiles_As_XML_str, …) may not return H265 profiles

9.1.4.6 – January 15, 2025

fixed

– ONVIF: H265 profiles may not be returned by FilterConfig.GetStr (RTSP_ONVIF_Profiles_As_XML_str, …)

– detailed stream information not returned by FilterConfig.GetStr (RTSP_Source_StreamInfo_str, …)

added

– RTSP_Source_FindFPSFrameCount_int
Number of frames used to analyze the fps when it is not reported by the camera at connection time. Default value: 40 frames.
. with lower values the connection will be faster but there is more chance the FPS reported to be inacurate
. with higher values the FPS reporte will be more accurate but the connection will take longer

– RTSP_VideoEncoder_QualityMin_int (url parameter “vqualitymin”):
If specified and greater than 0, enables the VBR mode and specifies a minimal quality value that depends on the codec, usually in the 0..51 range or 12..42 range (for OpenH264). Note: lower value = higher quality.

– RTSP_VideoEncoder_QualityMax_int (url parameter “vqualitymmax”):
If specified and greater than 0, enables the VBR mode and specifies a minimal quality value that depends on the codec, usually in the 0..51 range or 12..42 range (for OpenH264). Note: lower value = higher quality.

changed

– RTSP_VideoEncoder_Quality_int (url parameter “vquality”): replaced by RTSP_VideoEncoder_QualityMin_int and RTSP_VideoEncoder_QualityMax_int above

– FFmpeg codecs updated

9.1.4.4 – November 28, 2024

fixed

– using an USB audio capture device or the soundboard line/mic as audio source (instead of the audio of the IP camera) not working

9.1.4.2 – November 7, 2024

fixed

– from GraphEdt or GraphStudio, with video output pin of the filter connected to the Smart Tee, rendering the output pin of the Smart Tee disconnects the input pin

9.1.4.1 – November 4, 2024

– faster H264 software decoding, consumes less CPU

– text overlay may not work

fixed

9.1.2.4 – July 25, 2024

fixed

– possible random freezing when stopping the filter

– fail to open a UDP stream described by a “.sdp” file

– removed dependency on vcruntime140.dll

– possible video freezing when starting the filter and audio decoding is enabled

changed

– binaries updated

9.1.1.8 – July 15, 2024

fixed

– possible flickering/pixelization from RTSP cameras in UDP transport mode (>rtsp_transport=udp or >rsp_transport=udp_multicast)

– Axis cameras not working in UDP mode

9.1.1.6 – July 4, 2024

fixed

– DXVA accelerated GPU decoding may fail (“>hwaccel=1”)

– failed to open ONVIF URL with some IP cameras

– slow frame rate when displaying the video on a 2nd monitor

changed

– yt-dlp.exe removed from package, if needed download it from https://github.com/yt-dlp/yt-dlp and copy it to the folder of the .exe or into the filter’x x86 and/or x64 folders

9.1.1.4 – June 17, 2024

fixed

– DatasteadRTSPSourceConfig.Action(RTSP_Action_GetONVIFSnapshotAsync, …) not working

9.1.1.2 – June 12, 2024

fixed

– black video if >syncstart=1 parameter specified at the end of the URL

9.1.1.0 – June 10, 2024

fixed

– stopping IP cameras URLs may take a small delay

– possible async URL connection freezing from the TVideoGrabber SDK when stopping/restarting the URL connection

9.1.0.8 – May 31, 2024

fixed

– “http://” or “https://” IP cameras URLs in JPEG or MJPEG mode not working

9.1.0.6 – May 30, 2024

fixed

– starting the preview/recording of HTTP URLs may take several seconds to start

– stopping the video stream may take several seconds

– ONVIF profiles: FilterConfig.GetStr (RTSP_ONVIF_Profiles_As_XML_str, value) may not return the profiles with some IP cameras
(from the TVideoGrabber SDK, this corresponds to VideoGrabber.ONVIFDeviceInfo (onv_XMLProfiles)

9.1.0.4 – May 23, 2024

fixed

– ONVIF discovery : crash during the discovery, occurring in 32bit (x86) mode.

– ONVIF discovery : some cameras not detected

9.1.0.2 – May 16, 2024

added

– ONVIF cameras network discovery

– ONVIF cameras in H265 mode not working with previous versions (e.g. Vivotek)

fixed

– random crash when auto-reconnecting to an IP camera

– crash when starting preview or recording with some Axis IP cameras

– some IP cameras not starting in ONVIF mode

8.6.4.7 – April 3, 2024

changed

Binaries update

8.6.4.6 – March 26, 2024

added

– decoding of Twitter and Facebook videos

fixed

– decoding of Youtube videos not working

– HTTP decoding may skip the initial frames

8.6.4.4 – March 19, 2024

added

RTSPFilterConfig.GetStr (RTSP_Filter_Last_Error_Message_str, value) Returns information about the origin of the error that occured when the connection to the URL failed

fixed

– possible black bar at the bottom of the video window, occurreds only at some resolutions

8.6.4.2 – March 11, 2024

fixed

– possible memory leak with some IP cameras

– from a DirectShow application: crash when updating the text overlay in real time

8.6.4.1 – February 20, 2024

added

– to connect faster to ONVIF cameras specify the “onvifurl://IPADRESS” syntax, instead of “onvif://IPADRESS”

enhanced

– faster connection to RTSP URLs

fixed

– some RTSP URLs may fail to decode the video, reporting a 0x0 video size and showing a black video window

– RTSP URL in 1920×1080 may show a black line at the bottom of the decoded video frame

– possible crash when opening an “onvif://” or “onvifurl://” RTSP URL with Axis cameras

– filter may not deliver the RTSP TEARDOWN when stopping the stream

– DatasteadRTSPConfig.GetStr(RTSP_Source_StreamInfo_as_XML_str, value) may return incomplete XML data

– dropped frame count not reported from the TvideoGrabber SDK

– header declarations in DatasteadRTSPSourceFilter.h not compatible with Embarcadero C++ Builder

8.6.2.0 – August 14, 2023

added

– support for Ricoh Theta 360 cameras, including the Ricoh Theta X (MJPEG preview and recording)

– function DatasteadRTSPConfig.SetInt64 (RTSP_Release_HBITMAP_int64, handle) to release a memory bitmap previously allocated by invoking DatasteadRTSPSourceConfig.Action (RTSP_Action_CaptureFrame, “HBITMAP”)

fixed

– decoding always enabled even if not needed (e.g. when recording without preview), causing an useless CPU consumption

8.6.1.8 – July 11, 2023

fixed

– auto-reconnection may not always succeed, although the URL is reachable

– possible crash with URLs having a long syntax (usually http or https)

– initial connection retry count not working when setting SetInt (RTSP_Source_RetryInitialConnect_int, value) or adding >retryinitialconnect=n at the end of the URL

enhanced

– reduced CPU load when specifying SetInt (RTSP_Source_Threads_int, 1) or adding >threads=1 at the end of the URL

8.6.1.7 – June 14, 2023

fixed

– when several instances of the filter are recording concurrently on Windows 11, the recording may fail to start starting from the 2nd instance (only the 1st instance succeeds).

– autoreconnection may fail

8.6.1.5 – June 6, 2023

fixed

– ONVIF PTZ not working with some IP cameras although they support it

– possible access violation/crash when invoking ONVIF PTZ commands on some IP cameras

added

– possibility to start the recording synchronized with the decoded frames displayed (enables the recompression automatically) by setting RTSP_VideoStream_Sync_Start_Recording_bool or adding “>startsync=1” at the end of the URL

– possibility to recompress through the GPU encoder (by specifying RTSP_VideoStream_GPUEncoder_int or adding “>gpuenc=n” at the end of the URL with n=
0: software encoding
1: auto select GPU
2: Intel QSV GPU
3: NVidia NVENC GPU
4: AMD AMF GPU

– if URL authentication failure, the filter returns E_ACCESSDENIED instead of E_FAIL

– the Datastead Video Renderer exposes the IVMRAspectRatioControl interface, allowing to display the video in a letterbox aspect with black bars added on the top/bottom or left/right

enhanced

– faster connection to RTSP URLs with a low frame rate

fixed

– possible random crash when starting of stopping the URL source

– specifying a start time not working for a start time greater than 214 seconds

8.6.1.3 – April 21, 2023

fixed

– filter may run in evaluation mode and/or stop running even if the correct license key as been set

8.6.1.2 – April 17, 2023

added

– support for recording to MP4/MKV/AVI/MPG of IP cameras with http/MJPEG stream or http/JPEG “snapshot” URL as source

fixed

– possible connection failure with the default connection timeout

8.4.3.6 – April 5, 2023

– DXVA GPU-accelerated decoding not working

– specifying a bitrate for the re-streaming was ignored (e.g. “>destvideobitrate=256”)

– possible failure when specifying “nul.mp4” to start the recording in preview mode only (util setting the real file name to begin writing to the file)

fixed

8.4.3.4 – March 15, 2023

fixed

– invoked directly from DirectShow or GraphEdit, the filter does not restart after stop

– opening a .spd file (to open a RTP or MPEG-TS/UDP stream) takes up to 30 seconds to start

8.4.3.2 – March 9, 2023

enhanced

– smoother URL auto-reconnection

– some IP cameras may fail to start

8.4.3.1 – February 6, 2023

fixed

– possible error during recording when the file size exceed approx 20Gb

– memory leaks

8.4.2.8 – January 23, 2023

fixed

– DAHUA cameras: onvif://… URL syntax failed to connect

– Milestone Open Network Bridge: RTSP authentication failed

– possible audio/video synchronization problem when rendering both video and audio

– autoreconnect not working with the RTMP protocol

added>

GetInt64(RTSP_VideoStream_First_Frame_NTP_time_Recorded_100ns_int64, value) returns the NTP time of the first video frame recorded

changed

– default RTSP transport set to UDP
(to force TCP, add “>rtsp_transport=tcp” at the end of the URL or invoke SetInt(RTSP_Source_RTSPTransport_int, RTSPTransportMode_TCP)

8.4.2.4 – November 14, 2022

fixed

– some RTSP URLs may fail to connect

– it was possible to record the same file from 2 different instances, that produced a corrupted file

– NVIDIA acceleration was not working with HEVC/H265 (“>hwaccel=3”)

8.4.2.2 – November 3, 2022

added

– faster ONVIF connection (without PTZ support) by specifying ‘onvifurl://…’ (instead of onvif://…’)

– DirectShow: added “video only” filter for faster connection when no audio is needed, declared in DatasteadRTSPSourceConfig.h


"Datastead RTSP/RTMP/HTTP/ONVIF Source (video only)"
// {37C4205F-F04F-453E-851E-1730FB55792C}
static const GUID Datastead_RTSP_RTMP_HTTP_ONVIF_VideoOnly =
{ 0x37c4205f, 0xf04f, 0x453e, { 0x85, 0x1e, 0x17, 0x30, 0xfb, 0x55, 0x79, 0x2c } };

fixed

– URL containing “<>” may fail to connect, e.g. rtsp://192.168.8.254:554/2?stream_id<2.1>

8.4.2.0 – September 16, 2022

fixed

  • possible frame freezing at startup with UDP or RTSP urls when no audio is rendered and buffer=0

8.4.1.6 – September 12, 2022

fixed

  • auto-reconnection not working
  • adding “>playablewhilerecording=1” for the .mp4 recording not working

8.4.1.4 – September 2, 2022

fixed

  • memory leak (memory consumption increasing progressively)
  • audio/video not in sync when using the NVidia GPU acceleration (“>hwaccel=3”)
  • ONVIF: possible error when connecting to some IP cameras
  • some URLs in portrait format may fail to connect

8.4.1.2 – August 11, 2022

added

  • ONVIF replay: IDatasteadRTSPSourceConfig::GetStr (RTSP_ONVIF_Replay_As_XML_str, Value) returns the list of the recordings and their replay URLs in XML format

fixed

  • some “onvif://…” URLs take too long to connect
  • http URLs in MJPEG mode may fail to connect
  • IDatasteadRTSPSampleCallback3::SetFileWriteCallback not working

8.2.4.1 – July 27, 2022

added

  • RTSP_ONVIF_Authentication_TimeOffsetMode_int
    (url parameter, add e.g. “>authmode=2”)
  • 0 : authentication without time offset checking first, then, if fails, authentication with time offset checking
    1 : authenticates without time offset checking
    2 : authenticates with time offset checking

changed

Time offset authentication (above) : in the previous versions, only the authentication  with time offset checking was available, so now it is NOT used by default, unless forcing it with the option 2.

fixed

  • ONVIF connection fails with some new cameras
  • even if specyfing a buffer, it may ot taken in account in some cases
  • reconnection while recording may raise an error
  • possible error when restreaming an UDP URL to an UDP destination

8.2.2.4 – July 8, 2022

fixed

  • audio/video recording: in some cases, audio samples may not be present in the clip recorded

8.2.2.2 – July 7, 2022

fixed

  • possible error when recording in ASF format with audio
  • maximum frame rate not working (enabled by setting SetDouble (RTSP_VideoStream_MaxFrameRate_double) or by adding >maxrate=n at the end of the URL)

8.2.2.1 – July 4, 2022

fixed

  • the initial buffering may take too long
  • when used standalone from a DirectShow application , possible error when stopping/restarting the graph

8.2.1.6 – June 27, 2022

fixed

  • error when the auto-reconnect is enabled and the filter tries to reconnect
  • after deleting an ONVIF profile, it remains listed until the video is restarted

8.2.1.4 – June 22, 2022

fixed

  • audio not recorded if the audio encoding is not AAC
  • the recording continues although a recording error occurred (e.g. out of disk space, removable drive removed, etc…)
  • exiting the application while the stream is interrupted (e.g:. disconnecting the LAN cable) may prevent the application to close gracefully
  • video stuttering with some URL sources, especially http URLs
  • specifying filters not working (programmatically or by adding e.g. “>videofilter=vflip” at the end of the URL)
  • specifying a maximal frame rate not taken in account (programmatically or by adding e.g. “>maxframerate=15” at the end of the URL)
  • Intel Quicksync GPU decoding not working (programmatically or by adding “>hwaccel=2” at the end of the URL)
  • recording is like “slideshow” with some URLs
  • selecting a specific video and/or audio stream not working (programmatically or by adding e.g. “>audiostreamindex=2” at the end of the URL)
  • while recording at low resolutions, querying the current file size with GetInt(RTSP_CurrentRecording_FileSizeKb_int) may return 0 although the file is not empty.
  • stream info not reported

8.2.1.1 – March 22, 2022

fixed

– small memory leak but occurred per video frame, consuming progressively the memory

– possible audio/video rendering synchronization problem

– recording may fail to start when using the filter standalone from a DirectShow graph

– reconnection may occur untimely when stopping the video

– buffer duration specified may not be taken in account in some cases

8.1.6.1 – February 17, 2022

fixed

– with some RTSP sources, the first recorded file may not be playable

– jerky video with non-RTSP URLs (e.g. http, rtmp, Youtube, etc…)

8.1.4.6 – January 28, 2022

fixed

– recording to file: pause/resume may not work properly

– recording to file: impossible to generate a new file on the fly with the same name

– jerkiness or excessive latency when passing “>vidsync=0” at the end of the URL

– possible error if the URL is not responding

– the URL authentication may fail if the password contains special characters

8.1.4.0 – January 14, 2022

fixed

– after invoking Action (RTSP_Action_RecordToNewFileNow, …) when recording audio+video, the audio can be partially missing

– after invoking Action (RTSP_Action_RecordToNewFileNow, …), the duration of the subsequent recordings is longer than their real duration

– possible error when the audio is rendered or recorded

– possible choppy audio depending on the audio source format

– possible error when starting the recording

– when invoked from the TVideoGrabber SDK, VideoGrabber.SetAuthentication (at_IPCamera, “user”, “password”) not taken in account

– authentication may not work with onvif://… URLs

8.1.2.1 – December 23, 2021

enhanced

– lower CPU consumption

– faster URL connection

8.1.0.4 – November 29, 2021

enhanced

– lower CPU load

– lower latency when the preview sync is disabled (“>vidsync=0”)

– lower memory consumption

fixed

– MP4 recording corrupted when generating new files after a while

– DatasteadRTSPConfig.Action(RTSPFilter.RTSPConfigParam.RTSP_Action_CaptureFrame, filename) not working

– audio/video not in sync depending on the URL source

7.8.2.0 – August 30, 2021

fixed

– non-realtime URLs may play at fast speed when the audio rendering is disabled

– used from the TVideoGrabber SDK: Avermedia preview/recording fails to start when the audio is enabled

7.8.1.8 – June 14, 2021

added

– file write callback allows to capture and/or save the data of the file being recorded
(the sample code is included in the C# demo project – search for “file writer callback” in OpenURLForm.cs)

fixed

– latency may increase over time

– possible stuttering with RTSP sources when rendering audio + video

7.8.1.6 – May 17, 2021

fixed

– frame capture may error

7.8.1.4 – May 10, 2021

fixed

– auto-reconnection may not occur in some cases

7.8.1.2 – May 7, 2021

fixed

– RTMP protocol not working

7.8.1.0 – May 6, 2021

added

– support for the decoding of Youtube URLs

enhanced

– faster connection time

fixed

– possible memory leak during the auto-reconnection

7.6.4.0 – April 26, 2021

fixed

– auto-reconnection not working

– no audio/video sync in the CSharp demo when the default video renderer is selected

7.6.2.8 – April 23, 2021

changed

– lower latency when the audio is not rendered

– audio dropouts when the audio is rendered

fixed

– excessive memory consumption

– with some cameras, when creating new segments on the fly of equal duration, the duration of the segments increases.

7.6.2.6 – March 30, 2021

fixed

– possible error when the source has a very small video width or height

– GetInt (RTSP_Filter_Version_int, value) returns the date instead of the version

7.6.2.4 – March 29, 2021

fixed

– automatic reconnection may not work

7.6.2.2 – March 26, 2021

fixed

– EC_COMPLETED event not raised at the end of the stream with URL sources having a fixed duration

7.6.2.0 – March 23, 2021

fixed

– some “.m3u8” URLs not working

– possible failure of TCP after multiple disconnections/reconnections, until the application is restarted

– setting RTSP_VideoStream_Decode_KeyFrames_Only_bool not working

– some IP cameras takes an excessively long time to connect

added

– property RTSP_Source_RetryInitialConnect_int let specify indefinite or limited retries for the initial connection when the URL is opened asynchronously.
(or as URL parameter, e.g. “>retryinitialconnect=-1”)
0: disabled
-1 : retries indefinitely
1..n : retry the specified number of times, the duration of the retry depend on the connection timeout parameter, e.g. if the connection timeout is set to 10 seconds, specifying “>retryinitialconnect=4” will retry to connect during 10×4 = 40 seconds.

7.6.1.2 – January 26, 2021

added

– support for the RTSPS protocol

fixed

– unable to reconnect an ONVIF URL after the connection has been lost

– tcp socket handle remains opened after a reconnection

– some RTSP URLs fail to reconnect

– Pelco cameras fails to connect

– possible jerky video of RTSP sources when using several RTSP sources concurrently

– frame rate may decrease progressively with some RTSP sources

7.4.2.6 – November 9, 2020

fixed

– connection to an IP camera that does not respond never ends whatever the connection timeout

7.4.2.2 – October 15, 2020

fixed

– memory consumption increasing progressively

– jerky video depending on the URL

– possible wrong detection of the frame rate depending on the URL

7.4.2.1 – September 2, 2020

fixed

– excessive dropped frames may produce a jerky video rendering

added

RTSP_Source_CopyTimestamps_bool
urlparam: “>copyts=1”
When enabled the timestamps are copied “as is” from the input stream to the output pin (if decoding) or to the file (if recording).

RTSP_Source_UDP_LocalAddr_str
urlparam: e.g. “>localaddr=192.168.8.2”
Local IP address of a network interface used for sending packets or joining multicast groups. Useful when the computer has several network interface cards.

RTSP_Source_UDP_LocalPort_int
urlparam: e.g. “>localport=25001”
Overrides the local UDP port to bind with.

7.4.1.14 – June 18, 2020

changed

– better detection of the frame rate of RTSP URLs

– faster connection to RTSP URLs

7.4.1.10 – May 13, 2020

fixed

– m_DatasteadRTSPConfig.GetStr(RTSP_Source_StreamInfo_str, …) returns E_INVALID_ARG
(this causes an error when running the CSharp demo project)

7.4.1.8 – May 7, 2020

fixed

– wrong frame rate detected with some RTSP sources

7.4.1.6 – May 4, 2020

fixed

– optional registration of “Datastead URL Source” with regsvr32.exe or the .exe installer not working

7.4.1.4 – April 28, 2020

added

Possibility to register the filter in the “Video Capture Devices” list of DirectShow by specifying the “VIDEO_CAPTURE_DEVICE” option as follows:

– through the .exe installer:

DatasteadRTSPFilterInstaller.exe /option=VIDEO_CAPTURE_DEVICE

DatasteadRTSPFilterInstaller.exe /silent /option=VIDEO_CAPTURE_DEVICE

– with regsvr32.exe:

regsvr32.exe /i:VIDEO_CAPTURE_DEVICE c:\folder\DatasteadRtspSource.ax

enhanced

– faster URL connection

– lower memory consumption

fixed

– connection to DAHUA IP camera may fail

– connection to RTP://… URLs may fail

– IDatasteadRTSPSampleCallback2->SetVideoRGBOverlayCallback not working

– text overlays were not working with Unicode fonts

7.4.1.2 – December 4, 2019

fixed

– connection time to URLs too long

changed

“Datastead URL Source” removed from the list of the video capture devices

7.3.1.8 – October 2, 2019

fixed

– unexpected filter reconnection may occur randomly

– frame rate may decrease progressively with some URLs

– URLs having video streams encoded in H265+ or H264+ may fail to connect

7.3.1.6 – August 26, 2019

fixed

– RTSP re-streaming feature was not working

– connection fails if a “!” character is present in the authentication user or password

– connection time takes too long with some URLs

– “rtp://…” URLs may fail to connect

– callback function set by DatasteadRTSPSampleCallback2->SetVideoRGBOverlayCallback not called

changed

FFmpeg updated to the latest version

7.3.1.2 – May 6, 2019

added

– if an http proxy with authentication is specified, the connection through the http proxy fails

– HRESULT Action (RTSP_Action_IsURLResponding)
Tests if the source is live, without starting the URL decoding. return S_OK upon success.

– GetStr/SetStr (RTSP_Source_Axis_IrCutFilter_str)
sets or retrieve the state of the IR Cut Filter of Axis cameras
the supported values are: enabled / disabled / auto

– GetStr (RTSP_ONVIF_Info_AuxiliaryCommands_str)
retrieves the list of the auxiliary commands available for this camera, as a string made of words separated by “\r\n” characters

– SetBool (RTSP_VideoStream_Decode_KeyFrames_Only_bool, true/false)
If true, only I-Frames are decoded. Can be enabled/disabled on the fly without stopping/restarting the graph. Saves decoding CPU by previewing at 1 fps or so, depending on the GOP size (key frame spacing). Default: false
Can be enabled through the URL by adding at the end of the URL: >maxframerate=-1

fixed

– the filter may not select the best stream quality when several video streams with different compressions are available

– some URLs may take an excessive time to connect

– some RTSP URLs never open although the URL is alive

– if URL authentication is required with username but empty password, the authentication fails

– the URL authentication fails if a “@” character is present in the username or password

– ONVIFPTZStartMove / ONVIFPTZStopMove functions may error if invoked too quickly

fixed

Older versions (2013-2018)

RTSP/RTMP/HTTP/ONVIF DirectShow Source Filter version history

 

v7.2.1.14 – June 27, 2018

fixed

– image snapshot (RTSP_Action_CaptureFrame) not working

– ONVIF protocol not working if an extra parameter has been passed at the end of the URL, e.g.:
onvif://user:pass@192.168.1.22>buffer=100

v7.2.1.12 – June 25, 2018

fixed

– possible frozen video after a re-connection

– frozen video after pausing the graph, and then running it again

v7.2.1.10 – June 14, 2018

fixed

onvif and rtmp protocols may fail to connect

v7.2.1.8 – June 14, 2018

fixed

– rtsp://… urls may fail to connect

– increased latency (compared to previous releases)

v7.2.1.6 – June 13, 2018

fixed

– after a re-connection, generating a new file produces an empty file

– graph pause/resume may not work correctly

– changing the default TCP timeout not taken in account in some protocols

– URL authentication fails if the password contains a “!” character

v7.2.1.4 – May 23, 2018

fixed

– connection time excessively long with some URLs

– pause/resume of the video not working properly

– jerky video with some URLs

– ONVIF connection may fail

added

– mp4 recording: by default the format of the time tag of the file is in EXIF format, added the possibility to get is in UTC format (Quicktime) by enabling
RTSP_Recording_MP4TagTimeUTC_bool, or adding “>mp4tagutc=1” at the end of the URL.

v7.2.1.2 – May 14, 2018

enhanced

– faster connection time

fixed

– memory leak increasing after each start/stop

– jerky video when the audio source is a PC’s audio capture device (e.g. line in or microphone)

v7.1.4.6 – March 20, 2018

fixed

– FFmpeg filter insertion not working (e.g. “>videofilter=vflip”)

– filter package may fail to install on some PC

v7.1.4.4 – March 14, 2018

fixed

– possible crash when to some ONVIF cameras

v7.1.4.2 – March 13, 2018

added

– ONVIF PTZ support (Absolute, relative, continuous move, PTZ presets, auxiliary commands)

– it is now possible to use an URL as video source and a PC microphone or other audio capture device as audio source

– possibility to encode the video with a different codec / different video size

– possibility to record the video stream with overlays applied

fixed

– video delay increasing progressively with some HD URLs

– memory consumption increasing progressively with some URLs

v6.2.4 – July 27, 2017

added

– RTSP_VideoStream_DelayMs_int or RTSP_AudioStream_DelayMs_int let adjust the audio/video sync manually by delaying either the video stream,
either the audio stream

fixed

– backtimed(preroll) recording not working properly

– excessive CPU load and memory consumption

– stability problem

v6.2.2 – July 17, 2017

added

– new Datastead Video Renderer supports the screen locking or Ctrl+Alt+Del

fixed

– stability problem

– possible hanging when stopping the filter

– overlays not working

v6.1.1 – June 15, 2017

added

– backtimed recording (pre-roll recording)

enabled with (e.g. for 5 seconds):
SetInt (RTSP_Source_RecordingBacktimedStartSeconds_int, 5)
or by adding >backtimedstart=5 at the end of the URL

– possibility to get the current state of the source:

returned by GetInt (RTSP_Source_GetState_int, out int SourceState). the possible values are:
enum TSourceState { state_disconnected, state_connecting_async, state_connecting_sync, state_reconnecting, state_connected, state_previewing,
state_recording_paused, state_recording_active }

– possibility to set the title of the video clip (e.g. >title=”my MP4 video clip”)

– NVidia CUVID hardware acceleration (>hwaccel=3)

– possibility to play the clip while is being recorded (>playablewhilerecording=1)

– possibility to continue the recording while the graph is stopped/restarted (>continuousrecording=1)

fixed

– faster connection, some URLs took excessive time to connect

– memory leak

v5.2.1 – October 24, 2016

changed

– default connection mode of RTSP URLs changed to UDP

fixed

– possible problem of timestamps in the recorded files that make them not playable (problem introduced by the version 5.1)

– Teradek Cube: possible sluggish/freezing video of the RTSP URL

v5.1.6 – October 12, 2016

fixed

– in asynchronous connection mode, stopping an ONVIF URL not responding hangs until the connection timeout

v5.1.4 – October 6, 2016

fixed

– URL in MJPEG format may crash or fail to start

v5.1.2 – October 4, 2016

new features

– support of the RTSP capture through the ONVIF protocol with the following URL syntax:
onvif://user:password@IPADDRESS

It is possible to select the ONVIF profile by its index in the 0..n-1 range, or by its name.
E.g. by index:
onvif://user:password@IPADDRESS/0
onvif://user:password@IPADDRESS/1

– capture of ONVIF/JPEG snapshots

fixed

– memory consumption increases while a camera is disconnected/reconnecting

– .m3u8 URL not working

– recording file names containing UT8 characters may fail to create

– possible leak with UDP URLs in the 64bit version of the filter

– filter fails to register on Windows XP

v4.6.10 – July 18, 2016

fixed

– 1 second of recording may be lost between the previous and new file, when generating a new file during the recording

– when recording and the URL connection is lost/recovered, the previous recording file name may be corrupted

– excessive connection time with some URLs

– wrong recording file name when using some unicode fonts

– possible filter crash when trying to create the recording file name but the specified drive does not exist

– .m3u8 URL fails to connect

– jerky video when playing a MMSH URL

– DatasteadRTSPSourceConfig.GetInt(“RTSP_CurrentRecording_FileSizeKb_int”, out Value) returns 0

v4.6.8 – June 14, 2016

added

– Intel QuickSync hardware deinterlacing available (>hwaccel=2)

– multithreaded decoding available by specifying a number of threads <> 1 (>threads=n, set 0 for “auto”)

– video deinterlacing available (>deint=1)

fixed

– memory consumption increasing progressively

– autoreconnect retries to reconnect, fails and retries every second indefinitely

– graph may fail to start with some RTSP sources

v4.6.6 – March 7, 2016

fixed

– possible hanging when stopping an RTSP URL in UDP while it is connecting

v4.6.4 – February 26, 2016

fixed

– video may stop after a few hours

– possible filter hanging when stopping the graph

v4.6.2 – January 21, 2016

enhancements

– faster connection to the URL

fixed

– filter may hang when the URL connection is lost and the filter is reconnecting

– audio/video sync problems

– audio drop-outs

– 1 frame per second after a few time with some URLs

v4.5.1 – March 12, 2015

fixed

– possible excessive latency, even when “>buffer=0>lowdelay=1” is added at the end of the URL

added

support for multiple text overlays that can be updated in real time (shown in the CSharp demo included)

support for brightness, hue, saturation settings that can be updated in real time (shown in the CSharp demo included)

fixed

unexpected deconnections/reconnections although there were no network failure

v4.1.2 – June 17, 2014

added

– possibility re-stream to another IP/PORT

– possibility to capture frames to memory bitmaps or files

– support for sample callback

fixed

– connection to some URLs fails randomly

v3.6.2 – December 17, 2013

fixed

DatasteadRTSPSourceConfig->SetInt(RTSP_Source_RTSPTransport_int, Value) was ignored

DatasteadRTSPSourceConfig->SetStr(RTSP_VideoStream_PinFormat_str, Value) was not case insensitive

v3.6.1 – December 11, 2013

added

– low latency mode by specifying lowdelay=1 and buffer=0

– possibility to specify the video pin output format, e.g. RGB32, RGB24, RGB565, RGB555, UYVY, NV12

– faster connection to the URL

fixed

– small memory leak continuously growing during preview

– image may appear top-down after locking/unlocking the screen

v3.4.1 – September 30, 2013

fixed

– the initial connection may block indefinitely if the URL is not available or in case of wrong URL

– specifying a “>buffer=value” in milliseconds at the end of the RTSP URL may not affect the latency

– the bottom of the video may appear blurred with some RTSP/UDP sources

– crash while (or after) connecting to a RTSP source

known problems

– MP4 recording with audio: after starting the preview + MP4 recording, when generating a new MP4 file, the audio is not present in the next clips
generated, although it is present in the initial clip. The workaround for the moment is to record in AVI, instead of MP4

v3.2.2 – May 2, 2013

fixed

– audio pin may not deliver audio

v3.2.1 – April 30, 2013

added

– now the filter encodes the audio (if any, and if audio recording enabled) in PCM, MP3 or AAC, depending on the recording format selected (e.g. native
H264 + encoded AAC for a .MP4 recording)

– RTSP_Source_DeviceLostTimeOut_int setting
(can be specified at the end of the RTSP URL, e.g. rtsp://192.168.0.33>devicelosttimeout=5000
If no frame is received after this timeout (expressed in milliseconds, default = 10000) the auto reconnection (if autoreconnect=1) or device lost event (if
autoreconnect=0) occurs

fixed

– the license key activation may fail in some cases so the filter runs in evaluation mode and stops randomly

– the file recording may crash with long file names/file paths

– the filter may hang when the auto reconnection occurs

– possible crash when connecting to URLs with a slow frame rate (e.g. 5fps or 1 fps)

v3.1.7 – March 18, 2013

added

– support for unicode strings

changed

– now by default the filter first tries to connect in UDP transport mode