Перейти к содержимому


Перед регистрацией ознакомьтесь с темой про сертификат безопасности:
Фотография
- - - - -

Скрипты и утилиты для Sony Vegas


  • Please log in to reply
90 ответов в этой теме

#1 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 19 Jul 2007 - 14:52

Скрипты и утилиты для Sony Vegas
Помимо множества полезных функций Sony Vegas обладает и чрезвычайно приятной особенностью – он умеет работать со скриптами (scripts).

Для справки: Работа со скриптами доступна лишь в полной версии Vegas. В варианте Vegas Movie Studio такая возможность отсутствует.

Скрипт – это макрокоманда, которая "в один клик" запускает целую цепочку операций в Вегас и позволяет таким образом автоматизировать выполнение множества задач при работе с видео и звуком и сэкономить массу времени.

Для Vegas уже написано множество различных скриптов и они активно используются, однако для большинства русскоязычных пользователей их применение ограничивается тем, что инструкции по работе и настройке скрипта под конкретную систему записываются в исходном коде на английском языке. Пришла пора исправить этот пробел.

Предлагаю выкладывать здесь реально работающие скрипты для Вегаса, и дабы уменьшить по возможности число лишних вопросов выкладывать их с ОБЯЗАТЕЛЬНЫМ описанием того, как скрипт работает и какие изменения необходимо внести в исходный код для подстройки под конкретную систему. Поскольку ссылки на файлообменники имеют тенденцию устаревать, просьба в постах выкладывать также и исходный код скрипта, чтобы пользователь, в случае необходимости, мог самостоятельно создать для себя файл скрипта или адаптировать существующий.

Ну и, естественно, хотя большинство скриптов и выкладываются в сети для общего пользования - не стоит забывать о том, что каждый скрипт имеет своего автора. Давайте уважать друг друга и если Вы модифицировали скрипт – укажите это ОТДЕЛЬНОЙ СТРОКОЙ, а не затирайте имя автора исходного кода.

