The IP Video Source update provides several improvements to the driver:
- copy/paste feature to backup, restore, or synchronize installed devices between 32-bit and 64-bit versions
- 64-bit version and .MSI
- dynamic video resizing (via Video Resizer DSP)
- Adobe FMLE compatibility
Updates in greater detail follow.
Device Copy/Paste Feature
The video device management window is providing Copy and Paste buttons, which let user transfer device information, including name and settings, through clipboard for various purposes:
- save data in order to be able to restore devices later
- restore devices from saved list, or re-create from a list saved on another machine
- duplicate a device
- synchronize devices between 32-bit and 64-bit versions
The device data is a text, one line per device, lines in comma-separated values (CSV) format.
64-Bit Version
Software is available in both 32-bit and 64-bit versions. While most of multimedia software is still 32-bit, sometimes 64-bit version is really helpful to, for example:
- interface to “Any CPU” .NET code which executes in 64-bit on a 64-bit operating system
- go beyond 32-bit code boundaries, especially in part of multiple devices and virtual address space limit
64-bit version duplicates functionality available in 32-bit version, though 32- and 64-bit modules run in completely separated environments.
Dynamic Video Resizing
The source DirectShow filter is capable of connecting with media types different from original/camera media type in resolution part for decompressed video. The filter is internally taking advantage of Video Resizer DSP, and resizes decompressed video to format of interest.
As Video Resizer DSP is available starting with Windows Vista, the functionality availability is subject to the same conditions.
The feature is absolutely required for Adobe Flash Media Live Encoder software, as it make certain assumptions as for supported resolutions, and completely ignores the information the filter makes available in standard way.
Adobe Flash Media Live Encoder Friendliness
The update make the device much closer to interoperation with Adobe product. The software works around a handful of bugs, including as ridiculous as neglecting to provide correct BI_RGB value in BITMAPINFOHEADER::biCompression structure, yet researchers are still to resolve the remained ones.
FMLE would start perfect and stream video being run under debugger, otherwise in a regular run chances are that Adobe application would internally respond with E_UNEXPECTED failure for unknown reason, stop any encoding without giving a single little notice on the GUI.
After all, the encoding runs perfectly through web based encoder, and the driver is providing a good way to stream to video distribution sites such as http://ustream.tv, http://livestream.com from an IP camera or video encoder.
Download links
- Version: 1.0.1
- Binaries: Win32 – IpVideoSourceSetup-Win32.msi, x64 – IpVideoSourceSetup-x64.msi
- License: This software is free to use
There is a thread on MSDN Forums regarding this question: How to use Resizer DMO to resize any video?
Basically, it reveals the magic: you have to take care of correct media type on output pin yourself. It is really a shame that such a pretty good component was left one step away from DirectShow compatibility.
A good wrapper over it may resolved the compatibility issue (an idea for someone to implement).
i need to know complete working of this software because i need to interface the ipcamera to matlab
The software is available “as is”. If you can interface it to Matlab and it works for you, then you are good to go. Your feedback on this is welcome here as well.
First of all thanks for u r help ………
what are the software requirments for the ipideosource 64bit.bcz after intialise the channel how we are test whether the channel is working or not?
The configuration setting are equal for 32 and 64 bit versions. Once set up, you can use GraphEdit tool or AMCap sample from Windows SDK to make sure video streaming is correct. Windows SDK provides those in both 32 and 64 bit versions.
There will be a possibility to include, in this driver, support for MPEG4 and/or H.264 IP cameras?
Thanks.
I think I will eventually add support for H.264 over HTTP, and then H.264 over RTSP. I am just not sure when exactly it is going to be there.
Hi,
I would like to thank you massively for this creation, I’ve spent ages looking for something to do exactly what this does. I bought IP cameras for live streaming but the encoder didn’t support them naively but this works perfectly!
However I have also got a 720p IP camera that uses h.264 over RTSP which isn’t supported. Do you have plans to extend this program or is there another way of making it appear as an input device so I can use it within Windows.
Thanks
RTSP is important, H.264 over RTSP/RTP in particular, but it needs a slot of free time for this task, which I have not had so far and it is unlikely to appear very soon.
I am glad M-JPEG works well for you.
Could use of the Hax264 DirectShow Filter help with this?
Hi,
Just wondering if you’ve made any progress on the RTSP h.264 filter? I have been checking your blog often but no luck.
I would be willing to pay you if it would speed up the process of getting this to work, I have been using work arounds for months but little to no luck.
Thanks
Can I contribute, in any way? I’m a developer.
Thank you for your offer, I appreciate it. Yet I have no ideas how you can effectively contribute: the project source code is not open, and I would prefer to keep its integrity.
If you have specific things supported (such as for instance, particular hardware models), why would not you email me the details so that I keep in mind the awaited functionality when I have time to work with the code.
Roman, This is a very handy tool to allow existing applications which will only use “Video Capture Sources” to accept streams from network cameras. This would be perfect for our needs if it supported streaming over RTSP.
Have you made any progress with this since your comment to MeLoS in July 2011? I also echo his offer to help if you ever reconsider putting the source for this into the public domain.
Max, first of all I need to say that I appreciate your feedback and interest.
I see two parts of the question here, progress and open source. As I am adding things in my slack time, the progress really depends on time and desire I have to move this on my own. Which of course varies greatly depending on other “priority” things I am busy with. Hence, slow progress. I have my own piece of RTSP code H.264 which does more or less well, and basically adding it into the form factor of this “IP Video Source” DLL is not a big thing, yte it is still not done. Most often, the improvements come on side occasions, I make it available for free so there is nothing to support this work.
At the same time, I am not a big open source believer, at least in part of this sort of development. I do care about this code and I fix bug promptly (should someone get in touch regarding bugs in what is already available on the website). The code is also clean and efficient. I don’t like the idea to become a maintainer of other contributions, or even branching the code base at all, dealing with related questions of detailed documentation, compatibility etc.
This all takes me back to where I am now: when I have time, I will put more things in.
Roman,
I am running into a performance issue while trying to integrate your filter with FMLE. The video will be smooth for a half second, then pause for a half second, then repeat. It doesn’t appear to be CPU limited (~30%)
I have tried the filter with Webcam7 and the performance seems fine so I can only assume that the issue is with FMLE specifically. Any ideas?
Also, I was wondering if you had made any progress on the RTSP version…
Thanks and great work!
Looks still like a performance issue caused by CPU limit. In a multicore system don’t expect it to be able to use all cores for the processing. Steps on the way might include JPEG decompression, resizing and otherwise format conversions, then VP8/H.264 compression. If this is CPU related you should be seeing how it’s doing better and better along with reducing resolution and compression complexity.
I am using stock Windows JPEG decompressor which is honestly far from being fast. But it’s simple. FMLE compression is again not the best thing out there…
No news on RTSP, I am pretty much stuffed with other work so this waits for the time to come.
h.264 over RTSP is very important! essential!
I’m hitting a dead end and I’m hoping someone can help me. I’m trying to get a Sony SNC-RZ25N (IP: 192.168.10.38) over to FMLE and I’m losing my mind. What do I need to do to get Flash to recognize this as a video source?
@rockon8387 , my records show that this modes needs
/image
or/mjpeg
URI to get you JPEG and M-JPEG stream respectively (the IP address you quoted is LAN, so I cannot check these with your camera).Roman, thanks for sharing your filter with us. It has been wonderful. Can you offer some advice? I upgraded to Windows 7, 64-bit and can no longer get the filter to work with a software program called Resolume Arena (Resolume.com). This worked great under WinXP 32-bit. I am using the 32-bit version of the filter, and Resolume Arena is 32-bit. I’ve tried this with several different Win7 machines and just get a black screen. Thanks – Mike
Mike, sorry there is little I can tell and I never heard Resolume.com software. Maybe I will have some time on the weekend to try it out and see what’s wrong. As a clue, default JPEG decoder is Windows does not support resolutions over 1920×1088 – maybe this is the issue.
hi
i have use the application but there is a serious problem
when i add Online Axis Like http://85.119.13.218/mjpg/video.mjpg as source
everything works fine in flash player , i can add Ip camera as a video source
in my Local network with http://192.168.0.1/mjpg/video.mjpg , i have axis 215 PTZ , i did my best but i couldn’t add it as video source of flash player, it says the camera is used by another application ,
please help me , i need help
so what is the problem actually? You write you add it and it works fine, and then you add the same way and it does not.
i set 192.168.0.90 in my axis device in network , i can see http://192.168.0.90/mjpg/video.mjpg , it works ok
when i go to the adobe flash player , and choose Alax.Info JPEG Video Source as video Source , the page become Blank and after a while it says the camera is used by another application
should i do any config in axis device ? or do you have any experience in using Axis IP Camera as video source for adobe flash player?
there is something interesting , when i add http://85.119.13.218/mjpg/video.mjpg in the program , (this is axis ip camera that is online ) and use it as video source in flash player ,it works without any problem ,so i can access Axis ip camera through the flash player
my question is , why i can’t access to the IP Camera , in Local Network , why does it say , The Camera is used by another Application, could u please help me ?!
thanks in advance
Dear Roman
any help?
It is hard to tell. The camera should work both ways, the message is unlikely to be generated by my filter.
have you ever test it with axis ip camera?If yes , could you please tell me , which one?
I don’t track this – there are thousands of models. http://85.119.13.218/mjpg/video.mjpg feed works fine and from what I understand you are not setting it up correctly.
Your blog, and this program are very helpful. Thank you!
I am trying to develop a virtual DirectShow camera source filter like yours for an H.264 USB device. I’ve started with The March Hare‘s VCam code because it implements everything addressed in Mark D. Pesce’s DirectShow book plus IAMStreamConfig and IKsPropertySet. Everything compiles, and shows up as a source in AmCap.
My problem: in Windows XP, my VCam doesn’t work with Google Talk/Hangouts. Yours IP Video Source does. Flash isn’t crashing; I’ve fixed the SetFormat(*) bug. My virtual camera just not showing anything. Do I need additional interfaces to be exposed? Are the BaseClasses insufficient starting points?
Thanks!!!!
Code: http://tmhare.mvps.org/downloads/vcam.zip
I don’t think I do anything special and this means that it takes you to debug your filter to see what might be wrong, such as Google Talk does not like some output or something. I am not impressed how Google Talk takes data from DirectShow devices – similar to Skype they export data as soon as possible through Sample Grabber callback and part with DirectShow. Not wanting to stay within this API, I suppose they might be making some false assumptions as for video capture device and your filter does not work there.