Cкрипты для Edius+AutoHotKey
#101
Отправлено 27 Apr 2011 - 20:16
#102
Отправлено 27 Apr 2011 - 21:24
Без открытого Quick Title:
; создать новый титр
t
; вставка текста
Ctrl+v
; начало цикла
; выделениие всего текста и сдвиг на начало первой строки
Ctrl+Shift+Home
; выделение всего текста кроме первой строки
Shift+down
; cut всех строк, кроме первой
Ctrl+x
; создание нового титра
Ctrl+n
; сохранение старого
Enter
; вставка текста
Ctrl+v
......
; ничего не вставилось?
; нет, возврат на начало цикла
; да, завершение работы
Сообщение отредактировано Malcev: 27 Apr 2011 - 21:26
#103
Отправлено 28 Apr 2011 - 05:05
#104
Отправлено 28 Apr 2011 - 12:30
Мы же всё кроме первой строки катим (вырезаем, а не копируем), потом сохраняем.
Потом создаём новый титр делаем пэйст, опять всё кроме первой строки катим, сохраняем....
#105
Отправлено 28 Apr 2011 - 20:08
И всё же я не врубаюсь, зачем это нужно?
#106
Отправлено 29 Apr 2011 - 02:50
Мне даётся вордовский файл в котором написан текст сюжета на русском и его перевод на латышский (типа Закадр....перевод....Синхрон.....перевод)
Кидать субтитры я могу как попало, главное отделять закадры от синхронов.
Вручную это делать надоело - вот и подумал об оптимизации.
В принципе, если легче написать скрипт по копированию текста построчно, то можно копировать текст из начального документа в новый документ, а потом уже из него копировать построчно в Edius
Тогда алгоритм такой:
; переход на окно Notepad
; вставка текста
Ctrl+v
; сдвиг на начало первой строки
Ctrl+Home
; опускание всего текста на одну строку вниз
Enter
; сдвиг на начало первой строки
up
; начало цикла
; сдвиг на строчку вниз
down
; на начало строки
Home
; выделение строки
Shift+End
; копирование строки
Ctrl+c
; переход на окно EDIUS
; создание нового титра
t
; вставка текста
Ctrl+v
; сохранение титра
Ctrl+s
; переход на окно Notepad
......
; конец файла?
; нет, возврат на начало цикла
; да
; выделение всего текста
Ctrl+a
; удаление всего текста
Delete
;завершение работы
PS А почему нельзя обнаружить конец файла сразу в Ediuse, если его можно обнаружить в Notepad?
Сообщение отредактировано Malcev: 29 Apr 2011 - 02:57
#107
Отправлено 29 Apr 2011 - 04:17
Хорошая: AHK может прочесть текстовый файл, скопировать очередную строку в буфер, перейти на следующую строку, проверить, обнаружение конца файла, дать команду в Эдиусе создать новый титр и вставить из буфера текст, и т.д. Рекомендую почитать документацию на русском языке, ссылку на которую я привёл в начале каждой страницы. Там есть готовые примеры.
#108
Отправлено 30 Apr 2011 - 11:03
Если раскоментировать 3 последние строчки в теле цикла, то будет запрашиваться продолжение работы скрипта после создания очередного титра.
MsgBox, Create Titles from text File.`n `r To begin: Ctrl + F11 `r To close : Ctrl + Alt + X ^F11:: clipboard = Loop { FileReadLine, clipboard, g:\AutoHotkey\Titles.txt, %A_Index% if ErrorLevel break WinWait, EDIUS, IfWinNotActive, EDIUS, , WinActivate, EDIUS, WinWaitActive, EDIUS, Send, t Sleep , 500 Send,{CTRLDOWN}v{CTRLUP} Sleep , 500 Send,{CTRLDOWN}s{CTRLUP} WinWait, EDIUS, IfWinNotActive, EDIUS, , WinActivate, EDIUS, WinWaitActive, EDIUS, Number_lines =%A_Index% ;MsgBox, 4, , Created %Number_lines% Titles. continue ? ; IfMsgBox, No ; return } WinWait, EDIUS, IfWinNotActive, EDIUS, , WinActivate, EDIUS, WinWaitActive, EDIUS, MsgBox, 4, , End of File. Created %Number_lines% Titles. Return ^!sc02D:: ; Ctrl + Alt + X MsgBox Exit script. ExitApp
Проверено в Edius 6.02 под Win7 x64.В других версиях Эдиуса и операционках не проверял, но думаю, что будет работать.
#109
Отправлено 01 May 2011 - 16:46
А мне надо, чтобы она переносилась с автоматическим враппингом под заданный размер титра в эдиусе
Спасибо модератору teadrinker на их форуме
Код (AutoHotKey): SetTitleMatchMode, 2 TargetWindov = ; указать целевое окно StringMaxLength = 200 ; указать максимальный размер копируемой строки в символах (можно больше) EM_GETLINECOUNT := 0xBA, EM_GETLINE := 0xC4 Return F11:: ControlGet, hEdit, hwnd,, Edit1, A SendMessage, EM_GETLINECOUNT,,,, ahk_id %hEdit% Loop % ErrorLevel ; количество строк в Edit-контроле блокнота { String = VarSetCapacity(String, StringMaxLength) NumPut(StringMaxLength, String) SendMessage, EM_GETLINE, A_Index - 1, &String,, ahk_id %hEdit% ; копируем строку в переменную String Clipboard = %String% ; помещаем строку в буфер обмена MsgBox, % Clipboard ; только для демонстрации, эту строку можно удалить WinActivate, %TargetWindov% SendInput, ^{vk56} ; посылаем целевому окну Ctrl + V, вставляя текст из буфера обмена Sleep, 400 } Return
Сообщение отредактировано Malcev: 02 May 2011 - 00:58
#110
Отправлено 03 May 2011 - 17:42
Потому всё, что разжевано, осталось проглотить. Coda.
Сообщение отредактировано Сергей Иваныч: 04 May 2011 - 05:27
#111
Отправлено 05 Jul 2011 - 15:14
MsgBox, Исполнение команд o q {ALT+d} - Завершение : Ctrl + Alt + X
F4::
Send, oq{ALTDOWN}d{ALTUP}
Return
^!sc02D:: ; Ctrl + Alt + X
MsgBox, Скрипт завершён.
ExitApp
Сообщение отредактировано Сергей Иваныч: 06 Jul 2011 - 09:06
#112
Отправлено 19 Jul 2011 - 15:55
Чтоб было понятнее - все куски лежат на ТЛ. дальше процедура Контр+Т , S и так далее по кругу.
#113
Отправлено 23 Jul 2011 - 06:50
MsgBox, Create a Still Image для группы клипов на TL.`n `r Начало работы скрипта: Ctrl + F11 `r Завершение : Ctrl +Alt + X ^F11:: InputBox, UserInput, Repeat Number, Число повторов., , , if ErrorLevel MsgBox, CANCEL was pressed. else Loop %UserInput% { Send, {CTRLDOWN}t{CTRLUP} WinWait, EDIUS Send, s WinWait, EDIUS, } Return ^!sc02D:: MsgBox Скрипт завершён. ExitApp
#114
Отправлено 24 Oct 2011 - 20:13
Вопрос у меня к посту 88 (замедление в Edius 6.02)
Не срабатывает у меня ''None'' в твоём варианте.
В своём - не могу закрыть финальное окно по редактированию скорости.
----------------------
Пошёл старым путём - записал в AutoScriptWriter.
1.Alt+E = вызов самой функции
2.50% = требуемое значение
3.Alt+F = переключение в режим Field Options
4.Alt+N = NONE
5.Alt+F4 = закрыл лишь это окно
Вот тут не могу переключится на окно управления скоростью,чтоб закрыть и его.
#115
Отправлено 26 Oct 2011 - 13:51
#116
Отправлено 27 Oct 2011 - 13:44
1. Отменяем деинтерлейс и принудительно закрываем окно Speed.
2. Изменяем скорость.
Change Speed_for Edius6.05.ahk
MsgBox, Change clip speed. Please select Clip in Timeline. Run Script: Ctrl + F11 . Exit : Ctrl + Alt + X ^F11:: WinWait, EDIUS, IfWinNotActive, EDIUS, , WinActivate, EDIUS, WinWaitActive, EDIUS, Send, {ALTDOWN}e{ALTUP} WinWait, Speed, IfWinNotActive, Speed, , WinActivate, Speed, WinWaitActive, Speed, Send, {ALTDOWN}f{ALTUP} WinWait, Field Option, IfWinNotActive, Field Option, , WinActivate, Field Option, WinWaitActive, Field Option, Send, {ALTDOWN}n{ALTUP}{ENTER} WinWait, EDIUS, IfWinNotActive, EDIUS, , WinActivate, EDIUS, WinWaitActive, EDIUS, Sleep, 100 IfWinExist, Speed WinClose WinWait, EDIUS, IfWinNotActive, EDIUS, , WinActivate, EDIUS, WinWaitActive, EDIUS, Send, {ALTDOWN}e{ALTUP} WinWait, Speed, IfWinNotActive, Speed, , WinActivate, Speed, WinWaitActive, Speed, Send, 50 IfWinNotActive, Speed, , WinActivate, Speed, WinWaitActive, Speed, Send, {ENTER} Return ^!sc02D:: ; Ctrl + Alt + X MsgBox Exit script. ExitApp
Сообщение отредактировано Сергей Иваныч: 27 Oct 2011 - 13:51
#117
Отправлено 08 Apr 2012 - 02:31
Слишком много ненужных действий + при включённой русской раскладке не возможен к использованию.В Edius 6.05 теряется фокус (становится неактивным ) окно Field option. И закрыть его можно только кликом мыши. Поэтому пришлось разбить скрипт на 2 части:
1. Отменяем деинтерлейс и принудительно закрываем окно Speed.
2. Изменяем скорость.
Достаточно
^F11:: ; Ctrl + F11 начало Send, !{vk45} ; ALT+e WinWaitActive, Speed Send, 50!{vk46} ; 50 ALT+f WinWaitActive, Field Option Send, !{vk4E}{ENTER} ; ALT+n Enter WinWaitClose, Field Option WinActivate, Speed Send, {ENTER} Return
Сообщение отредактировано Malcev: 08 Apr 2012 - 02:38
#118
Отправлено 28 Sep 2012 - 08:31
К примеру, что бы в скрипте, сочитания клавиш alt + E имел вид записи вместо:
{ALTDOWN}e{ALTUP} - для английской раскладки, а такой:
!{vk45} - работоспособный при ЛЮБОЙ раскладке.
Т.е. клавиша Alt - это знак !, а клавиша Е - это vk45.
Ещё пример: в записи ^!sc02D, что означает Ctrl + Alt + X,
т.е. Ctrl - это ^, Alt - это !, X - это sc02D
Пы.Сы. Мне на данный момент необходимо знать как записать сочитание клавиш Alt + M (обрезка клипа с удалением правой части)
#120
Отправлено 28 Sep 2012 - 18:08
Вот результат: скрипт для порезки группы фото/видео (у меня в скипте - 5 клипов), которое на Таймлайне, через определённое количество кадров (у меня в скрипте - 10 кадров). Менять количество оставляемых кадров в фотографиях/клипах и количество обрезаемых фотографий/клипов можно простым изменение чисел в редакторе.
После запуска скрипта, выделить дорожку, на которой находятся Фото/Клипы, установить слайдер в необходимом месте и нажать Ctrl + F11.
Результат: клипы будут порезаны длительностью в 10 кадров в количестве - 5 шт.
Забыл сказать, что работаю в Эдиусе 6.08^F11:: ; Ctrl + F11 начало
Loop 5 ; число повторов обрезки
{
Loop 10 ; число кадров, длительность показа фото
{
Send, {RIGHT} ; проход вперёд на 1 кадр
Sleep 50 ; задержка перед следующим действием на 50 млсек
WinWait, EDIUS
}
Send, !{sc0x32} ; обрезка клипа с удалением правой части
Sleep 100 ; задержка перед следующим действием на 100 млсек
}
Return
^!sc02D:: ; Ctrl + Alt + X
MsgBox Скрипт завершён.
ExitApp
Сообщение отредактировано Max1961: 28 Sep 2012 - 18:50
#121
Отправлено 18 Dec 2012 - 09:30
Нужен скрипт для Batch Render.
============================
1.Предварительно назначенные HotKeys
a)Add to Batch Export (Default Exporter) - в моём случае на num 6
b)Add to Batch Export (Project Format) - в моём случае на num 9
2.Сами кноподавочные действия для скрипта
s - i - s - o - 9 или 6 (не важно)
=============================
Notes.
1.Нужно как-то определить границы выделяемого фрагмента - (логично по "Z")
2.Но как тогда перейти к выделению следующего фрагмента ?
Пошёл по пути определения границ - "A" и "S".
"S" - работает , если первый фрагмент не стоИт в позиции 00-00-00-00 , т..е. сдвигаю весь content на Timeline вправо немного.
3.Далее , согласно вышеуказанному , отмечаю входую и выходную точку ("I" - "O")
4."9" или "6" отправляет это сразу в Batch Export.
====================
Проблема (почему нуждаюсь в помощи)
1.Не могу найти в последней версии AutoHotkeys - AutoScriptWriter.
Поискал в архивах - нашел старенький.
На Win 7x64 - пишет не соответствующие команды (явно моя локальная проблема)
2.Как указать скрипту не количество нужных фрагментов , а чтоб он сам просчитал , лежащие на Timeline (если это вообще возможно)
=================================
Польза (смысл этого скрипта)
Фрагменты с Timeline можно выбрасывать в Batch Render для дальнейшей конвертации даже с набором разных фильтров на каждом.
..............
#122
Отправлено 20 Dec 2012 - 03:44
1.Не могу найти в последней версии AutoHotkeys - AutoScriptWriter.
Можешь юзать более продвинутую версию
http://www.autohotke...ecorder-writer/
Хотя лучше, писать самому ручками.
Как указать скрипту не количество нужных фрагментов , а чтоб он сам просчитал , лежащие на Timeline (если это вообще возможно)
Так как Edius знаю поверхностно, то могу предположить, что можно вначале скриптом создать цикл - пробежаться по стыкам и с каждым нажатием шортката (перехода на следующий стык) брать текст с контрола таймкода и сравнивать с предыдущим. Если есть изменения пишем n++ и начинаем цикл заново. Если изменений нет - цикл прерываем. Соответственно количество фрагментов будет равно n.
#123
Отправлено 05 Jan 2013 - 21:59
Вот , собственно, и сам скрипт.
Условия написаны выше (не буду повторятся).
--------------
; Start Script
MsgBox, Batch render.`n `r Start Script: Ctrl + F11 `r End Script : Ctrl + Alt + X
^F11:: ; Ctrl + F11 Start
InputBox, UserInput, Repeat Number, Repeat Number., , ,
if ErrorLevel
MsgBox, CANCEL was pressed.
else
Loop %UserInput%
{
WinActivate,EDIUS
Send, {s}
Sleep, 100
Send, {i}
Sleep, 100
Send, {s}
Sleep, 100
Send, {o}
Sleep, 100
Send, {Numpad9}
}
Return
^!sc02D:: ; Ctrl + Alt + X
MsgBox Final.
ExitApp
; End script
#124
Отправлено 06 Jan 2013 - 00:23
А если так,
f11:: loop { Send, {vk53} ; s Sleep, 100 ControlGetText, Timecode, Edit9, EDIUS ahk_class Canopus.Edius.1 If Timecode != %TimecodePrev% { TimecodePrev := Timecode Send, {vk49} ; i Sleep, 100 Send, {vk53} ; s Sleep, 100 Send, {vk4F} ; o Sleep, 100 Send, {Numpad9} } Else { msgbox, End Return } }
Сообщение отредактировано Malcev: 06 Jan 2013 - 02:46
#125
Отправлено 06 Jan 2013 - 02:32
Странно (((
Вообще не стартует.
Никаких диалоговых окон,ничего.
Win7x64 - Edius 6.08
..................
9 - у меня на Numpad-e
................
Если не сложно - можно полную версию ?
а не от { и до }
Сообщение отредактировано serg_mix: 06 Jan 2013 - 02:45
#126
Отправлено 06 Jan 2013 - 02:43
А ты его запусти и при активированном эдиусе нажми f11
Это и есть полная версия.
Скрипт считывает данные с контрола таймкода и если он при нажатии "s" не изменился, то прекращает работу.
Сообщение отредактировано Malcev: 06 Jan 2013 - 02:50
#127
Отправлено 06 Jan 2013 - 02:48
Понял ))
Сработало тоже.
Даже лучше.
Теперь не надо считать сколько есть Events -он их сам до конца просчитывает (количество)
СПАСИБО
Сообщение отредактировано serg_mix: 06 Jan 2013 - 02:50
#128
Отправлено 13 Jan 2013 - 13:20
Можно попросить поправку ?
Авторских же прав не имею )))
----------
1.F11 - перенести , как в старых версиях на Cntr+F11.
Причина = у Edius на этом Hotkey висит "родная" функция.
2."Скорость" самого скрипта уменьшить.
Пролетает молниеносно - были случаи пропусков и некорректной работы.
Лечилось рестартом скрипта.
----------
Спасибо заранее.
Удобный скрипт и ОЧЕНЬ нужный.
#129
Отправлено 13 Jan 2013 - 15:03
^f11:: x = 200 ; для большей задержки увеличить параметр loop { Send, {vk53} ; s Sleep, % x ControlGetText, Timecode, Edit9, EDIUS ahk_class Canopus.Edius.1 If Timecode != %TimecodePrev% { TimecodePrev := Timecode Send, {vk49} ; i Sleep, % x Send, {vk53} ; s Sleep, % x Send, {vk4F} ; o Sleep, % x Send, {Numpad9} Sleep, % x } Else { msgbox, End Return } }
Сообщение отредактировано Malcev: 13 Jan 2013 - 15:03
#130
Отправлено 13 Jan 2013 - 16:25
Вроде всё Good ))
Спасибо.
#131
Отправлено 28 Apr 2015 - 16:59
Помогите со скриптом-нужно- изменить таймкод видео на 0
вручную выглядит так: 1-вызов свойства файла 2-таймкод выставляется на 0, 3 - закрывается окно свойств (желательно что-бы все файлы в бине выставились на 0)
#132
Отправлено 11 Nov 2015 - 17:31
Как сделать паузу в скрипте пока эдиус загружен? есть ситуация - нужно пройтись стабилизатором по нарезке, потом отрендерить по SHIFT+Q и заменить каждый клип на отрендеренный. скрипт сделал, но не пойму как указать паузу после shift+Q, ведь каждый раз время рендера разное.
#133
Отправлено 11 Nov 2015 - 18:38
Скорее всего после нажатия SHIFT+Q появляется новое окно с информацией о рендеринге.
Вот и нужно ждать его закрытия.
Например, с помощью этой комманды:
http://www.script-co...nWaitClose.html
#134
Отправлено 11 Nov 2015 - 19:51
Спасибо, работает.
#135
Отправлено 02 Feb 2016 - 20:53
Всем привет. Есть ли скрипт или вариант для автоматической обрезки клипов вначале и конце. на несколько кадров в начале и в конце клипа перемещаемых из бина. или лежащих уже на таймлайне последовательно? Приблизительно алгоритм понятен, но не могу сам сообразить, кажется кто то тут писал об этом не нашел.
Сообщение отредактировано narik: 04 Feb 2016 - 20:20
#136
Отправлено 04 Feb 2016 - 20:21
?
#137
Отправлено 06 Feb 2016 - 01:17
#138
Отправлено 06 Feb 2016 - 02:02
Модернизируй код из 129 поста.
Спасибо, сейчас попробую боюсь неполучится как всегда)
Если кто смог бы накидать допустим для группы файлов лежащих последовательно на таймлайне что бы скрипт пробежался по ним и обрезал в начале и конце каждого клипа по 20 кадров, со сдвигом их к друг другу...
Сообщение отредактировано narik: 06 Feb 2016 - 02:04
#139
Отправлено 06 Feb 2016 - 19:25
Тут все несложно:
Вот база:
f11:: Timecode := TimecodePrev := "", x := 200 ; для большей задержки увеличить параметр loop { Send, {vk53} ; s шорткат перехода к следующему клипу на линейке Sleep, % x ControlGetText, Timecode, Edit9, EDIUS ahk_class Canopus.Edius.1 ; получаем таймкод таймлайна из контрола Edit9 If (Timecode != TimecodePrev) ; сравниваем с его предыдущим значением, если изменился, то: { TimecodePrev := Timecode Send, a ; посылаем какой-либо шорткат Sleep, % x ; делаем паузу Send, a ; посылаем какой-либо шорткат Sleep, % x ; делаем паузу } Else ; если не изменился, то мы дошли до конца линейки { msgbox, End Return } }
Сообщение отредактировано Malcev: 06 Feb 2016 - 19:26
0 человек читают эту тему
0 пользователей, 0 гостей, 0 скрытых пользователей