Avisynth
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2  Next  :| |:
Total Commander -> Автоматизация Total Commander

#1: Avisynth Author: Dimsok PostPosted: Mon Dec 19, 2016 16:31
    —
Хочется кнопку такого рода. В неактивной панели выбран видеофайл, а в активной скрипт avs. Добавить в скрипт первой строкой "AviSource ("Полный путь к видеофайлу"). Если выбран только видеофайл, то создать новый avs скрипт с этой строкой.

#2:  Author: FlasherLocation: Москва PostPosted: Mon Dec 19, 2016 18:55
    —
Вспомнилось.
Список нужных форматов распиши. И по какому принципу формируется имя .avs при отсутствии.
И что если .avs не под курсором, но есть в папке?

#3:  Author: Dimsok PostPosted: Mon Dec 19, 2016 19:09
    —
Имя пусть будет как у видеофайла (без расширения). Форматы avi, divx, mkv, mp4, ts, mpg, mov, flv, asf. Желательно так, чтобы "AviSource" можно было легко поменять на др, напр DirectShowSource, правкой скрипта или указанием прямо в параметрах.

#4:  Author: FlasherLocation: Москва PostPosted: Mon Dec 19, 2016 19:14
    —
На последний вопрос не ответил.
Что касается фильтров, то не лучше ли их привязывать к конкретным расширениям?

#5:  Author: Dimsok PostPosted: Mon Dec 19, 2016 19:53
    —
Quote:
И что если .avs не под курсором, но есть в папке?

Тогда ничего. В папке же может быть не один avs, не для всех же скопом менять.
Про привязку не знаю. Может один фильтр будет с конкретным форматом лучше работать, чем с др.

#6:  Author: FlasherLocation: Москва PostPosted: Mon Dec 19, 2016 20:09
    —
Code:
'===============================================================================
' Добавление сверху содержимого AVS-скрипта команды фильтра с путём к видеофайлу
' Параметры: "<путь к avs>" "<путь к видео>" <команда фильтра>
' Пример: %V %T%M AviSource
'===============================================================================
With WSH.Arguments
  If .Count <> 3 Then MsgBox "Укажите 3 параметра!",_
  4144, " Правка (создание) AVS" : WSH.Quit
  AVS = .Item(0) : VFile = .Item(1) : Pref = .Item(2)
End With : Str = Pref & "(""" & VFile & """)"
Exs = " asf avi divx flv mkv mov mp4 mpg ts "
With CreateObject("Scripting.FileSystemObject")
  If .FileExists(VFile) And InStr(Exs, " " & LCase(.GetExtensionName(VFile) & " ")) Then
    If .FileExists(AVS) And LCase(.GetExtensionName(AVS)) = "avs" Then
      All = "" : If .GetFile(AVS).Size <> 0 Then All = .OpenTextFile(AVS).ReadAll
      If InStr(All, Str) <> 1 Then .OpenTextFile(AVS, 2).Write Str & vbNewLine & All
    Else nAVS = .GetParentFolderName(AVS) & "\" & .GetBaseName(VFile) & ".avs"
         If Not .FileExists(nAVS) Then .CreateTextFile(nAVS).WriteLine Str
    End If
  End If
End With

#7:  Author: Dimsok PostPosted: Mon Dec 19, 2016 20:19
    —
Спасибо.

Добавлено спустя 7 минут:

А реально сделать так, чтобы он распознавал по какому-нибудь признаку, есть ли в скрипте ссылка на источник, и если да, заменял её новым путём, а если нет, то просто добавлял новый?

#8:  Author: FlasherLocation: Москва PostPosted: Mon Dec 19, 2016 20:32
    —
Что ты понимаешь под ссылкой на источник?

#9:  Author: Dimsok PostPosted: Mon Dec 19, 2016 20:41
    —
Ну если, например в avs уже есть AviSource("путь"), FFVideoSource () и т.п можно это определять, и заменять его?

#10:  Author: FlasherLocation: Москва PostPosted: Mon Dec 19, 2016 20:46
    —
Можно, конечно. А есть где? На первой строке или на любой?

#11:  Author: Dimsok PostPosted: Mon Dec 19, 2016 20:49
    —
Пусть будет на первых двух. Потому что, например, есть такой вариант:
A = FFAudioSource
V = FFVideoSource

Пусть в этом случае обе строки заменяются на одну.

#12:  Author: FlasherLocation: Москва PostPosted: Mon Dec 19, 2016 20:58
    —
Так A и V - это две разных переменных, которые, я полагаю, используются в других строках.
Как заменять? Просто удалить и прописать AviSource("путь")?
Какой тогда критерий поиска? Просто искать путь и заменять его в первой строке при совпадении фильтра, в ином случае заменять фильтр или выше новую строку прописывать?

#13:  Author: Dimsok PostPosted: Mon Dec 19, 2016 21:01
    —
Quote:
Так A и V - это две разных переменных, которые, я полагаю, используются в других строках

Да, используются. Третья строка AudioDub(V, A), но это уже можно будет руками убрать. А критерии поиска наверное *Source(*) для первых двух строк.

#14:  Author: FlasherLocation: Москва PostPosted: Mon Dec 19, 2016 21:03
    —
Так что делать, если фильтр не совпал?

#15:  Author: Dimsok PostPosted: Mon Dec 19, 2016 21:03
    —
Quote:
Просто искать путь и заменять его в первой строке при совпадении фильтра, в ином случае заменять фильтр или выше новую строку прописывать?

Заменять путь вместе с фильтром. Новую строку прописывать, если не найдено.



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2  Next  :| |:
Page 1 of 2

Powered by phpBB © 2001, 2005 phpBB Group