Как пользоваться скриптами?
Для запуска скриптов Вегас использует платфору от MS .NET 1.1 (начиная с 7-й версии – MS.NET 2.0), что дает возможность писать скрипты на языках поддерживаемых данной платформой (JScipt, C#, VB & etc.)
Если у вас есть готовый файл скрипта, то для запуска его в Вегас требуется скопировать файл в папку "C:\Program Files\Sony\Vegas 6.0\Script Menu\".
Если Вегас уже запущен, то в меню - Tools -> Scripting нужно кликнуть по пункту - Rescan Script Menu Folder.
После перепросмотра (обновления списка) в списке скриптов появится Ваш скрипт. Как назывался файл (имя файла) – так же и будет называться пункт меню.

Платформа .NET. Хороший выбор разработчиков, но когда на форуме публикуется скрипт в тексте (сам так делаю), человеку не знающему программирование сложно понять какой это язык. Т.е. в файл с каким расширением сохранять скопированный код. Данный вопрос можно разрешить методом тыка - копируем текст и создаем в вышеуказанной папке файл с расширением (.js, .cs или .vb). Если расширение не соответствует языку скрипта, то - при попытке запустить скрипт, Вегас выдаст ошибку. Следовательно, переименовываем файл (пишем другое расширение) и пробуем запустить еще раз.

Подсказка:
Если в первых строках кода скрипта видим "import"
import System;
import System.Text;
import System.IO;
import System.Drawing;
import System.Windows.Forms;
import Sony.Vegas;
следовательно - это JScript (filename.js)

Если видим "using":
using System;
using System.IO;
using System.Text;
using System.Drawing;
using System.Collections;
using System.Diagnostics;
using System.Windows.Forms;
using Sony.Vegas;
значит это C# (filename.cs)

Добавка в отношении скриптов.
Если Вам часто приходится использовать какой-то скрипт - его можно назначить на кнопки. Для этого идем в Preferences -> Keyboard -> Context => Global -> Available Commands, и мотаем примерно до середины. Все скрипты представлены в списке с префиксом "Script.Имя скрипта". Назначаем удобную комбинацию на требуемый скрипт и наслаждаемся ....

Второй способ - вынос скрипта на инструментальную панель (Тулбар).
Идем Options->Costumize Toolbar...
Крутим список примерно до середины - после
Run Script
Compile Script
видим список наших скриптов. Добавляем на инструментальную панель, пользуемся.
--------------------
Для каждого скрипта можно создать свою иконку, для этого достаточно в папке (С:\Program Files\Sony\Vegas 6.0\Script Menu) создать PNG файл размером 16*16 px и назвать его по имени скрипта.

Например:
export xml.js
export xml.js.png

В данном случае, на тулбар будет красоваться индивидуальная иконка, что облегчит последующую идентификацию.

Чтобы появилась иконка, требуется зайти в Tools->Scripting->Rescan Script Menu Folder.



Для того, чтобы создать файл скрипта из исходного кода необходимо в любом текстовом редакторе (для этого прекрасно подходит встроенный в Windows Блокнот) создать новый файл, скопировать в него исходный код и сохранить в папку со скриптами Вегаса. Обратите внимание, что при этом название создаваемого файла прописывается полностью с расширением, а тип отображаемых файлов переводится в режим All files (Все файлы)

Подробную инструкцию по работе со скриптами в Вегасе также можно прочитать здесь на странице переведенной Справки.


ПРИМЕР ОФОРМЛЕНИЯ ПОСТА


RenderQueue
- скрипт для пакетного просчета нескольких проектов Вегас в один заход с вариантом выключения компьютера по окончании просчета.

Порядок работы:

После запуска скрипта из Вегаса в открывшемся окне выбираете проект, который необходимо просчитать. После нажатия ОК окно закрывается и открывается вновь. Выбираете следующий проект и так до тех пор, пока не выберете все нужные вам проекты. Когда выбирать больше нечего, закрываете вновь открывшееся окно кнопкой Cancel (Отмена), запускается просчет.

===========================================================================
/**
 * This script can be used to queue up multiple Vegas project files
 * to be rendered.
 *
 * Revision Date: May. 07, 2003
 **/

import System.IO;
import System.Windows.Forms;
import Sony.Vegas;

// Modify the following two lines to suit you needs for the output
// format.
var rendererRE = /Video for Windows/;
var templateRE = /PAL DV/;

// Set this to a valid out directory or set it to null if you want the
// output files to be created in the same directory as their project
// file.
var defaultOutputDir = "O:\Rendered";

// Set the following variable to true if you want to allow the script
// to overrwite existing rendered output files.
var allowFileOverwrites = false;

try {
	if ((null != defaultOutputDir) && !Directory.Exists(defaultOutputDir))
		throw "output directory does not exist: " + defaultOutputDir;

	// find the renderer and template
	var renderer : Renderer = FindRenderer(rendererRE);
	if (null == renderer)
		throw "failed to find renderer";
	var renderTemplate :RenderTemplate = FindRenderTemplate(renderer, templateRE);
	if (null == renderTemplate)
		throw "failed to find render template";

	// get file name extension that will be appended to each output file
	var rendererExt = renderer.FileExtension.substring(1);

	// prompt user for the list of project files to be rendererd.
	var renderQueue = new Array();
	var queueIndex = 0
	while (true) {
		var nextVeg = ShowOpenFileDialog("Vegas Projects (*.veg)|*.veg", "Queue Project File (cancel to begin)", null);
		if (null == nextVeg) {
			break;
		}
		renderQueue[queueIndex] = nextVeg;
		queueIndex++;
	}

	// for each project file in the queue...
	var renderIndex = 0
	while (renderIndex < queueIndex) {
		// open the next project
		var vegFilename = renderQueue[renderIndex];
		if (!Vegas.OpenProject(vegFilename)) {
			throw "failed to open project file: " + vegFilename;
		}

		// compute the output directory
		var outputDir;
		if (null == defaultOutputDir) {
			outputDir = Path.GetDirectoryName(vegFilename);
		} else {
			outputDir = defaultOutputDir;
		}

		// create the output file name
		var outputName = Path.GetFileNameWithoutExtension(vegFilename);
		var outputFilename = outputDir + Path.DirectorySeparatorChar + outputName + rendererExt;
		if ((!allowFileOverwrites) && File.Exists(outputFilename))
			throw "file already exists: " + outputFilename;

		// perform the render
		var renderStatus = Vegas.Render(outputFilename, renderTemplate);
		if (RenderStatus.Complete != renderStatus)
			throw "failed to complete render: " + outputFilename;

		renderIndex++;
	}
} catch (e) {
	MessageBox.Show(e);
}


// an example filter: "PNG File (*.png)|*.png|JPEG File (*.jpg)|*.jpg"
function ShowOpenFileDialog(filter, title, defaultFilename) {
	var openFileDialog = new OpenFileDialog();
	if (null == filter) {
		filter = "All Files (*.*)|*.*";
	}
	openFileDialog.Filter = filter;
	if (null != title) openFileDialog.Title = title;
	openFileDialog.CheckPathExists = true;
	openFileDialog.AddExtension = true;
	if (null != defaultFilename) {
		var initialDir = Path.GetDirectoryName(defaultFilename);
		if (Directory.Exists(initialDir)) {
			openFileDialog.InitialDirectory = initialDir;
		}
		openFileDialog.DefaultExt = Path.GetExtension(defaultFilename);
		openFileDialog.FileName = Path.GetFileName(defaultFilename);
	}
	if (System.Windows.Forms.DialogResult.OK == openFileDialog.ShowDialog()) {
		return Path.GetFullPath(openFileDialog.FileName);
	} else {
		return null;
	}
}

function FindRenderer(rendererRegExp : RegExp) : Renderer {
	var rendererEnum : Enumerator = new Enumerator(Vegas.Renderers);
	while (!rendererEnum.atEnd()) {
		var renderer : Renderer = Renderer(rendererEnum.item());
		if (null != renderer.FileTypeName.match(rendererRegExp)) {
			return renderer;
		}
		rendererEnum.moveNext();
	}
	return null;
}

function FindRenderTemplate(renderer : Renderer, templateRegExp : RegExp) : RenderTemplate {
	var templateEnum : Enumerator = new Enumerator(renderer.Templates);
	while (!templateEnum.atEnd()) {
		var renderTemplate : RenderTemplate = RenderTemplate(templateEnum.item());
		if (renderTemplate.Name.match(templateRegExp)) {
			return renderTemplate;
		}
		templateEnum.moveNext();
	}
	return null;
}
==========================================================================

Особенности использования скрипта:

Данный скрипт настроен на просчет в формате AVI (Video for Windows) шаблон PAL DV. Для того, чтобы выбрать другой вариант просчета, необходимо в строках:
#14| var rendererRE = /Video for Windows/;
#15| var templateRE = /PAL DV/;
изменить выделенный текст на те настройки, которые вам нужны
в строке:
# 20| var defaultOutputDir = "O:\Rendered";
задается папка, в которую будут просчитываться Ваши проекты.

Дополнение:

RenderQueueShutDown
– вариант скрипта с выключением компьютера по окончании просчета.

Внимание! Прежде чем запускать данный скрипт сохраните изменения в текущем проекте, и других открытых приложениях, т.к. после его запуска отменить исполнение скрипта будет невозможно, в случае отказа от рендеринга проекта компьютер будет выключен с принудительным закрытием всех приложений в течение 10 сек. и несохраненные данные могут быть потеряны!

===========================================================================
/**
 * This script can be used to queue up multiple Vegas project files
 * to be rendered.
 *
 * Revision Date: July. 07, 2007
 **/ Modified by romamos 

import System.IO;
import System.Windows.Forms;
import Sony.Vegas;

// Modify the following two lines to suit your needs for the output
// format.
var rendererRE = /Video for Windows/;
var templateRE = /PAL DV/;

// Set this to a valid out directory or set it to null if you want the
// output files to be created in the same directory as their project
// file.
var defaultOutputDir = "O:\Rendered";

// Set the following variable to true if you want to allow the script
// to overrwite existing rendered output files.
var allowFileOverwrites = true;

try {
	if ((null != defaultOutputDir) && !Directory.Exists(defaultOutputDir))
		throw "output directory does not exist: " + defaultOutputDir;

	// find the renderer and template
	var renderer : Renderer = FindRenderer(rendererRE);
	if (null == renderer)
		throw "failed to find renderer";
	var renderTemplate :RenderTemplate = FindRenderTemplate(renderer, templateRE);
	if (null == renderTemplate)
		throw "failed to find render template";

	// get file name extension that will be appended to each output file
	var rendererExt = renderer.FileExtension.substring(1);

	// prompt user for the list of project files to be rendererd.
	var renderQueue = new Array();
	var queueIndex = 0
	while (true) {
		var nextVeg = ShowOpenFileDialog("Vegas Projects (*.veg)|*.veg", "Queue Project File (cancel to begin)", null);
		if (null == nextVeg) {
			break;
		}
		renderQueue[queueIndex] = nextVeg;
		queueIndex++;
	}

	// for each project file in the queue...
	var renderIndex = 0
	while (renderIndex < queueIndex) {
		// open the next project
		var vegFilename = renderQueue[renderIndex];
		if (!Vegas.OpenProject(vegFilename)) {
			throw "failed to open project file: " + vegFilename;
		}

		// compute the output directory
		var outputDir;
		if (null == defaultOutputDir) {
			outputDir = Path.GetDirectoryName(vegFilename);
		} else {
			outputDir = defaultOutputDir;
		}

		// create the output file name
		var outputName = Path.GetFileNameWithoutExtension(vegFilename);
		var outputFilename = outputDir + Path.DirectorySeparatorChar + outputName + rendererExt;
		if ((!allowFileOverwrites) && File.Exists(outputFilename))
			throw "file already exists: " + outputFilename;

		// perform the render
		var renderStatus = Vegas.Render(outputFilename, renderTemplate);
		if (RenderStatus.Complete != renderStatus)
			throw "failed to complete render: " + outputFilename;

		renderIndex++;
	}
} catch (e) {
	MessageBox.Show(e);
}


// an example filter: "PNG File (*.png)|*.png|JPEG File (*.jpg)|*.jpg"
function ShowOpenFileDialog(filter, title, defaultFilename) {
	var openFileDialog = new OpenFileDialog();
	if (null == filter) {
		filter = "All Files (*.*)|*.*";
	}
	openFileDialog.Filter = filter;
	if (null != title) openFileDialog.Title = title;
	openFileDialog.CheckPathExists = true;
	openFileDialog.AddExtension = true;
	if (null != defaultFilename) {
		var initialDir = Path.GetDirectoryName(defaultFilename);
		if (Directory.Exists(initialDir)) {
			openFileDialog.InitialDirectory = initialDir;
		}
		openFileDialog.DefaultExt = Path.GetExtension(defaultFilename);
		openFileDialog.FileName = Path.GetFileName(defaultFilename);
	}
	if (System.Windows.Forms.DialogResult.OK == openFileDialog.ShowDialog()) {
		return Path.GetFullPath(openFileDialog.FileName);
	} else {
		return null;
	}
}

function FindRenderer(rendererRegExp : RegExp) : Renderer {
	var rendererEnum : Enumerator = new Enumerator(Vegas.Renderers);
	while (!rendererEnum.atEnd()) {
		var renderer : Renderer = Renderer(rendererEnum.item());
		if (null != renderer.FileTypeName.match(rendererRegExp)) {
			return renderer;
		}
		rendererEnum.moveNext();
	}
	return null;
}

function FindRenderTemplate(renderer : Renderer, templateRegExp : RegExp) : RenderTemplate {
	var templateEnum : Enumerator = new Enumerator(renderer.Templates);
	while (!templateEnum.atEnd()) {
		var renderTemplate : RenderTemplate = RenderTemplate(templateEnum.item());
		if (renderTemplate.Name.match(templateRegExp)) {
			return renderTemplate;
		}
		templateEnum.moveNext();
	}
	return null;
}
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run("shutdown -s -f -t 10",0);
===========================================================================
Оба скрипта с иконками лежат здесь (11кБ).

И в дополнение несколько полезных ссылок на авторские страницы и архивы со скриптами и утилитами:
здесь всё описание - на русском.

Пакет скриптов (вернее сказать скриптовых утилит, т.к. исходные коды зашиты в dll-ки) от Gilles (ник на офсайте – Rosebud) с возможностью настройки параметров после запуска:
Video Strobe (эффект стробоскопа, настройка частоты строба от 1 до 10 кадров)
Split Audio Channels (разделение аудио-дорожки на правую и левую. Полезно например, в случае, когда из записи надо убрать звук "пушки")
Video Slide (перемещение картинок по площади кадра с возможностью настройки направления и скорости движения, а также размера оных)
Video Zoom (эффект "наезда" на объект с возможностью выбора траектории и пауз "в пути")
Все скрипты можно взять здесь или здесь (28кБ).

Скрипты уже выложенные на форуме:
Скрипт для замены Upper Field на Lower Field,
Вывод интерлейсных снимков и
Сохранение снимка кадра.

Одна из полезнейших (must have) утилит для Вегас – HandySaw DS (всё описание - на русском) - здесь.
и в дополнение к ней скрипт от altarviс, позволяющий запускать ее напрямую с таймлайн Вегас.
Здесь (5кБ).

Утилита Vegasist – после запуска "садится" в системный трей и следит за процессом просчета проекта, по окончании процесса дает сигнал.
Два момента: при наличии в системе двух звуковых карт использует для сигнала то устройство, что определено по умолчанию в настройках Windows. Сам Вегас при этом может быть настроен и на другую карту. И второе - в настройках утилиты есть возможность задать выключение компьютера по окончании рендеринга. (У меня эта функция почему-то не работает).
Скачать (765 кБ)

Утилита Vegbun – создает папку с проектом *.veg и поддиректорией (Media), в которую собирает все медиа-файлы, использованными в данном проекте - здесь (2,4 Мб)

Расширенный вариант Vegbun - утилита Structure, в дефолтовом профиле создает директории с данными проекта DVD и проекта-источника и позволяет организовывать их структуру (добавлять, удалять, перемещать) по выбору пользователя. Своего рода - файл-менеджер для проектов Вегас.
Утиллита (129 кБ) - здесь, описание - здесь

#2 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 27 Jul 2007 - 13:34

Ещё пара скриптов из серии "Must Have", которые помогут исправить случайно закравшиеся при монтаже ошибки.

AuditForEventLevels
- проверяет уровни непрозрачности (Opacity) и усиления (Gain) фрагментов (event-ов) на таймлайн.

Порядок работы
После запуска в открытом проекте скрипт находит на *первой дорожке видеофрагменты, в которых уровень Opacity (Непрозрачность) менее 100% и аудиофрагменты, в которых уровень усиления Gain отличается от 0 db, предлагая это исправить. Если изменения внесены сознательно, можно отказаться от правки, и перейти к следующему фйрагменту. После "просмотра" всего проекта скрипт выдает окошко с напоминанием, что "не худо было бы ещё проверить и настройки дорожек в поле Track List", но это - уже "ручками".
*предполагается, что это - мастер-трек, и что он должен быть выделен в поле списка дорожек - TrackList

/**
 * This script finds all events where the opacity level has been 
 * set to a level only slightly less than 100%, or the audio level
 * set to slightly less than 0dB. This usually is not intentional
 * and results from accidentally moving the opacity or volume 
 * line while moving an event. Without this script, such 
 * an accident is very difficult to detect, and can result in 
 * long rendering times.
 * 
 * Written By: John H. Meyer
 * Date: November 11, 2003
 *
 **/

import System;
import System.IO;
import System.Windows.Forms;
import Sony.Vegas;

// Change this line if you want a different threshold
var Opacity = 0.90;
var EventLevel = 0.50; 

var OpacityMessage : String;
var TrackUnits : String;

try {

  //Go through the list of Tracks
  var trackEnum = new Enumerator(Vegas.Project.Tracks);
  while (!trackEnum.atEnd()) {
	var track : Track = Track(trackEnum.item());


	//Go through the list of Events
	var eventEnum = new Enumerator(track.Events);

	while (!eventEnum.atEnd()) {
	  var evnt : TrackEvent = TrackEvent(eventEnum.item());
	  evnt.Selected = false;  // De-select events in order to make problem events stand out
							  // (Problem events WILL be selected) 

	  // If gain is less than 100% (or 0dB), but greater than the threshhold ...
	  if ( (evnt.FadeIn.Gain > Opacity) && (evnt.FadeIn.Gain < 1) ) { 

		// Highlight the "suspect" event
		Vegas.SelectionStart = evnt.Start;
		Vegas.SelectionLength = evnt.Length;
		Vegas.Cursor = evnt.Start; 
		evnt.Selected = true; 
		Vegas.UpdateUI(); 

		// Create error message to display in message box.
		if (track.IsVideo()) {	 
		  TrackUnits = "100%";
		  EventLevel = 100 * evnt.FadeIn.Gain;
		  OpacityMessage = "This event is set to: " + EventLevel.toPrecision(2);
		  OpacityMessage = OpacityMessage + "%. Do you want to set to " + TrackUnits + "?";
		}
		else {
		  TrackUnits = "0dB";
		  EventLevel = 20 * Math.log (evnt.FadeIn.Gain);
		  OpacityMessage = "This event is set to: " + EventLevel.toPrecision(2);
		  OpacityMessage = OpacityMessage + "dB. Do you want to set to " + TrackUnits + "?";
		}


		var msgBoxResult = MessageBox.Show(OpacityMessage, "Region Selected", MessageBoxButtons.YesNo);
		if (msgBoxResult == DialogResult.Yes) {
		  evnt.FadeIn.Gain = 1;	  // Correct the problem
		}

	  }

	  evnt.Selected = false; // Clear all event selections
	  eventEnum.moveNext();

	}  // End While eventEnum

	trackEnum.moveNext();

  }  // End While trackEnum
  MessageBox.Show("Don't forget to check all track header levels.","Completed",MessageBoxButtons.OK,MessageBoxIcon.Information);

} catch (e) {
	MessageBox.Show(e);
}

Особенности использования скрипта:
Значение "ошибки" уровня непрозрачности Opacity задано значением 10%. При необходимости его можно изменить, исправив в строке
#21| var Opacity = 0.90;
выделенные цифры на другую величину. В данном случае 0.90 - уровень, ниже которого изменения считаются сознательно внесенными.

Еще один чрезвычайно полезный скрипт от John H. Meyer
AuditForShortBlankGaps.

Порядок работы
После запуска скрипт находит в проекте промежутки (Gaps) и "наплывы" (Overlaps - нахлесты, пересечения) между фрагментами (event-ами) длительностью в несколько кадров, предлагая их исправить. Если они созданы сознательно, от правки можно отказаться.

/**
 * This script finds short blank gaps or overlaps between events
 * on the first selected track. 
 * 
 * Written By: John H. Meyer
 * Date: December 2, 2003
 *
 **/

import System;
import System.IO;
import System.Windows.Forms;
import Sony.Vegas;

// Change this line if you want a different threshold

var Gap : Double = new Timecode("00:00:00:15").ToMilliseconds(); // 15 Frames

var lastevnt : TrackEvent;
var MyMarker : Marker;		// Global function used in main program and in function
var evnt : TrackEvent;
var trackEnum : Enumerator; 

try {

	var dirty = 0;
	var track = FindSelectedTrack(); //Use this function to find the first selected track.  

	//Go through the list of Events
	var eventEnum = new Enumerator(track.Events);
	var lastevnt = TrackEvent(eventEnum.item()); //initialize lastevent variable

	while (!eventEnum.atEnd() ) {
	  evnt = TrackEvent( eventEnum.item() );

	  var test1 = evnt.Start.ToMilliseconds();  
	  var test2 = lastevnt.Start.ToMilliseconds() + lastevnt.Length.ToMilliseconds();

	  // To only test for gaps only, use the first line below instead
//	if (	( (test1 - test2) > 0.05 )  && ( (test1 - test2) < Gap )	) {			

	  if ( ( Math.abs(test1 - test2) > 0.05 )  && (Math.abs(test1 - test2) < Gap)  )  {


		  if (!MarkerExist(test1) ) {
			MyMarker = new Marker(evnt.Start);
			Vegas.Project.Markers.Add(MyMarker);
			MyMarker.Label = "";
		  }
		   
		  if (test1 > test2) {
			MyMarker.Label = MyMarker.Label + "GAP********";
		  }
		  else {
			MyMarker.Label = MyMarker.Label + "OVERLAP****";
		  }
		  dirty = 1;
		}

	  lastevnt = evnt;

	  eventEnum.moveNext();

	}  // End While eventEnum

	if (dirty == 1) {
		Vegas.UpdateUI();  
		MessageBox.Show("Gaps and/or overlaps were found.","Completed",MessageBoxButtons.OK,MessageBoxIcon.Information);
	}

} catch (e) {
	MessageBox.Show(e);
}


function FindSelectedTrack() : Track {
  trackEnum = new Enumerator(Vegas.Project.Tracks);
  while (!trackEnum.atEnd()) {
	var track : Track = Track(trackEnum.item());

	if (track.Selected) {
	  return track;
	}
	trackEnum.moveNext();
  }
  return null;
}


function MarkerExist (dStart) : boolean {

  var markerEnum = new Enumerator(Vegas.Project.Markers);

  while (!markerEnum.atEnd()) {
	MyMarker = markerEnum.item();					// MyMarker is a global function in this project
	var MarkerStart = MyMarker.Position.ToMilliseconds();

	if ( dStart ==  MarkerStart ) {
	  return 1;
	}

  markerEnum.moveNext();

  } // End while markerEnum

  return 0;
}

Особенности использования скрипта:
Скрипт настроен на поиск прмежутков и "наплывов" длительностью до 15 кадров. При необходимости можно уменьшить значение. Это может быть актуально для тех, кто использует при монтаже короткие фрагменты длительностью 9-12 кадров.
Для этого в строке
# 17| var Gap : Double = new Timecode("00:00:00:15").ToMilliseconds(); // 15 Frames
замените выделенные цифры на нужную Вам величину (значение менее 10 кадров пишется с нулем. Например "05")

Архив со скриптами и иконками можно скачать здесь (10кБ).

#3 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 08 Sep 2007 - 15:38

Ещё несколько скриптов для работы с аудио.

AdjustDictorVolume написанный Edward Troxel и модифицированный David Arendt
- автоматически понижает уровень звукового сопровождения в тех местах, где есть дикторский текст.

Порядок работы:
Записываем дикторский текст на отдельный трек, называем его "Dictor"
кому не нравится название, может исправить на другое в строке
#32| var VoiceTrack = FindTrack("Dictor");
трек со звуковым сопровождением называем "Music"
аналогично, если не нравится название исправляем в строке
#36| var MusicTrack = FindTrack("Music");
разрезаем дикторский текст на фрагменты, расставляем их по своим местам (скрипт ориентируется по пробелам между event-ами) и запускаем скрипт.

/**
 * This script will reduce the volume on a music track whenever there are clips
 * on a narrative track.
 * Written By: Edward Troxel - Vegas Tips, Tricks, & Scripts
 * Modified By: David Arendt - multiple successive tracks now working
 **/

import System;
import System.IO;
import System.Object;
import System.Windows.Forms;
import Sony.Vegas;


try {
  // Set the defaults
  var FadeWhen = 2; // 1 = all before/after, 2 = Centered on start/end
  var FadeMS : Double = 1000; //500 = 1/2 second - Time is MilliSeconds
  var LoudVol = 1; //1 = 0db, 2 = 6db, 1.5 = 3.5db, 1.75 = 4.8db
  var SoftVol = 0.5; //0 = -inf, .5 = -6db, .25 = -12db


  if (FadeWhen == 2) {
	  FadeMS = FadeMS / 2;
  }

  var FadeTime = new Timecode(FadeMS);



  // Find the two audio tracks by name
  var VoiceTrack = FindTrack("Dictor");
  if (null == VoiceTrack)
	  throw "no selected track";

  var MusicTrack = FindTrack("Music");
  if (null == MusicTrack)
	  throw "no selected track";

  // Find the volume envelope on the music track - add if needed
  var VolEnv = FindEnvelope(MusicTrack, EnvelopeType.Volume);
  if (null == VolEnv) {
	  VolEnv = new Envelope(EnvelopeType.Volume);
	  MusicTrack.Envelopes.Add(VolEnv);
  }

  // Go thru the events on the narrative track finding in/out points
  var eventEnum = new Enumerator(VoiceTrack.Events);
  while (!eventEnum.atEnd()) {
	var evnt : TrackEvent = TrackEvent(eventEnum.item());
	var evntStart : Timecode = evnt.Start;
	var evntLen : Timecode = evnt.Length;
	
	// begin modification by David Arendt
	eventEnum.moveNext();
	var nextEvnt : TrackEvent;
	var nextEvntStart : Timecode;
	var nextEvntLen : Timecode;
	while (!eventEnum.atEnd())
	{
	  nextEvnt = TrackEvent(eventEnum.item());
	  nextEvntStart = nextEvnt.Start;
	  nextEvntLen = nextEvnt.Length;
	  if (nextEvntStart > evntStart + evntLen + FadeTime + FadeTime)
		break;
	  evntLen = nextEvntStart - evntStart + nextEvntLen;		  
	  eventEnum.moveNext();
	}
	// end modification by David Arendt

	VolEnv.Points.Add(new EnvelopePoint(evntStart - FadeTime, LoudVol));
	if (FadeWhen == 2) {
		VolEnv.Points.Add(new EnvelopePoint(evntStart + FadeTime, SoftVol));
	} else {
		VolEnv.Points.Add(new EnvelopePoint(evntStart, SoftVol));
	}

	if (FadeWhen == 2) {
		VolEnv.Points.Add(new EnvelopePoint(evntStart + evntLen - FadeTime, SoftVol));
	} else {
		VolEnv.Points.Add(new EnvelopePoint(evntStart + evntLen, SoftVol));
	}
	VolEnv.Points.Add(new EnvelopePoint(evntStart + evntLen + FadeTime, LoudVol));


  }


} catch (e) {
	MessageBox.Show(e);
}


function FindTrack(WhichTrack) : Track {
  var trackEnum = new Enumerator(Vegas.Project.Tracks);
  var PrevTrack : Track = Track(trackEnum.item());
  while (!trackEnum.atEnd()) {
	var track : Track = Track(trackEnum.item());
	if (WhichTrack == "Current") {
		if (track.Selected) {
			return track;
		}
	}
	if (WhichTrack == "Previous") {
		if (track.Selected) {
			return PrevTrack;
		}
	}
	if (track.Name == WhichTrack) {
		return track;
	}
	trackEnum.moveNext();
  }
  return null;
}

function FindEnvelope(track : Track, etype : EnvelopeType) : Envelope {
  var envEnum : Enumerator = new Enumerator(track.Envelopes);
  while (!envEnum.atEnd()) {
	var env : Envelope = envEnum.item();
	if (env.Type == etype) {
		return env;
	}
	envEnum.moveNext();
  }
  return null;
}
Особенности использования скрипта:
Скрипт настроен на понижение/повышение звукового сопровождения на 6db за 1 сек. в начале/конце event-а с дикторским текстом. Fade центрирован по началу/концу event-а.
Настройки меняются в строках
#17| var FadeWhen = 2; // 1 = all before/after, 2 = Centered on start/end
#18| var FadeMS : Double = 1000; //500 = 1/2 second - Time is MilliSeconds
#19| var LoudVol = 1; //1 = 0db, 2 = 6db, 1.5 = 3.5db, 1.75 = 4.8db
#20| var SoftVol = 0.5; //0 = -inf, .5 = -6db, .25 = -12db


MuteAudio от Randall Campbell
здесь все просто - одной кнопкой глушится/включается весь звук в проекте.

// Mutes or unmutes a portion of an audio clip.
// To use:
// 1. Select the desired audio track
// 2. Define a time selection for the part of the clip to mute
// 3. Run the script
// The script creates a mute or volume envelope for the selected track if one does not exist and adds points
// to mute the audio. If points already exist in the selection, they are deleted to unmute the audio.
//
// Author: Randall Campbell, info@peachrock.com, www.peachrock.com
// © Copyright 2004, Peach Rock Productions, LLC.
// You are free to use or modify this code as long as the copyright information is not removed.
// This software is provided AS IS, no warranty is expressed or implied

import System;
import System.Windows.Forms;
import System.Collections;
import Sony.Vegas;

// You can change the fade amount if desired. The default is 1 milliseconds. This value must be greater than 0.
var fadeOut : Timecode = Timecode.FromMilliseconds(1);
var fadeIn : Timecode = Timecode.FromMilliseconds(1);

// You can modify the curve type here. Valid values are: Smooth, Sharp, Slow, Linear, Fast, None (ie. Hold)
var fadeOutCurve : CurveType = CurveType.Smooth;
var fadeInCurve : CurveType = CurveType.Smooth;

// You can change the envelope to use the volume envelope by changing EnvelopeType.Mute to EnvelopeType.Volume
// Just comment out the mode that you don't want
//var envelopeType : EnvelopeType = EnvelopeType.Mute;
var envelopeType : EnvelopeType = EnvelopeType.Volume;

for (var track in Vegas.Project.Tracks)
{
	if (!track.IsAudio() || !track.Selected)
	continue;

	if (!track.Envelopes.HasEnvelope(envelopeType))
		track.Envelopes.Add(new Envelope(envelopeType));

	var envelope : Envelope = track.Envelopes.FindByType(envelopeType);

	var unmuted = false;
	for (var i = envelope.Points.Count - 1; i > 0; i--)
	{
		var point : EnvelopePoint = envelope.Points.Item[i];
		if (point.X >= Vegas.SelectionStart && point.X <= (Vegas.SelectionStart + Vegas.SelectionLength))
		{
		envelope.Points.Remove(point);
		unmuted = true;
		}
	}
	if (!unmuted)
	{
		envelope.Points.Add(new EnvelopePoint(Vegas.SelectionStart, 1, fadeOutCurve));
		envelope.Points.Add(new EnvelopePoint(Vegas.SelectionStart + fadeOut, 0));
		envelope.Points.Add(new EnvelopePoint(Vegas.SelectionStart + Vegas.SelectionLength - fadeIn, 0, fadeInCurve));
		envelope.Points.Add(new EnvelopePoint(Vegas.SelectionStart + Vegas.SelectionLength, 1));
	}
}



NormalizeAll
- запускает нормализацию звука для всех аудио-фрагментов

/**
 * This script normalizes all Audio Events in the current project.
 * This script works best if you run it after all event peaks have
 * been built.
 *
 * Revision Date: Feb. 10, 2003
 **/

import Sony.Vegas;

var trackEnum : Enumerator = new Enumerator(Vegas.Project.Tracks);
while (!trackEnum.atEnd()) {
	var track : Track = Track(trackEnum.item());
	if (track.IsAudio()) {
		var eventEnum : Enumerator = new Enumerator(track.Events);
		while (!eventEnum.atEnd()) {
			var audioEvent : AudioEvent = AudioEvent(eventEnum.item());
			audioEvent.Normalize = true;
			eventEnum.moveNext();
		}
	}
	trackEnum.moveNext();
}


RecreateAudioEvents
- чрезвычайно полезный скрипт для тех, кто увлекшись монтажом картинки начинает искать исходный звук (интершум, реплики и т.п.) видео-фрагментов. Эту операцию можно сделать через Trimmer, но если фрагментов много, а времени, как всегда - мало, то быстрее сделать это скриптом.

/*
 * (re)create audio parts on seperate audio track for all selected video events
 */

import System.Windows.Forms;
import Sony.Vegas;

try {
  // create new target audio track
  var targetTrack = new AudioTrack(-1,"Missing Audio");
  Vegas.Project.Tracks.Add(targetTrack);
  // step through all selected video events:
  for (var track in Vegas.Project.Tracks) {
	for (var evnt in track.Events) {
	  if (!evnt.Selected || evnt.MediaType != MediaType.Video) continue;
	  // create a fitting audio event and add to target audio track:
	  var audioEvent = new AudioEvent(evnt.Start,evnt.Length);
	  targetTrack.Events.Add(audioEvent);
	  // step through all events of selected video event
	  for (var tke in evnt.Takes)
	  {
		// find first audio stream in this takes media
		var aviFile = new Media(tke.MediaPath);
		for (var stream in aviFile.Streams)
		{
		  if (stream.MediaType != MediaType.Audio) continue;
		  // create new take out of this audio stream
		  var newTake = new Take(stream,tke.IsActive);
		  // add it to target audio event (must be done before anything else!!)
		  audioEvent.Takes.Add(newTake);
		  // fit offset to video event
		  newTake.Offset = tke.Offset;
		  break; // we assume there's only one audio part in any avi file
		}
	  }
	  audioEvent.Selected = true;
	}
  }
} catch (e) {MessageBox.Show(e);}

Архив со скриптами и иконками к ним (17кБ) можно взять здесь, а также здесь и здесь.

Сообщение отредактировано GS1966: 09 Sep 2007 - 18:15


#4 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 12 Sep 2007 - 15:04

Здесь - интерактивный справочник на русском с обучалкой по языку MS JScript. :rtfm:

Сообщение отредактировано romamos: 12 Sep 2007 - 15:06


#5 altarvic

altarvic

    Есть камера, комп, а где поля ?

  • Участники
  • PipPipPipPip
  • 103 Сообщений:

Отправлено 27 Sep 2007 - 09:29

Полазил сегодня по JETDV. Вот что там нашел:

1) Пресеты для ProType (Vegas Pro 8)
left
right
Typing text
Airplane banner
Slide off Ledge
Transporter Effect

