Menu Close

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

9.1.2.5 – 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