when right clicking on a video still image and checking reduce interlace flicker, will this give the same results as de-interlacing the video still image in photo shop? if not, how can you easily de-interlace a still taken from video?
thanks
They aren't the same thing. Since a still photo is not interlaced, it doesn't make sense to de-interlace it. Almost by definition, a still photo is progressive. In other words, since there is absolutely no time element (the photo is taken in one instant of time) there is no way it can be interlaced, a concept which involves different parts of the same frame being taken at two different moments in time.
There is a free script floating around that will set the preview resolution to it's highest, deinterlace and capture all at once. That is what you need.
I mis-understood your question. If you want to capture the best resolution, you need to either use the following script (which captures to the clipboard) or do the same steps manually.
The steps you need to do:
1. Set preview quality to Best/Full;
2. Set the Project FieldOrder to None (ProgressiveScan);
3. Set the Project DeinterlaceMethod to InterpolateFields;
After your snapshot, set everything back to the way it was.
// This script copies a snapshot of the current cursor position to the clipboard
// Save original Settings
var origPreviewRenderQuality = Vegas.Project.Preview.RenderQuality;
var origPreviewFillSize = Vegas.Project.Preview.FullSize;
var origFieldOrder = Vegas.Project.Video.FieldOrder;
var origProjectDeinterlaceMethod = Vegas.Project.Video.DeinterlaceMethod;
// Set the field order and deinterlace method
Vegas.Project.Video.FieldOrder = VideoFieldOrder.ProgressiveScan;
Vegas.Project.Video.DeinterlaceMethod = VideoDeinterlaceMethod.InterpolateFields;
// Copy Snapshot to Clipboard
Vegas.SaveSnapshot(Vegas.Cursor) == RenderStatus.Complete;
I'm new to using scripting and I liked the one in this thread.
Don't really know how to get it to work - I've copied and pasted it into a .txt file, then changed the extension to .cs and put it into the vegas script folder - but when I run it I get an error.
Am I doing something wrong.
Error is: C:\Program Files\Sony\Vegas 7.0\Script Menu\snapshot.cs(1) : A namespace does not directly contain members such as fields or methods
C:\Program Files\Sony\Vegas 7.0\Script Menu\snapshot.js(1) : Syntax error. Write 'var identifier : Type' rather than 'Type identifier' to declare a typed variable
C:\Program Files\Sony\Vegas 7.0\Script Menu\snapshot.js(1) : Variable 'Code' has not been declared
Perhaps the copy/paste operation from the browser window introduced extraneous characters. This is actually a common problem (because CR/LF at the end of each line is often replaced with just a LF, and this causes the script to be mid-read).
I've uploaded the script at this temporary location (good for seven days):
// The first thing this script does is save off the preview & project
// settings that will be set later. This is so they can be restored
// after the script is complete.
var origPreviewRenderQuality = Vegas.Project.Preview.RenderQuality;
var origPreviewFillSize = Vegas.Project.Preview.FullSize;
var origFieldOrder = Vegas.Project.Video.FieldOrder;
var origProjectDeinterlaceMethod = Vegas.Project.Video.DeinterlaceMethod;
var currentTime = Vegas.Cursor;
try {
// Last snapshot file name is stored in Windows registry.
var regKey = Registry.CurrentUser.CreateSubKey("Software\\Sonic Foundry\\Scripts");
var imageFileName = regKey.GetValue("Snapshot");
if (imageFileName == null) { // Running for the first time.
// The current project path seems to fit.
imageFileName = Path.GetDirectoryName(Vegas.Project.FilePath);
imageFileName += Path.DirectorySeparatorChar;
imageFileName += "Image001.png";
} else {
// Increment number.
var filename = Path.GetFileNameWithoutExtension(imageFileName);
var i = filename.Length - 1;
while ((i >= 0) && System.Char.IsDigit(filename, i))
i--;
i++;
var j = filename.Length - i;
var imageNdex: int = parseInt(filename.Substring(i, j), 10) + 1;
var nextname = String.Format("{0}{1:d" + j + "}", filename.Substring(0, i), imageNdex);
imageFileName = imageFileName.Replace(filename, nextname);
}
// Set the preview quality and size.
Vegas.Project.Preview.RenderQuality = VideoRenderQuality.Best;
Vegas.Project.Preview.FullSize = true;
// Set the field order and deinterlace method
Vegas.Project.Video.FieldOrder = VideoFieldOrder.ProgressiveScan;
Vegas.Project.Video.DeinterlaceMethod = VideoDeinterlaceMethod.InterpolateFields;
// Show the script's dialog box.
var dialog = new SaveFileDialog();
dialog.Filter = "PNG File (*.png)|*.png|JPEG File (*.jpg)|*.jpg";
dialog.CheckPathExists = true;
dialog.AddExtension = true;
var initialDir = Path.GetDirectoryName(imageFileName);
if (Directory.Exists(initialDir)) {
dialog.InitialDirectory = initialDir;
}
dialog.DefaultExt = Path.GetExtension(imageFileName);
dialog.FileName = Path.GetFileNameWithoutExtension(imageFileName);
// if the OK button was pressed...
if (dialog.ShowDialog() == DialogResult.OK) {
// Get the basis for output image file names
imageFileName = Path.GetFullPath(dialog.FileName);
// Get the output image file name extension and corresponding
// file format. ImageFileFormat.None indicates that the
// current prefs setting will be used but that may not
// correspond to the specified file extension.
var imageFileNameExt = Path.GetExtension(imageFileName);
var imageFormat = ImageFileFormat.PNG;
if (0 == String.Compare(imageFileNameExt, ".jpg", true)) {
imageFormat = ImageFileFormat.JPEG;
}
// save a snapshot. The SaveSnapshot method returns a
// member of the RenderStatus enumeration. If the user
// hits the escape key or quits the app, exit the loop.
if (Vegas.SaveSnapshot(imageFileName, imageFormat, currentTime) == RenderStatus.Complete) {
regKey.SetValue("Snapshot", imageFileName);
Clipboard.SetDataObject(System.Drawing.Image.FromFile(imageFileName), true);
// This is just ridiculous, all you have to do to add media to Media Pool is create a Media object!
var media = new Media(imageFileName);
Vegas.UpdateUI();
}
}
} catch (e) {
MessageBox.Show(e);
}
Thanks John for the link. It works ok now. I personally have never found a use for copying an image to clipboard as you have to paste it into an image file and can't use it on the timeline directly. Rather of more use to me is to save snapshot to file. Is it poss to amend script to do this. This script is so useful as I tend to forget to put settings back to normal when doing it manually.