Как они выглядят можно посмотреть здесь

Щелкаете правой кнопкой по ссылке и сохраняете в "C:\Users\{username}\AppData\Roaming\Sony\Titler 1.0\Collection" (Виста) или "C:\Documents and Settings\{username}\Application Data\Sony\Titler 1.0\Collection" (XP)

2) Пресеты эффектов (FX chains)
DayforNight2
GrazieSwap
EuroTrash-NastyRed
EuroTrash
GBSoftFocus4a
Grazie1a

Для их установки в систему необходим Sony Preset Manager

Может у кого есть свои наработки, готовые пресеты и.т.п. ? Welcome!

#6 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 27 Sep 2007 - 12:42

Еще пара приятных дополнений к Vegas Pro 8 от знаменитого скриптописателя Эдварда Троксела - пара Custom Commands (по сути, это - специализированные дополнительные модули).

Что такое Custom Commands?
"Custom Commands - специальный тип скриптов, введенный в Вегас Pro 8, которые загружаются одновременно с загрузкой Вегаса и остаются в рабочем режиме до тех пор, пока выполняется работа в редакторе. Custom Commands в режиме реального времени могут реагировать на изменения в проекте, управлять воспроизведением и реализуются в виде отдельного интерфейса, который можно прикрепить к другим "окнам" Вегаса.
Custom Commands подключаются в одной из трех категорий: Edit, View и Tools. Доступные вам Custom Commands появляются в этих меню в строке "Extensions".
Стандартные скрипты по прежнему "живут" в строке Tools => Scripting."

