This publishes a small update to IP Video Source tool to expose M-JPEG/JPEG video streams as DriectShow video devices. The utility now accepts https://
URL scheme and pulls video over secure connections. Not every camera has support for HTTPS, however many do including those from UDP Technology, Axis etc.
The update also includes other minor fixes including more reasonable memory allocation, and hotfix for D-Link DCS-930L model, which – to mention – is an excellent indication of quality of camera firmware nowadays (it has nothing to do with D-Link, most of vendors do things like this):
#pragma region D-Link DCS-930L Fix
// NOTE: This is just ridiculous, the camera sends boundary with space without quotes AND misuses -- prefix
if(sValue.Compare(L"multipart/x-mixed-replace;boundary=--video boundary--") == 0)
sValue = L"multipart/x-mixed-replace;boundary=\"video boundary--\"";
#pragma endregion
Download links
- Version: 1.0.2
- Binaries: Win32 – IpVideoSourceSetup-Win32.msi, x64 – IpVideoSourceSetup-x64.msi
- License: This software is free to use
Hi Roman,
I have been playing with your filter recently, really nice work I should say.
Do you provide any source code or is it a proprietary?
There is no source code available for this filter/virtual device. A while ago I wrote about a related project, which is somewhat similar and there was some code to possibly give a clue, I am not sure if it is helpful. And I no longer maintain this earlier thing – I have this IP Video Source instead and it works pretty well.
Nice update, do you have an idea when you’ll update this to support RTSP+h.264 based IP video sources?
Not really, it is the thing to do on my slack time, and I have a lot of priority things to sort out first…
Hi, I have been trying to access my dahua 3300 onvif ip camera, but have no documentation on how to get to the mjpeg stream… I can get to the rtsp stream ok, i can take a snapshot with the onvif/media_service/snapshot url.. but i just can’t get the filter to talk to mjpeg stream. Do you know the magic url that could solve my problem?
I don’t think there is a magic URL, you will have to check camera docs. Or, possibly, use network sniffer to find out what URL is used by the camera’s web-based frontend, if it offers an option for M-JPEG streaming.
Certainly, RTSP would be a preferred way to access this camera, but this filter only covers M-JPEG/HTTP.
thanks. unfortunately, as with all these chinese products, manuals are very very poor… no mention on how to access the mjpeg stream, i can only see it from web browser when i access the camera’s web server.. I thought this ONVIF thing should bring some uniformity to all this mess, but I have learnt it is not the case… I guess i just have to send it back and get something else that has proof of working. You have any make and model of 1280×720 capable camera that works with your filter?
Because of affiliation with video surveillance software vendor, I prefer to not recommend camera models and vendors on the blog. I will send you an email with a few models I sort of like.
Roman,
I’ve been using your IP Video Source and it has been working great. I use it with Adobe FMLE but when I installed it on a new machine, all I get is a black screen in preview. Any suggestions of things to check?
Brett, blackness on FMLE is not too descriptive to give you suggestions, so I would start with checking if you have video feed on other applications.
If developments tools don’t scare you (you don’t need to be developer yourself), then I would suggest AMCap, GraphEdit (both on Windows SDK, at least the latter is available as prebuilt), or GraphStudio, or GraphStudioNext – to make sure the picture is at least there. You should also have the picture with VLC.
A typical problem is that video resolution you set up on settings, does not match that of actual feed.
If this is not helpful, then you might want to go to C:\ProgramData and delete IpVideoSource.log file, then attempt to get video feed on FMLE or another app, up to the point of black screen. Then email me the generated log file IpVideoSource.log.
Roman,
Sorry for the less than descriptive symptoms, I was just surprised that it wasn’t working because I thought I had it set up exactly how I had my other machine set up.
I did try the source with other applications, i.e. VLC and it is working. The source is an Axis encoder pushing a stream over http, so nothing very complex. I’ll run the test to get the log and go from there.
Again, thanks for the great software.