View Full Version : Capture on one computer, use stream in VidBlaster on another - how?
josiahbryan
21 May 2009, 14:31
I've been trying every solution I can think of to get the video stream from one computer to another - VLC, Java Media Framework, DirectShow C++ custom software (I am a newbie at DS), DS GraphEdit tetst graphs - nothing has worked reliably or without latency to get the stream from the capture computer to the VidBlaster computer. Why capture on one computer and vidblaster on another? I want to share the camera with two vidblaster computers driving two different screens.
For my purposes, unacceptable latency is > 300ms since the cameras will be capturing a live event - e.g. I'm projecting the cameras onto the stage at church behind the preacher - so > 300ms latency will be too perceptible by the audience. 200ms is just barely able to be tolerated. This will be over a dedicated gigabit network - no other traffic other than camera streams.
Anyone have any ideas on how to do that? Capture on one computer, but use the stream in vidblaster on one or more different computers?
Are you able to share with us what this is about? I'd like to know how far these screens are apart, and the two PCs?
josiahbryan
21 May 2009, 16:55
Setup:
Well, here's the scenario: I'm working with our church, and they are building a new church sanctuary (meeting room). Since this is a new building, I've got a wide range of opportunity to do with it what I want from a video and technological side of things.
To that end, I've mounted three 1024x768 projectors to the ceiling - two shoot at large 12' screens on the stage, and one shoots a 12' screen on the rear wall (for teleprompter-type use). Additionally, I'm running an in-house video feed to three 32" TVs mounted throughout the new building for the purpose of video loops and live video from the sanctuary.
Inputs:
Cameras - I've ordered several cameras (they arrive tomorrow) - a firewire camera, two capture cards and a TrendNet Pan/Tilt IP camera.
Text/Lyrics/etc - MediaShout
GOAL: I'd like to drive the front two projectors independently - e.g. not just have them be a clone of each other. Additionally, VidBlaster won't run more than one instance on the same machine (right...?). Additionally, I'd like to be able to mix and match cameras and text/lyrics at will.
Idea: Therefore, I envision using VidBlaster as the "driver" for the projectors - one dedicated computer for each front projector, and a dedicated computer for the in-house video loop. The third (rear) projector is inmaterial to this discussion right now (I'll handle it in with aother system.)
Road Block: I'd like to be able to show either of the three cameras on any of the VidBlaster instances (either of the front two projects or the in-house feed) - but how to I connect each camera to each computer without spending a fortune in capture cards? (Not to mention that firewire camera - but I could sub that out for another capture card - but thats 6 more capture cards I'd have to buy to plug each camera into each computer.)
Therefore, I was envisioning having a central capture/media server computer that has the capture cards and firewire plugged into it, does the capture for each camera, and sends each camera out as an independent IP stream over the network (dedicated gigabit network) to each VidBlaster computer. Then, each vidblaster computer picks up the streams and can cross-fade between cameras at will. Make any sense at all? :-)
(I havn't even figured out how to integrate mediashout into all this yet - remote screen capture was my goal...no love with that yet. See by attempts below.)
I've been working trying to find solutions to this for the past week or so. I've tried so far:
-VLC - capture and stream, then use VLC on the "client" to receive the stream, then use VidBlaster screencap to get the stream.
- Doesn't work because there is approx 5 - 7 seconds of delay between all the caching etc that VLC does - I cant find a way to turn it down at all!
-VLC capture+Stream, use VH MultiCam Studio on client to receive stream, then use VidBlaster to capture from the VHMultiCam "Virtual Camera"
- Again, 4-6 seconds of delay between the camera and the image in VidBlaster
-DirectShow RTP Stream using a GraphEdit graph - couldn't figure out how to even get the darn thing working!
-Java Media Framework - RTP Streaming using JMStudio & capture, then use a custom JMF Applet on client to receive JMF RTP stream and display, VidBlaster screencap it
- Doesn't work because JMF seems to draw directly to the video buffer of the display - VidBlaster just captures a pink rectangle where the video shows on my screen
- JMF still provides between 200-300ms delay - I could work with that - maybe - but screencap of the stream on the client side doesnt work, so thats a no-go
-Remote Desktop into the "capture" server from the "client", do VidBlaster screencap of the RDP client
- Remote Desktop's framerate is too poor to be usable, (latency not bad, but framerate is <5fps)
-VNC into "capture" server
- FPS, again - probably <1fps here
-Java AWT robot capture into a custom Java MediaFramework driver, RTP to client, VidBlaster screencap
- No love there - AWT robot has >500ms latency
I'm running out of ideas and Googling has produced no usable results either.
Does any of that make sense? :-)
Well, it is a bit much to read in the evening when I should be having dinner (I'm late), but initially I have only one question: how much time do you have? With its modular approach (and I trust a budget for the Studio edition), VidBlaster seems ideal for this purpose. Add to that I have already envisioned allowing multiple monitor modules to coexist, each being hooked up to an external monitor (i.e. video output). Once this is in place, you should have exactly what you want: one control room on one PC to run it all. All you need to add is some extra graphics card to create the necessary video outputs. Sounds like a nice project, I already see a great making-of. Know any editors who are members of the church :)
josiahbryan
21 May 2009, 17:12
Multiple monitors out is all I really need - is that feature available now or is that still in development?
The new building opens July 5. One way or another I'll have to do "something" that day - now, I can easily upgrade/change as time goes on, so no big time constraint really.
For opening day, I can do just a clone and fudge it. :-) But, still, I'd like to at least be able to send what I'm sending to the projects to the inhouse feed as well - and be able to cross fade back and forth between the live feed and video loop.
Thanks for any ideas and suggestions you may have.
josiahbryan
21 May 2009, 20:12
I've just created a Java-based remote screen capture server - serves up a HTTP-based MJPEG stream, viewable in any mozilla-based browser or with Camboozla. On WindowsXP as the server, I've got it streaming up to 24 fps with (by my *guess*) < 150~190 ms of latency across 2 100Mb switches. (eg the Linux client is two hops away from the XP server, using Camboozla to view the stream.)
See attached snapshot showing the camboozla viewer and the FPS display.
This just *might* work...muahhahahaaa.....
josiahbryan
21 May 2009, 20:55
Okay, now I've got a java server that captures directly from the camera and streams MJPEG as fast as possible (no sleep, nothing - just PUSH as fast as possible) - however, it seems there is more latency with using Java to capture straight from the camera, than using java to do screen capture from a native camera viewer - wierd! But FPS is still high - 22.07 - not bad!
I'll work on that whole latency thing some more now... it just seems cleaner to capture straight from the camera, rather than screen...
blueridgebruce
22 May 2009, 15:40
;D I am loving following this thread. Dude you are insane ;>) and I love it! I've been a church planter for 35 years and love the way you are blazing new territory.
I will be watching this one also. I plan on using VidBlaster in the future for outputting to a 3rd monitor to a projector also. I uses 2nd monitor output now direct to DVD recorder. I plan on figuring out how to capture 2nd PC output for presentations and text or maybe using shoutcast MediaShout later
Good luck!
josiahbryan
24 May 2009, 02:35
Well, remote capture is all find an dandy - until you want to record or broadcast inhouse - the audio is about 250 - 300ms *ahead* of the video! Crikey. Anyone know how to delay audio to resync it with the video?
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.