Project Inspector
В режиме реального времени отслеживает случайно вкравшиеся при монтаже ошибки. С его помощью можно также проверить на ошибки уже существующие проекты.
Дополнительная информация на английском здесь, загрузить можно здесь

AutoSave
Дает возможность делать back-up копии проектов Вегаса. Это не альтернатива встроенному механизму текущего резервирования проекта, который создает только одну back-up копию в том состоянии, в котором проект был на момент предыдущего сохранения, а дополнительная возможность в автоматическом режиме делать копии в папку проекта и в специальную резервную папку с указанием времени и даты резервирования.
Дополнительная информация на английском здесь, загрузить последнюю версию можно здесь.

Для установки модулей при закрытом Вегасе запускаете экзешник, после чего активируете их в вышеуказанных меню.

Дружно говорим спасибо Эдварду Трокселу. :drinks:

Сообщение отредактировано romamos: 27 Sep 2007 - 12:55


#7 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 18 Oct 2007 - 22:56

Vegas DV Props
Утилита для просмотра свойств DV *.avi файлов, захваченных Вегасом. Работает без инсталяции. После запуска надо просто перетащить мышом из окна Windows Explorer нужный файл в окно утилиты и всё. В колонках: имя/фамилия :lol2: , время и дата съемки, начальный тайм-код, конечный и т.д.
Лежит здесь.

Для любителей изучения времени, даты и проч. параметров отснятых материалов могу порекомендовать еще пару бесплатных DV-плееров.

DVMP описание здесь
и DV date описание здесь

Оба работают без инсталляции. В первом можно только посмотреть, а второй ещё и даёт возможность делать некоторые дополнительные манипуляции с файлами.

Сообщение отредактировано romamos: 20 Oct 2007 - 10:28


#8 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 19 Oct 2007 - 13:23

