Comments

ForumAdmin wrote on 1/9/2008, 7:54 AM
The classes in the ExternalVideoDevice namespace are primarily for internal use, undocumented, and are more subject to change than those in the Vegas namespace.

Based on your previous posts, I guess you are looking for ways to automate capture. I'd like to help. Can you explain what specifically you need to do that goes beyond what the user interface provides... what aspects of capture are you trying to automate?

IMS wrote on 1/9/2008, 8:54 AM
Hi,
Thanks for the help. You are correct that I am looking ways to automate the capture.

This is what I am trying to do. I have a HDV tape that contains aprroximately three hours of tape. I also have a dbf file which contains the exact timecode to capture image. For example the dbf will contain records as follows:

Image1 00052515
Image2 00060200
Image3 00072828
...
Image545 02401528

I am trying to write a C# code which when loaded in Vegas 8.0 will read the dbf file record by record and based on the timecode for each image will capture the image and save it on my disk. For example if I have to capture Image1 then I would goto time code 00052515 to capture that Image (similar to Render Image Sequence code).

The way I developed my code right now is, I capture the entire tape onto my disk and then read the dbf file to capture the images. There are obvious disadvantages of this script; (1) I have to capture entire tape which takes 3 hrs of time (2) I have to do the procedure for around 50 tapes, which would take me weeks

To overcome this problem what I thought was instead of capturing entire tape if there is a way to specify the capture start and stop time in my code then I can make it much faster.
For example if I have to capture an image at "00052515", I can specify in my code to capture a video from "00052515" to "00052516" and then I can capture the image easily.
This would make my work much faster and also doesnot require much space and more importantly I can automate the entire process as a single step which make things simpler for the user who will be using my script.

Any opinions and help on this will help me a lot. Thanks
ForumAdmin wrote on 1/9/2008, 12:24 PM
This is an interesting problem.

I think that your current method of capturing the entire tape, bringing the m2t onto the timeline and running a script to extract individual stills may be the best way to do it in Vegas due to technical limitations the HDV format and Vegas itself.

Firstly, you can not capture single frames in m2t (MPEG long-GOP) format because frames are stored in groups of 15. So you'd need to capture entire MPEG GOPs and pick the desired frame(s) out of each one. If you need to grab lots of frames on the tape, this could turn out to be slower and more cumbersome than just capturing the whole tape as one clip.

Also, you'll notice that Vegas' Capture interface disables all the batch capture capabilities when an HDV device is loaded. This is because HDV cameras do not allow you to seek to a frame as you can with SDI / RS-422 decks. I have seen attempts to work around this problem with what I call "semi-automatic" seeking but Vegas does not do this.

If you have access to a deck with SDI outputs and rs-422 device control (such as the Sony HVR-1500) then you could probably get much closer. You'd also need a SDI capture card (either AJA or DeckLink). You could convert your image list to an XML clip list which Vegas' Capture window can import and batch capture. But even so, I would recommend that you do not capture clips one frame at a time if there are multiple frames within the same 20 or 30 second span because the deck would spend too much time seeking around. After your SDI batch capture is complete, you could run a script that brings the captured clips onto the timeline and extracts the individual images. A major drawback to this approach is that HD-SDI requires MUCH more disk throughput than m2t... you'd need a RAID.

So, I really think you current approach may be the best way to go. Keep in mind that seeking to frames every few seconds apart on a tape may take just as long if not longer than just playing through at normal speed from beginning to end.