Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Avisynth
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Dimsok



Joined: 17 Aug 2014
Posts: 663

Post (Separately) Posted: Mon Dec 19, 2016 16:31    Post subject: Avisynth Reply with quote

Хочется кнопку такого рода. В неактивной панели выбран видеофайл, а в активной скрипт avs. Добавить в скрипт первой строкой "AviSource ("Полный путь к видеофайлу"). Если выбран только видеофайл, то создать новый avs скрипт с этой строкой.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Dec 19, 2016 18:55    Post subject: Reply with quote

Вспомнилось.
Список нужных форматов распиши. И по какому принципу формируется имя .avs при отсутствии.
И что если .avs не под курсором, но есть в папке?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Dimsok



Joined: 17 Aug 2014
Posts: 663

Post (Separately) Posted: Mon Dec 19, 2016 19:09    Post subject: Reply with quote

Имя пусть будет как у видеофайла (без расширения). Форматы avi, divx, mkv, mp4, ts, mpg, mov, flv, asf. Желательно так, чтобы "AviSource" можно было легко поменять на др, напр DirectShowSource, правкой скрипта или указанием прямо в параметрах.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Dec 19, 2016 19:14    Post subject: Reply with quote

На последний вопрос не ответил.
Что касается фильтров, то не лучше ли их привязывать к конкретным расширениям?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Dimsok



Joined: 17 Aug 2014
Posts: 663

Post (Separately) Posted: Mon Dec 19, 2016 19:53    Post subject: Reply with quote

Quote:
И что если .avs не под курсором, но есть в папке?

Тогда ничего. В папке же может быть не один avs, не для всех же скопом менять.
Про привязку не знаю. Может один фильтр будет с конкретным форматом лучше работать, чем с др.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Dec 19, 2016 20:09    Post subject: Reply with quote

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

_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Dimsok



Joined: 17 Aug 2014
Posts: 663

Post (Separately) Posted: Mon Dec 19, 2016 20:19    Post subject: Reply with quote

Спасибо.

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

А реально сделать так, чтобы он распознавал по какому-нибудь признаку, есть ли в скрипте ссылка на источник, и если да, заменял её новым путём, а если нет, то просто добавлял новый?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Dec 19, 2016 20:32    Post subject: Reply with quote

Что ты понимаешь под ссылкой на источник?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Dimsok



Joined: 17 Aug 2014
Posts: 663

Post (Separately) Posted: Mon Dec 19, 2016 20:41    Post subject: Reply with quote

Ну если, например в avs уже есть AviSource("путь"), FFVideoSource () и т.п можно это определять, и заменять его?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Dec 19, 2016 20:46    Post subject: Reply with quote

Можно, конечно. А есть где? На первой строке или на любой?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Dimsok



Joined: 17 Aug 2014
Posts: 663

Post (Separately) Posted: Mon Dec 19, 2016 20:49    Post subject: Reply with quote

Пусть будет на первых двух. Потому что, например, есть такой вариант:
A = FFAudioSource
V = FFVideoSource

Пусть в этом случае обе строки заменяются на одну.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Dec 19, 2016 20:58    Post subject: Reply with quote

Так A и V - это две разных переменных, которые, я полагаю, используются в других строках.
Как заменять? Просто удалить и прописать AviSource("путь")?
Какой тогда критерий поиска? Просто искать путь и заменять его в первой строке при совпадении фильтра, в ином случае заменять фильтр или выше новую строку прописывать?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Dimsok



Joined: 17 Aug 2014
Posts: 663

Post (Separately) Posted: Mon Dec 19, 2016 21:01    Post subject: Reply with quote

Quote:
Так A и V - это две разных переменных, которые, я полагаю, используются в других строках

Да, используются. Третья строка AudioDub(V, A), но это уже можно будет руками убрать. А критерии поиска наверное *Source(*) для первых двух строк.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Dec 19, 2016 21:03    Post subject: Reply with quote

Так что делать, если фильтр не совпал?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Dimsok



Joined: 17 Aug 2014
Posts: 663

Post (Separately) Posted: Mon Dec 19, 2016 21:03    Post subject: Reply with quote

Quote:
Просто искать путь и заменять его в первой строке при совпадении фильтра, в ином случае заменять фильтр или выше новую строку прописывать?

Заменять путь вместе с фильтром. Новую строку прописывать, если не найдено.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group