Щелкаете правой кнопкой по ссылке и сохраняете в "C:\Users\{username}\AppData\Roaming\Sony\Titler 1.0\Collection" (Виста) или "C:\Documents and Settings\{username}\Application Data\Sony\Titler 1.0\Collection" (XP)

В VP8a изменилась папка хранения custom пресетов для Pro Titler. Теперь она называется "Collections" (добавилась последняя буква). После обновления версии, чтобы титровалка её увидела, надо просто переименовать папку.

#9 eXed

eXed

    Есть камера, комп, а где поля ?

  • Писатели
  • PipPipPipPip
  • 152 Сообщений:

Отправлено 19 Nov 2007 - 12:27

Народ помогите - как и что дописать в исходном скрипте BATH RENDER, так чтобы при прощете прописывались маркера эпизодов. Особо нужно для полноценного отдыха при пакетном просчете больших проектов для DVD.
Заранее спасибо :beer:

Хочу дополнить: Когда происходит BATCH RENDERING то исходный файл сохраняется в определенном формате: название файла_кодес_(0).mpg Меняются только числа 0, 1, и так далее. Нельзя ли сделать так чтобы выходной файл имел формат типа: название региона.mpg? Наверняка можно. Помогите, если это возможно. СПАСИБО

Долго собирался, но руки не дошли все привести к красивому виду, очередной запрос - в общем - выкладываю.

http://exed.info/pro...S_exed.info.zip

Разархивировать в папку C:\Program Files\Sony\Vegas 7.0\Script Menu\
Все не проверял, но по идеи все скрипты должны работать под 7 версией.

AlexSidorov, Batch Render reg_names.cs смотри во этот скрипт.
Я для своих нужд делал именование файлеков по маркерам, ибо регионами неудобно. Ставим первый маркер - даем име имя, ставим второй и т.д.
К сожалению времени на изменения/исправления у меня сейчас нет.

Будут вопросы, прошу в личку - на форум времени тоже нет.

#10 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 19 Nov 2007 - 12:52

Обновился комплект Deshaker для стабилизации изображения в Вегас от John Meyer: http://www.lawrence-...as/Deshaker.exe
и
появился скрипт для переноса проекта из Вегаса в ААЕ: http://www.storitel....litter 0.6V.zip
В начале скрипта - описание. Работает в два прохода. Вначале через меню "Save as..." создается EDL-файл с расширением .txt, затем скрипт запускается из ААЕ, ему указывается EDL созданный из Вегаса, повторным запуском скрипта из ААЕ создается проект для работы в Афтере. Просьба, поскольку сам не могу проверить работоспособность скрипта, т.к. с Афтером не работаю, те кто его использует потестите. Если что - не то, исправлю пост, дабы не вводить в заблуждение народ.

#11 soundman

soundman

    А что такое камера, NLE?

  • Читатели
  • Pip
  • 2 Сообщений:
  • место работы:

Отправлено 26 Nov 2007 - 00:06

...как и что дописать в исходном скрипте BATH RENDER, так чтобы при прощете прописывались маркера эпизодов, особо нужно для полноценного отдыха при пакетном просчете больших проектов для DVD...

