PDA

Просмотр полной версии : Пакетный просчет в Sony Vegas. Часть II.


chainick
24.07.2012, 17:51
Пакетный просчет в Sony Vegas, часть II.
Batch Render + Events


Буду краток.

Статью и скрипт скачать: здесь (http://www.mediafire.com/?y55p45gi973hgjx)

Краткая видео демонстрация работы со скриптом: здесь (http://vimeo.com/46272200)

P.S. Batch Render + Events - доработанная версия скрипта Batch Render, позволяющая работать с фрагментами.

Модератору: Если содержание статьи и манера ее изложения допустима, то html-версию для публикации могу предоставить отдельно.

SnoNIk
27.07.2012, 17:43
Идея супер, вот только как поставить FFmpeg в систему Win7 64 что бы его увидел Вегас 11? Качал здесь (http://www.videohelp.com/tools/ffmpeg)

jurisviii
27.07.2012, 19:15
Предполгапю, что нужно качать от "туда" 64-бит версию :pzl:

SnoNIk
27.07.2012, 21:23
Это само собой, вопрос как ставить :pzl: Там нет exe файла.

jurisviii
27.07.2012, 23:13
ffmpeg.exe там имеется :shok:

SnoNIk
28.07.2012, 00:00
Имеется но это не установочный файл, т.е. к Вегасу как кодек для вывода не привязывается. Точнее я не знаю как привязать что бы он в Batch Render появился как в видео-инструкции.

chainick
29.07.2012, 21:46
ffmpeg.exe - самодостаточнй (т.е. не требующий установки) бинарный файл, использование которого рассчитано исключительно из командной строки. К счастью сожалению у этой "программы" нет оконного интерфейса.

Для того что бы все работало так, как показано в скринкасте, необходимо путь к директории с ffmpeg.exe прописать в системной переменной PATH (об этом, кстати, говорится в статье!).

После перезагрузки обращаться к ffmpeg.exe можно из любого места, т.е, набрав в консоли:
ffmpeg.exe -version
получим что-то вида:
ffmpeg N-36193-gf514695
libavutil 51. 33.100 / 51. 33.100
libavcodec 53. 48.100 / 53. 48.100
libavformat 53. 28.100 / 53. 28.100
libavdevice 53. 4.100 / 53. 4.100
libavfilter 2. 54.100 / 2. 54.100
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 5.100 / 0. 5.100
libpostproc 51. 2.100 / 51. 2.100

Теперь проверим возможность работы с ProRes:
ffmpeg.exe -formats
и если в списке есть нужное упоминание, то все ок:
http://dslrvideo.ru/uploads/images/00/01/55/2011/12/27/253bec.png

Возвращаясь к вопросу, хочу отметить, что для большинства пользователей Sony Vegas, режим Offline Events категорически противопоказан, поскольку лишь единицы знают, что рендеринг возможен и в командной строке тоже.

Vodkomotornik
01.08.2012, 16:57
Небольшой 4 минуты ролик, 5 дорожек, все дороги отключил, оставил только 2 - с видео.
Одну дорогу отрендерил (5 эвентов)
На 50% второй получаю это:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at Sony.Vegas.IMediaCOM.AddToPool(String path, Boolean addToProperBin, UInt32& mediaID, MetaPathType& metaPathType)
at Sony.Vegas.Media..ctor(String path)
at EntryPoint.DoBatchRender(ArrayList selectedTemplates, String basePath, RenderMode renderMode)
at EntryPoint.FromVegas(Vegas vegas)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle._InvokeMethodFast(Objec t target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Sony.Vegas.ScriptHost.ScriptManager.Run(Assembly asm, String className, String methodName)
at Sony.Vegas.ScriptHost.RunScript(Boolean fCompileOnly)

Вин7 х64 Вегас 11 i5 8Гиг оперативы.
Margin Events поставил 25.

Еще не пойму: нахлесты эвентов на ТЛ рендерятся как фейд в черное, а в версии 0.0.4 - нормально.

chainick
01.08.2012, 22:38
Небольшой 4 минуты ролик, 5 дорожек, все дороги отключил, оставил только 2 - с видео.
Одну дорогу отрендерил (5 эвентов)
На 50% второй получаю это:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at Sony.Vegas.IMediaCOM.AddToPool(String path, Boolean addToProperBin, UInt32& mediaID, MetaPathType& metaPathType)
at Sony.Vegas.Media..ctor(String path)
at EntryPoint.DoBatchRender(ArrayList selectedTemplates, String basePath, RenderMode renderMode)
at EntryPoint.FromVegas(Vegas vegas)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle._InvokeMethodFast(Objec t target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Sony.Vegas.ScriptHost.ScriptManager.Run(Assembly asm, String className, String methodName)
at Sony.Vegas.ScriptHost.RunScript(Boolean fCompileOnly)Вин7 х64 Вегас 11 i5 8Гиг оперативы.
Margin Events поставил 25.

У меня 20-тиминутный проект скрипт отработал без ошибок. Поэтому в вашем случае, могу только предполагать, что возникла нехватка памяти (хотя у себя тестировал при 6Гб ОЗУ). Возможно имеет смысл рендерить по частям. В любом случае, ошибка возникла не внутри скрипта, хотя он и мог ее спровоцировать.

Еще не пойму: нахлесты эвентов на ТЛ рендерятся как фейд в черное, а в версии 0.0.4 - нормально.
К моему огромному стыду, после релиза выплыл один неприятный баг, который, вроде бы, уже в 0.0.8-й версии (http://www.mediafire.com/download.php?4sxw423y3336br1) залатан. Пробуйте, только прочтите еще раз статью/справку, я внес некоторые дополнения.

Vodkomotornik
02.08.2012, 00:10
Sony Solid Color был на ТЛ - кажется на нем останавливался скрипт.

Vodkomotornik
09.08.2012, 10:48
Поставил последнюю версию - все гуд, но хотелось бы и звук аналогично просчитывать на отдельную дорожку.
При попытке просчета звука в wav 48 стерео имею это:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ApplicationException: No tracks selected.
at EntryPoint.DoBatchRender(ArrayList selectedTemplates, String basePath, RenderMode renderMode)
at EntryPoint.FromVegas(Vegas vegas)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle._InvokeMethodFast(Objec t target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Sony.Vegas.ScriptHost.ScriptManager.Run(Assembly asm, String className, String methodName)
at Sony.Vegas.ScriptHost.RunScript(Boolean fCompileOnly)

chainick
13.08.2012, 14:05
Скрипт работает исключительно с видео треками. И это, кстати, видно в сообщении об ошибке:
No tracks selected.

Как один из вариантов, можно дополнительно использовать скрипт RecreateAudioEvents для восстановления аудио у фрагментов. Понятно, что в пресете долна быть поддержка аудио.

Vodkomotornik
13.08.2012, 14:12
Я делаю Copy media with project... - в таком случае приходится видео еще раз копировать из папки в другую папку.
Подумай на досуге - есть ли возможность встроить копирование аудио. Будет гораздо удобнее без лишних шаманств.

Спасибо за скрипт!

ASM
14.08.2012, 12:11
В общем из того, что я предлагаю хотелось бы хотя бы чекбокс, позволяющий задавать произвольное название файла.

chainick
14.08.2012, 12:20
Я не совсем понял вопрос. Конкретизируй его (какой выбран чекбокс и др. данные).

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

ASM
14.08.2012, 12:25
Ну хотелосб бы возможность задать произвольное имя файла, без этих всех пресетов и т.д.
Ну т.е. чекбокс, который бы отключал автматическую модификацию имени файла и требовал бы
его ввести.

Vodkomotornik
09.12.2012, 00:13
Что-то нету стабильности у меня...
Сейчас i7 + 8Гиг оперативы - половину отрендерил, неотрендеренные эвенты перенес на отдельную ТЛ, ее выделил, создал отдельную папку для рендера - вывел 5 эвентов и получаю:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at Sony.Vegas.IMediaCOM.AddToPool(String path, Boolean addToProperBin, UInt32& mediaID, MetaPathType& metaPathType)
at Sony.Vegas.Media..ctor(String path)
at EntryPoint.DoBatchRender(ArrayList selectedTemplates, String basePath, RenderMode renderMode)
at EntryPoint.FromVegas(Vegas vegas)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle._InvokeMethodFast(Objec t target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Sony.Vegas.ScriptHost.ScriptManager.Run(Assembly asm, String className, String methodName)
at Sony.Vegas.ScriptHost.RunScript(Boolean fCompileOnly)

User
24.05.2013, 18:40
Господа, объясните конкретно. Скачал скрипт, поместил его в скрипт меню SV, но как говорится вижу фигу - ни какого Batch Render+Event в папке меню скриптов не появляется. Разъясните, что чайник делает не так?
Скачал не тот скрипт.. переделал- Батч Рендер+Евент появился в меню скриптов, но проресс не вижу....вот только как поставить FFmpeg в систему Win7 64 что бы его увидел Вегас 11-12 и где его взять. По ссылке пакет кодеков, что качать именно

Владимирlol
04.07.2013, 16:52
У меня вопрос! Этот скрипт не понимает русский язык. Потому что если у меня файлы расположены в папках с названиями на русском, то он не кодирует файлы. Можно это как нибудь это исправить???

chainick
13.05.2014, 16:20
Господа, а может мне кто объяснить, как в скрипт добавить скачанный пресет? В установленном скрипте Batch render+event отсутствует FFmpeg пресет.
В архиве вместе с файлом "BatchRender+Events.cs" имеется и файл пресетов "PresetList.txt". Пресет описывается двумя строками:

первая строка – имя пресета – используется в списке пресетов окна сохранения bat-файла;
вторая строка – шаблон команды – используется для формирования содержания bat-файла.

Шаблон команды содержит четыре плейсхолдера:

{0} - исходный файл для рендеринга (input file);
{1} - выходной файл (output file);
{2} – отступ от начала;
{3} - продолжительность.


Дополнительно см. ffmpeg (http://www.videomax.ru/forum/ffmpeg_topic51175.html)