проблема решена но не правкой скрипта в вегасе ( в самом вегасе он какой то кастрированный(( ), а установкой сриптового плюга "Veggie Toolkit" http://www.peachrock.com/ , делает все что нужно для BATH RENDER., и комп выключит если надо ))
:drinks: пользую больше месяца балдю поставил на просчет и баиньки

Сообщение отредактировано GS1966: 27 Jan 2008 - 17:11


#12 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 11 Dec 2007 - 00:39

Обновился Project Inspector для VP8 от Эдварда Троксела. Работает только с версией 8.0а!
Новая версия здесь.

Сообщение отредактировано romamos: 11 Dec 2007 - 00:44


#13 kinooperator

kinooperator

    А что такое камера, NLE?

  • Читатели
  • Pip
  • 1 Сообщений:
  • место работы:

Отправлено 24 Dec 2007 - 16:17

Здравствуйте все! Есть такая проблема: при раскладке стерео звука на 6 каналов(5.1) приходится совершать одни и те-же действия по много раз. Хотелось бы автоматизировать этот процесс путём скрипта, но я не умею писать скрипты, а учиться долго. Может у кого-нибудь есть такой скрипт, или может написать. Это нужно всем.

#14 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 27 Dec 2007 - 14:39

Подскажите пожалуйста описание работы Deshaker или ссылку...


Описание работы Deshaker здесь. В экзешнике - комплект из VirtualDub, плагина Deshaker и скрипта для использования его в Вегасе. Описание способа инсталяции и работы скрипта в файле Readme.
С появлением адаптированного под Вегас плагина стабилизации Mercali от компании ProDAD актуальность этого комплекта несколько понизилась, но главное его преимущество осталось. В отличие от Mercali он - бесплатный. :)

есть видео с концерта в темном зале. практически ничего не видно, но сцена часто озаряется вспышками фотоаппаратов.
хочу написать скрипт, чтоб при нахождении яркого кадра, этот кадр растягивался еще на несколько секунд и угасал...
меня интересует возможно ли программное определение яркости кадра и как это сделать?
или может существуют еще какие-нибудь решения?


Оптический анализатор видео есть в утилите HandySaw. О том, как он реализован лучше всего спросить у самого автора:
E-mail: davisr@davisr.com
Или ICQ: 66625512

#15 AntonChik

AntonChik

    А что такое камера, NLE?

  • Участники
  • Pip
  • 18 Сообщений:
  • место работы:

Отправлено 27 Dec 2007 - 16:52

2romamos: спасибо! для начала пойдет.

#16 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 12 Jan 2008 - 22:53

Обновился Excalibur for Vegas Pro 8.0a до версии v.6.0 от Эдварда Троксела: http://www.jetdv.com...alibur/home.php
Интегрируется в Вегас 8.0а через механизм Custom Commands и работает напрямую с time-line. В состав Excalibur 6 входит и обновленная версия Project Inspector, который теперь умеет находить дырки между event-ами (short gaps) и "наложенные друг на друга" (overlapped) event-ы. :good:
Новый плагин - платный. Для пробы можно скачать 15-ти дневную триальную версию.

#17 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 23 Jan 2008 - 19:14

У кого нибудь отображается крипты в Вегас 8,вернее значки на панели от скриптов которые добавляем в Вегас? в частности альфа скрипта и нормалайзер олл ?!


См. пост 1 в теме.

#18 Лёня

Лёня

    А что такое камера, NLE?

  • Участники
  • Pip
  • 24 Сообщений:
  • место работы:

Отправлено 24 Jan 2008 - 15:46

См. пост 1 в теме.

Спасибо,но дело в том,что определённым набором я пользуюсь с 6й версии и всё это время они работали т.е. были видны на тулбаре,а в 8ке отображаются просто значками скриптов а не иконками...

#19 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 24 Jan 2008 - 19:00

Это уже обсуждалось в одной из тем, но, похоже, стоит повториться.
Иконки скриптов в Vegas Pro 8 должны быть 32 bit цвет и размер строго 16х16 пикс. Предыдущие версии Вегаса в т.ч. понимали иконки размером 16х32 пикс, при переносе скриптов в новую папку VP8 их "не видит".
Подсказка: если при наведении мыша на иконку в Вегас 7 и ниже она меняла цвет, или картинку, то это, наверняка - 16х32.
У таких иконок надо просто отрезать половину и пересохранить ее как *.png 16x16 32 bit.

#20 Лёня

Лёня

    А что такое камера, NLE?

  • Участники
  • Pip
  • 24 Сообщений:
  • место работы:

Отправлено 24 Jan 2008 - 19:43

К сожалению нет кнопки спасибо,поэтому позвольте выразить благодарность таким образом.Большое спасибо за как всегда полезные,дельные и без снобизма советы и пояснения...
PS прошу прощения у модераторов за оффтоп,не удержался...

Сообщение отредактировано Лёня: 24 Jan 2008 - 19:43


#21 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 10 Feb 2008 - 20:22

Скрипт DeleteEmptySpaceBetweenEvents удаляет пустые места между event-ами на выделенных треках.

/** 
* Program: 
* Description: This script will Delete Empty Space Between Events In Selected Tracks
* Author: Philip
* 
* Date: August 31, 2003 
**/ 

import Sony.Vegas; 
import System.Windows.Forms;
import Microsoft.Win32;

//time intervals for split events.

try
{


// step through all selected video events:
var FirstTrack : Track = Vegas.Project.Tracks.Item(0);

// step through all selected video events:
for (var track in Vegas.Project.Tracks) {
if( !track.Selected) continue;
var tracktime = new Timecode(0);
for (var evnt in track.Events) {
evnt.AdjustStartLength(tracktime,evnt.Length,true);
tracktime = tracktime + evnt.Length;
}
}
}

catch (errorMsg)
{
MessageBox.Show(errorMsg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}

Комплект: скрипт с иконкой лежит здесь.

#22 cail

cail

    А что такое камера, NLE?

  • Читатели
  • Pip
  • 5 Сообщений:

Отправлено 13 Feb 2008 - 11:56

Подумал может кому пригодится тулза - мне сильно помогает с вегасом.

Изначально в восьмом вегасе столкнулся с дикими тормозами и глюками при работе с большим количеством сцен в HDV (захватываю HDVSplit-ом с разбиением).
Из за стиля сьемок обычное дело - импорт сотни мелких m2t файлов.

Помимо того что сам импорт занимает уйму времени, вегас после этого просто умирает (при 2 гигах памяти у меня).

Немного покопавшись, дописал ковырялку m2t файлов - вытаскиваю таймкод оттуда и по нему в вегасе разбиваю один большой m2t кусок на кучу сцен.
Фактически аналог HandySaw DS - но для HDV.

Теперь вегасу больше 250 метров памяти еще ни разу не понадобилось ;)

http://cail-home.nm....ter-mod-0.1.zip
Работает видимо только на кенонах (у меня десятка) и пока в полу-ручном режиме.

Юзать можно в следующем виде:
* demuxd.exe yourfile.m2t > yourfile.mt2.idx
* DemuxdSplitter.cs положить в папку "Script Menu" у вегаса.
* Встать на видеодорожку куда добавлять клипы.
* Вызвать скрипт из менюшки.
* Указать ему на сгенерированный idx файло.

Должен насоздавать клипов.
Бывает что режет с ошибкой - с константным сдвигом на несколько фреймов.
Тогда ручками посчитать сколько фреймов перебирает, и вписать это число в idx файло:
<offset value="15"/>
например. Удалить все с дорожек и еще раз заимпортить idx файл.

#23 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 15 Feb 2008 - 15:24

Это не совсем для Vegas, а, скорее для всех. Утилита MediaInfo показывает всю информацию о видео- и аудио-файлах (кодеки, потоки, размеры, продолжительность и т.д.)
http://mediainfo.sourceforge.net/ru
Есть вариант с инсталяцией, и без оной (portable) + русский интерфейс.

#24 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 23 Mar 2008 - 11:35

Barronizer_10
Скрипт для "шинковки" even-ов в Вегасе (работает во всех версиях, включая VP8).
Режет выделенные even-ты на части с последующей сборкой "в кучку", или без нее.

В начале кода есть описание работы скрипта и его параметров. Для тех, кто не знает английского - краткая инструкция.

После запуска появляется окно управления параметрами нарезки.
Изображение
"Number of Jumps" - количество "отрезов"
"Jump Length" - длина "отреза"
"Inter-Jump Length" - промежуток между "отрезами"

Внимание! Параметры - в кадрах.

В нижней части опция "сборки":
"Don't" - без сборки.
"Front" - собрать все к первому "отрезу".
"Back" - собрать все к последнему "отрезу".
Нажав кнопку Barronize! получаем результат.
Изображение

Архив со скриптом и иконкой лежит здесь.

/*
 * Copyright (c) 2004, Folding Rain Filmworks Inc.
 *
 * author: Joe Howes (joeh@guild1.com)
 *
 * I wrote this script while working on the making-of documentary
 * for The Libertine.  I was working with the two geniunses behind
 * the design of all the special effects for the Hallmark
 * mini-series "Dreamkeeper".  The director of that film is an
 * underrated and overawesome guy named Steve Barron, who pioneered
 * the look of about 90% of the television you saw in the nineties.
 * He was the first director to embrace speeding through a scene by
 * jump-cutting through hundreds of frames in a very short time,
 * resulting in an ultra-cool stutter effect that rocks ass.
 *
 * Anyway, Steve is a great guy, a super cool dude, and his work
 * quite frankly gives me a boner for filmmaking like no one else.
 *
 * http://www.imdb.com/name/nm0006625/
 *
 * USAGE:
 * Select one and only one video event.
 *
 *	Number of Jumps:	The number of jump cuts you want to end up with.
 *	Jump Length:		The length (in frames) of the visible jumps.
 *	Inter-Jump Length:  The length (in frames) of the bits between the
 *						  visible frames that will be removed.
 *
 *	Gather:	If "Don't", all the jumps will be left in place.
 *				If "Front", the jumps will be gathered together at the start
 *					point of the original event.
 *				If "Back", the jumps will be gathered together at the end
 *					of the cutting area, bumped right up against the remaining
 *					event.
 *
 * After application, the jump cuts will be bumped right up against
 * the remaning portion of video.
 *
 * v1.1: Aug. 22, 2004
 */

import System;
import System.Collections;
import System.Text;
import System.IO;
import System.Drawing;
import System.Windows.Forms;
import Sony.Vegas;


/**
 * Just get the selected event (there can be only one) and Barronize it.
 */
try {

	var dlog = new BarronizerDialog();
	var done:Boolean = false;

	while (!done) {

		if (DialogResult.OK == dlog.ShowDialog()) {

			var targetEvent:TrackEvent = getSelectedEvent();

			if (targetEvent != null) {

				// Validate input
				var numJumps : Number;
				if (dlog.numJumps.Text == "*") {
					numJumps = new Number(-1);
				} else {
					numJumps = new Number(dlog.numJumps.Text);
				}
				//MessageBox.Show("JOE: " + numJumps, "JOE");
				/*if (numJumps.isNaN()) {
					MessageBox.Show("Number of jumps must be either '*' or a number.", "WARNING");
				}*/

				// Put together the gather option
				var gatherOption = "NO";
				if (dlog.gatherFrontRadio.Checked) {
					gatherOption = "FRONT";
				} else if (dlog.gatherBackRadio.Checked) {
					gatherOption = "BACK";
				}

				// Put together the fade option
				var fadeOption = "NO";
				if (dlog.fadeInRadio.Checked) {
					fadeOption = "IN";
				} else if (dlog.fadeOutRadio.Checked) {
					fadeOption = "OUT";
				}

				// Barronize!
				done = barronize(targetEvent,
									numJumps,
									dlog.jumpLen.Text,
									dlog.interJumpLen.Text,
									gatherOption,
									fadeOption);
			}
		} else {
			done = true;
		}
	}

	Vegas.UpdateUI();
}
catch (e) {
	MessageBox.Show(e, "WARNING");
}


/**
 * Jump-cut through a number of frames to produce a cool skipping effect.
 */
function barronize(evt:TrackEvent,
					numJumps,
					jumpLen,
					interJumpLen,
					gatherOption,
					fadeOption) {

	var theTrack : Track;			// The track this is all happening on
	var theGroup : TrackEventGroup;	// The group this track belongs to
	var node : TrackEvent;			// A stutter node
	var internode : TrackEvent;		// An internode
	var nodeTC : Timecode;			// Node length in frames converted to timecode
	var internodeTC : Timecode;		// Internode length in frames converted to timecode
	var originalStart : Timecode;	// Original starting timecode of the event
	var effectLen : Timecode;
	var stutterNodeList : Array;
	var tcCounter : Timecode;
	var index = 0;



	// Some init
	theTrack = evt.Track;
	theGroup = evt.Group;
	nodeTC = new Timecode("00:00:00," + jumpLen);
	internodeTC = new Timecode("00:00:00," + interJumpLen);
	originalStart = evt.Start;


	// If numJumps is -1, just make as many jumps as possible in the event
	// given the jumpLen and interJumpLen
	if (numJumps == -1) {
		var evtFrames = evt.Length.FrameCount;
		var divisor = new Number(jumpLen) + new Number(interJumpLen);
		numJumps = Math.floor(new Number(evtFrames / divisor));
	}


	// Figure out the amount of time the stutter effect will consume of the event
	effectLen = new Timecode("00:00:00,00");

	for (var i = 0; i < numJumps; i++) {
		effectLen += nodeTC + internodeTC;
	}

	// If there's not enough event, let 'em know and bail
	if (effectLen > evt.Length) {
		MessageBox.Show("Event not long enough.", "WARNING");
		return false;
	}

	stutterNodeList = new Array();
	node = evt;
	stutterNodeList[index++] = node;

	// -- SPLIT --
	for (var i = 0; i < numJumps; i++) {

		// Make a node (no, this is not reversed, we are making a NODE)
		internode = node.Split(nodeTC);

		// Make an internode (no, this is not reversed, we are making an INTERNODE)
		node = internode.Split(internodeTC);

		// If the node is not the final leftover chunk, add it to the list of
		// stutter nodes that need to be bumped up against the leftover event
		if (i < (numJumps - 1)) {
			stutterNodeList[index++] = node;
		}

		// Remove the internode
		theTrack.Events.Remove(internode);
	}


	// -- GATHER --
	// If there's no gathering to be done, skip it
	if (gatherOption != "NO") {

		// Default to FRONT
		tcCounter = originalStart;

		if (gatherOption == "BACK") {

			// Now we move all the stutter nodes up against the leftover event
			tcCounter = node.Start;

			// Count back nodeTC frames for every stutter node
			for (var i = 0; i < numJumps; i++) {
				tcCounter = tcCounter - nodeTC;
			}

		}

		// Adjust them all
		for (var i = 0; i < stutterNodeList.length; i++) {
			node = stutterNodeList[i];
			/*if (groupBaseList.Contains(node)) {
				theGroup.Remove(node);
			}*/
			node.AdjustStartLength(tcCounter, nodeTC, true);
			tcCounter += nodeTC;
		}

	}


	// -- FADE -- not implemented yet
	// If there's no fading to be done, skip it
	if (fadeOption != "NO") {
	}

	return true;
}


/**
 * Function: getSelectedEvent()
 *
 * Find the selected video event while making sure that the only event selected
 * in the entire project is a video event, and there is only one.
 */
function getSelectedEvent() {

	var done:Boolean = false;
	var targetEvent:TrackEvent = null;
	var selectCount = 0;

	// Search all groups
	for (var track in Vegas.Project.Tracks) {

		for (var evnt in track.Events) {
			if (evnt.Selected) {
				targetEvent = evnt;
				selectCount++;
			}
		}

	}

	if (selectCount < 0) {
		throw("No video events selected.");
	}

	if (selectCount > 1) {
		throw("More than one event selected.  Select one and only one video event.");
	}

	if (targetEvent == null || targetEvent.IsAudio()) {
		throw("No video events selected.");
	}

	return targetEvent;
}


/**
 * My homage to Steve...his very own dialog box.
 */
class BarronizerDialog extends Form {

	var numJumps : TextBox;
	var jumpLen : TextBox;
	var interJumpLen : TextBox;
	var barronizeButton : Button;
	var cancelButton : Button;
	var cuttingParamGroup : GroupBox;
	var gatherNoRadio : RadioButton;
	var gatherFrontRadio : RadioButton;
	var gatherBackRadio : RadioButton;
	var gatherParamGroup : GroupBox;
	var fadeNoRadio : RadioButton;
	var fadeInRadio : RadioButton;
	var fadeOutRadio : RadioButton;
	var fadeParamGroup : GroupBox;


	function BarronizerDialog() {

		this.Text = "Barronizer";
		this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
		this.MaximizeBox = false;
		this.StartPosition = FormStartPosition.CenterScreen;

		this.numJumps = new TextBox();
		this.jumpLen = new TextBox();
		this.interJumpLen = new TextBox();
		this.Width = 237;
		this.Height = 219;


		// numJumps
		var numJumpsLabel:Label = new Label();
		numJumpsLabel.Location = new System.Drawing.Point(8, 25);
		numJumpsLabel.Name = "numJumpsLabel";
		numJumpsLabel.Size = new System.Drawing.Size(100, 16);
		numJumpsLabel.TabIndex = 2;
		numJumpsLabel.Text = "Number of Jumps:";

		numJumps.Location = new System.Drawing.Point(110, 22);
		numJumps.Name = "numJumps";
		numJumps.Size = new System.Drawing.Size(80, 20);
		numJumps.TabIndex = 1;
		numJumps.Text = "*";


		// jumpLen
		var jumpLenLabel:Label = new Label();
		jumpLenLabel.Location = new System.Drawing.Point(8, 50);
		jumpLenLabel.Name = "jumpLenLabel";
		jumpLenLabel.Size = new System.Drawing.Size(100, 16);
		jumpLenLabel.TabIndex = 2;
		jumpLenLabel.Text = "Jump Length:";

		jumpLen.Location = new System.Drawing.Point(110, 47);
		jumpLen.Name = "jumpLen";
		jumpLen.Size = new System.Drawing.Size(80, 20);
		jumpLen.TabIndex = 1;
		jumpLen.Text = "2";


		// interJumpLen
		var interJumpLenLabel:Label = new Label();
		interJumpLenLabel.Location = new System.Drawing.Point(8, 75);
		interJumpLenLabel.Name = "interJumpLenLabel";
		interJumpLenLabel.Size = new System.Drawing.Size(100, 16);
		interJumpLenLabel.TabIndex = 2;
		interJumpLenLabel.Text = "Inter-Jump Length:";

		interJumpLen.Location = new System.Drawing.Point(110, 72);
		interJumpLen.Name = "interJumpLen";
		interJumpLen.Size = new System.Drawing.Size(80, 20);
		interJumpLen.TabIndex = 1;
		interJumpLen.Text = "12";


		// cuttingParamGroup
		cuttingParamGroup = new GroupBox();
		cuttingParamGroup.Controls.Add(numJumpsLabel);
		cuttingParamGroup.Controls.Add(numJumps);
		cuttingParamGroup.Controls.Add(jumpLenLabel);
		cuttingParamGroup.Controls.Add(jumpLen);
		cuttingParamGroup.Controls.Add(interJumpLenLabel);
		cuttingParamGroup.Controls.Add(interJumpLen);
		cuttingParamGroup.Location = new System.Drawing.Point(8, 8);
		cuttingParamGroup.Name = "cuttingParamGroup";
		cuttingParamGroup.Size = new System.Drawing.Size(216, 100);
		cuttingParamGroup.TabIndex = 4;
		cuttingParamGroup.TabStop = false;
		cuttingParamGroup.Text = "Cutting Options";

		this.Controls.Add(cuttingParamGroup);


		// Gathering
		gatherNoRadio = new RadioButton();
		gatherNoRadio.Location = new System.Drawing.Point(10, 20);
		gatherNoRadio.Size = new System.Drawing.Size(50, 16);
		gatherNoRadio.Name = "gatherNoRadio";
		gatherNoRadio.TabIndex = 1;
		gatherNoRadio.Text = "Don't";

		gatherFrontRadio = new RadioButton();
		gatherFrontRadio.Location = new System.Drawing.Point(85, 20);
		gatherFrontRadio.Size = new System.Drawing.Size(50, 16);
		gatherFrontRadio.Name = "gatherFrontRadio";
		gatherFrontRadio.TabIndex = 1;
		gatherFrontRadio.Text = "Front";

		gatherBackRadio = new RadioButton();
		gatherBackRadio.Location = new System.Drawing.Point(160, 20);
		gatherBackRadio.Size = new System.Drawing.Size(50, 16);
		gatherBackRadio.Name = "gatherBackRadio";
		gatherBackRadio.TabIndex = 1;
		gatherBackRadio.Text = "Back";
		gatherBackRadio.Checked = true;


		// Gathering group
		gatherParamGroup = new GroupBox();
		gatherParamGroup.Controls.Add(gatherNoRadio);
		gatherParamGroup.Controls.Add(gatherFrontRadio);
		gatherParamGroup.Controls.Add(gatherBackRadio);
		gatherParamGroup.Location = new System.Drawing.Point(8, 115);
		gatherParamGroup.Name = "gatherParamGroup";
		gatherParamGroup.Size = new System.Drawing.Size(216, 45);
		gatherParamGroup.TabIndex = 4;
		gatherParamGroup.TabStop = false;
		gatherParamGroup.Text = "Gathering Options";

		this.Controls.Add(gatherParamGroup);


		// Fading
		fadeNoRadio = new RadioButton();
		fadeNoRadio.Location = new System.Drawing.Point(10, 20);
		fadeNoRadio.Size = new System.Drawing.Size(50, 16);
		fadeNoRadio.Name = "fadeNoRadio";
		fadeNoRadio.TabIndex = 1;
		fadeNoRadio.Text = "Don't";
		fadeNoRadio.Checked = true;

		fadeInRadio = new RadioButton();
		fadeInRadio.Location = new System.Drawing.Point(85, 20);
		fadeInRadio.Size = new System.Drawing.Size(50, 16);
		fadeInRadio.Name = "fadeInRadio";
		fadeInRadio.TabIndex = 1;
		fadeInRadio.Text = "In";

		fadeOutRadio = new RadioButton();
		fadeOutRadio.Location = new System.Drawing.Point(160, 20);
		fadeOutRadio.Size = new System.Drawing.Size(50, 16);
		fadeOutRadio.Name = "fadeOutRadio";
		fadeOutRadio.TabIndex = 1;
		fadeOutRadio.Text = "Out";


		// Fading group
		fadeParamGroup = new GroupBox();
		fadeParamGroup.Controls.Add(fadeNoRadio);
		fadeParamGroup.Controls.Add(fadeInRadio);
		fadeParamGroup.Controls.Add(fadeOutRadio);
		fadeParamGroup.Location = new System.Drawing.Point(8, 170);
		fadeParamGroup.Name = "fadeParamGroup";
		fadeParamGroup.Size = new System.Drawing.Size(216, 45);
		fadeParamGroup.TabIndex = 4;
		fadeParamGroup.TabStop = false;
		fadeParamGroup.Text = "Fade Options";

		//this.Controls.Add(fadeParamGroup);


		// Buttons
		barronizeButton = new Button();
		barronizeButton.DialogResult = System.Windows.Forms.DialogResult.OK;
		barronizeButton.Text = "Barronize!";
		barronizeButton.Left = 65;
		barronizeButton.Top = 165;
		AcceptButton = barronizeButton;
		Controls.Add(barronizeButton);

		cancelButton = new Button();
		cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
		cancelButton.Text = "Cancel";
		cancelButton.Left = 148;
		cancelButton.Top = 165;
		CancelButton = cancelButton;
		Controls.Add(cancelButton);

	}

}

Успехов всем!

Сообщение отредактировано romamos: 23 Mar 2008 - 11:38


#25 Лёня

Лёня

    А что такое камера, NLE?

  • Участники
  • Pip
  • 24 Сообщений:
  • место работы:

Отправлено 23 Mar 2008 - 13:57

Barronizer_10
Скрипт для "шинковки" ...


Спасибо!!! (кнопки благодарности нет)

#26 Wanderr

Wanderr

    Подержал камеру в руках

  • Участники
  • PipPip
  • 45 Сообщений:

Отправлено 29 Mar 2008 - 21:38

Подскажите, есть ли хорошие способы пришурупить к Вегасу фильтры Даба, в частности ACOBW(баланс белого) и Deshaker.vdf (стабилизатор). Для дишейкера важны оба прохода. Чтобы как в Меркали.

#27 GS1966

GS1966

    Работал на ТВ...

  • Писатели
  • PipPipPipPipPipPip
  • 645 Сообщений:

Отправлено 29 Mar 2008 - 21:54

DebugMode PluginPac Adapter (free)

#28 Wanderr

Wanderr

    Подержал камеру в руках

  • Участники
  • PipPip
  • 45 Сообщений:

Отправлено 30 Mar 2008 - 06:19

Так пробовал, но дишейкер, при его добавлении на евент, открывает первый проход, а в окне предосмотра всё чёрнеет и виснет. Правда ещё вместо номероов кадров в превью появляется цифра и бегушие от неё точки. Нужно ждать-это первый проход? Или это глюк? А Столяровские фильтры через адаптер не видны. Может есть альтернатива фильтру Столярова ACOWB, для автовыравнивания баланса.?

#29 GS1966

GS1966

    Работал на ТВ...

  • Писатели
  • PipPipPipPipPipPip
  • 645 Сообщений:

Отправлено 30 Mar 2008 - 09:35

Wanderr
Встроенных возможностей - валОм - Sony Color Balance, Color Corrector, Color Corrector (Secondary), Color Curves, Levels + измерительные инструменты окна Video Scopes + контроль результата на внешнем ТВ через 1394...

#30 Wanderr

Wanderr

    Подержал камеру в руках

  • Участники
  • PipPip
  • 45 Сообщений:

Отправлено 30 Mar 2008 - 10:54

Да, конечно же, надо учиться пользоваться хорошим инструментом, а не автоматикой. А как насчёт вопроса о дишейкере? Дишейкер мне как то больше по душе, чем Mercali или BCC в автере.

#31 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 30 Mar 2008 - 18:03

Wanderr, а чё :blink: #10, #14 в этой же теме в лом почитать? :rtfm:
Не обижайтесь, но если после этого ещё будут вопросы - спрашивайте. Подскажем.

Сообщение отредактировано romamos: 30 Mar 2008 - 18:06


#32 Wanderr

Wanderr

    Подержал камеру в руках

  • Участники
  • PipPip
  • 45 Сообщений:

Отправлено 30 Mar 2008 - 20:17

Описание работы Deshaker здесь. В экзешнике - комплект из VirtualDub, плагина Deshaker и скрипта для использования его в Вегасе. Описание способа инсталяции и работы скрипта в файле Readme.

Пробую, пока толком не разобрался. После запуска скрипта Вегас открывает Даба и фильтрует, а дальше ошибка какая то, пока не понял, что то про местоположения файла, исходного, может заменить не может, да и не стоит поидее, где нужно указать, куда сохранять? Покопаюсь, может разберусь. Со скриптами ещё ни разу не мороковал. Спасибо.

#33 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 30 Mar 2008 - 21:45

Насколько я помню, пакет со скриптом надо устанавливать в корень c:\ , в той же папке c:\deshaker будут сохраняться стабилизированные фрагменты (не очень удобно, но автор где-то отвечал, что по другому пока не получается). После этого скопировать сам скрипт с иконкой в любую из трех скриптовых папок (если речь идет о VP8), если Vegas7, то в C:\Program Files\Sony\Vegas 7.0\Script Menu\. Дальше все должно работать.

ЗЫ Стабилизированные файлы сохраняются в некомпресс. ;)

#34 GS1966

GS1966

    Работал на ТВ...

  • Писатели
  • PipPipPipPipPipPip
  • 645 Сообщений:

Отправлено 31 Mar 2008 - 07:31

Где-то попадалась информация, что не все Дабовские плаги работают в Вегас, а только однопроходные.
Однозначно утверждать не могу - пользовался всего пару раз ...


Спасибо!!! (кнопки благодарности нет)


Да, привычной кнопки "Спасибо" нет. Но из-за этого загружать серьёзную тему благодарностями не стоит. Если Вы обратили внимание, такие посты через какое-то время удаляются (как не содержащие полезной информации).
Очень хочется - напишите автору в ПМ.

Сообщение отредактировано GS1966: 31 Mar 2008 - 07:47


#35 Wanderr

Wanderr

    Подержал камеру в руках

  • Участники
  • PipPip
  • 45 Сообщений:

Отправлено 31 Mar 2008 - 17:40

Как понял, прохода делает оба, но с предустановками Fixed zoom. Настраивать пробовал, никак. Всё заработало, как скрипт скопировал в Script menu Вегаса. Просчитанный файл кидает в созданную (не мною) папку Дишейке, на тот же диск, на котором находится временная папка. Вообщем работает втрое быстрее, чем из даба, кажись, но как настройки можно регулировать?Скорее всего настройки стоят слабоватые, качество не очень потому что.

#36 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 31 Mar 2008 - 21:11

В начале каждого скрипта уважающий себя автор, как правило, помещает описание его работы и настроек. То же самое есть и в deshake.js. В данном случае это все еще и продублировано в файле Readme, который экзешник разворачивает из архива в папку.

"Modifications:
==============
If you want to change the compression used by VirtualDub (i.e., the codec it uses to render the deshaken video), you have to manually modify the
line down below where the "VirtualDubCompressor" variable is defined. The default setting defined in this script will use no compression.
I have included two other settings (which are commented out) for the MainConcept DV codec and for the Cineform HD codec.

If you want to use another codec, open VirtualDub, change the compression using Video -> Compression. Note the FOURCC code. Put that code between
the quotes in the variable definition for VirtualDubCompressor.

Finally, if you want to change the Deshaker settings, you will need to modify the "OverrideDeshakerParams" variable below. The simplest way to get what you want is to open VirtualDub, load Deshaker, make the settings you wish, and then Save Processing Settings, open the VCF file (as explained above) and look for the long string for the video.filters parameter. Copy that string below. "


Wanderr, ваш абзац - третий. Как менять строки в скриптах описано в посте #1.

Сообщение отредактировано romamos: 31 Mar 2008 - 21:16


#37 Shax

Shax

    Подержал камеру в руках

  • Участники
  • PipPip
  • 30 Сообщений:

Отправлено 02 May 2008 - 09:25

Подскажите, утилита Vegbun копирует фалы в одну директорию или переносит? т.е. файлы которые были использования в проекте остаются на своих местах и создаётся их копия или файлы просто переносятся?

#38 moros

moros

    А что такое камера, NLE?

  • Читатели
  • Pip
  • 2 Сообщений:

Отправлено 05 May 2008 - 07:29

в vegas8pro,не работают многие скрипты, писали бы, для какой версии скрипт! Vegas Quake для восьмой версии есть у кого? у меня какой то лежит,но выдаёт ошибку...с форматом рисунка,там всё нормально 16на16,проблема в другом.

#39 moros

moros

    А что такое камера, NLE?

  • Читатели
  • Pip
  • 2 Сообщений:

Отправлено 12 May 2008 - 17:05

может проблема в висте64? может фремиворк какой другой установить, у меня 64битный 3.5 стотит. может ссылку кто даст где какой другой вегас квейк качнуть... надо..как самому эту тряску сделать в вегасе не знаю.

#40 NetName

NetName

    А что такое камера, NLE?

  • Читатели
  • Pip
  • 6 Сообщений:

Отправлено 14 May 2008 - 19:49

Проблема: В UltimateS3 3.0.3 была очень полезная фишка на вкладке Editing tools - Adjust transitions length. Т.е. если кинуть на таймлайн кучу видеофрагментов, то между ними автоматом образуются стандартные переходы заданной длины. Но вот в версиях для Vegas 8 - UltimateS3 3.1.0 и UltimateS4 4.0.1 эта функция не работает. То есть она не создает переходы, а только регулирует длину уже существующих. Очень теперь напряжно, т.к. активно использовал данную фишку. Может кто подскажет есть ли подобный скрипт или утилита для vegas 8?

#41 mr.Orange

mr.Orange

    А что такое камера, NLE?

  • Читатели
  • Pip
  • 1 Сообщений:

Отправлено 15 May 2008 - 16:34

Друзья подскажите! а Дишейкер ставится только в Вегас начиная с 7 ??
в Вегас 6 никак нельзя вставить ? )))

#42 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 06 Jul 2008 - 22:18

Лично я не пробовал, в силу отсутствия Вегас 6, но, кажись, нет.

#43 SonyDick

SonyDick

    А что такое камера, NLE?

  • Читатели
  • Pip
  • 2 Сообщений:

Отправлено 01 Aug 2008 - 10:50

Ищу два простеньких скрипта, если у кого есть - отзовитесь.

1. Применение эффекта Mask Generator - Luminance Mask для эвента.
2. Изменение Pan/Crop - Maintain Aspect Ratio c Yes на No для эвента.

Это все и еще один скрипт, который уже есть (включение альфы для эвента) нужно для того, чтоб быстро ставить переходы Swipes c двойной альфой, так что думаю помощь будет полезна не только мне.

Заранее спасибо.

#44 SonyDick

SonyDick

    А что такое камера, NLE?

  • Читатели
  • Pip
  • 2 Сообщений:

Отправлено 01 Aug 2008 - 12:19

import Sony.Vegas;

for (var currentTrack : Track in Vegas.Project.Tracks)
{
if (currentTrack.IsVideo() == true)
{
for (var currentEvent : VideoEvent in currentTrack.Events)
{
if (currentEvent.Selected == true)
{
currentEvent.MaintainAspectRatio = false;
}
}
}
}


Вот сделал второй скрипт, Изменение Pan/Crop - Maintain Aspect Ratio c Yes на No для эвента (с помощью President)
Помогите с первым скриптом, плз, может у кого есть подобный.

#45 greenmar

greenmar

    Дали нажать на красную кнопку :)

  • Участники
  • PipPipPip
  • 55 Сообщений:
  • место работы:

Отправлено 17 Sep 2008 - 10:16

Может кто поможет, - необходим скрипт изменяющий параметр "frame rate" каждого видеофрагмента (или эвента как правильно сказать) так, чтобы в целом выходило 24 fps. Допустим при параметре Playback rate равном 1,000 - я изменяю параметр "frame rate" до 0,960 и получается 24fps. Соответственно при увеличении Playback rate до, скажем, 2,000 ставлю frame rate 480. Представьте сколько лишнего времени! Формат на выходе мне нужен PAL DV. Конечно можно просчитать проект и в PAL DV, с частотой 25fps, а затем перепросчитать с измененным frame rate. Но это тоже немало времени. Соответственно мне нужно написать скрипт и мне кажется что такой скрипт есть. Может кто помочь? Если уж нет, буду изучать тогда литературу и учиться писать скрипты.
Зараннее спасибо.

#46 romamos

romamos

    Провидеолюбитель

  • Писатели
  • PipPipPipPip
  • 171 Сообщений:

Отправлено 19 Sep 2008 - 22:34

С ходу точно не вспомню, но кажись есть такая фича в Excalibur Эдварда Троксела. Ссылка на него есть в этой теме. Кроме этого рекомендую пошуршать в свободных скриптах на его форуме: http://www.jetdv.com...forum/index.php

#47 alex71radar

alex71radar

    А что такое камера, NLE?

  • Читатели
  • Pip
  • 8 Сообщений:

Отправлено 15 Nov 2008 - 19:24

Огромная просьба,необходимо два скрипта (я думаю многие ко мне присоединятся).Первый,чтобы удалять с тайм-лайна пустые эвенты (файлы я удаляю с винта,в Вегасе остаются пустые эвенты).
Второй: необходимо удалять из Project Media,но не стирать с винта клипы,которые не используются на тайм-лайне.Необходимость в скриптах огромная.

#48 altarvic

altarvic

    Есть камера, комп, а где поля ?

  • Участники
  • PipPipPipPip
  • 103 Сообщений:

Отправлено 17 Nov 2008 - 08:31

Это делается достаточно легко и без скриптов
1) в окне Edit Details выделяем все строки с пустыми эвентами (колонка number of takes = 0) и удаляем их (Del)
2) в Project Media окне нажать "молнию"

#49 alex71radar

alex71radar

    А что такое камера, NLE?

  • Читатели
  • Pip
  • 8 Сообщений:

Отправлено 18 Nov 2008 - 08:19

Спасибо,век живи,век учись.Может поможете решить другую проблему.У меня на разделе винта создана папка,а в ней я создаю папки по датам съёмок.Часто клипы из прошлых дат использую в новом проекте.Места на винте стало мало,купил новый и перенёс всю папку с проектами на новый раздел.Теперь "полный караул",все старые проекты открываются пустые,предлагается найти клипы на новом месте,а у меня в каждом фильме их около двух тысяч,присутствуют и пустые эвенты,я сами эпизоды уже удалил.Кто как поступает в таком случае?Как можно переносить вегасовские проекты?

#50 nGreg

nGreg

    Подержал камеру в руках

  • Участники
  • PipPip
  • 39 Сообщений:

Отправлено 20 Nov 2008 - 11:03

Кто-нибудь может помочь? Необходим скрипт выполняющий следующее:
1. Render to *.mov - все видео дорожки без звука (template имеется)
2. Render to *.wav каждого аудиотрэка по отдельности (3-4 штуки)
Всё в одну папку. Такое в принципе возможно? А то я в скриптах ни бум-бум.


0 человек читают эту тему

0 пользователей, 0 гостей, 0 скрытых пользователей



Рейтинг@Mail.ru