| View previous topic :: View next topic |
| Author |
Message |
Orion9

Joined: 01 Jan 2024 Posts: 1045
|
(Separately) Posted: Sat Mar 14, 2026 00:28 Post subject: |
|
|
| AkulaBig wrote: | | Но есть плагин, который лишь иногда крякозябры выводит. Можно ли взять значение из плагина и прогнать его через известную функцию фикса кодировки? |
Теперь понятно о каком плагине была речь.
Autorun действительно может вытянуть данные из любого wdx-плагина. Для этого используется объект Plugin
| Code: | Func GetExifInfoWdx(FileName)
Local str
obj = Plugin("ExifToolWDX")
If ERROR = 0 Then
obj.FileName = FileName
str = obj.GetValue(215) # поле "Comment" номер 215 в плагине
Free(obj)
Else
str = "Plugin error " & ERROR
Endif
Return str
EndFunc |
Функция вернет строку из поля Comment плагина ExifToolWDX. Но если данные хранятся в ANSI, а не в UTF-8, то результатом окажутся заменяющие символы со знаком вопроса, как у вас на картинках. И сделать с этим ничего не получится — так возвращает данные сам плагин ExifToolWDX, автор которого не предусмотрел работу с ANSI.
Остается только выводить данные в консоль и передавать их в Autorun через ProcessExecGetOutput для дальнейшей обработки.
Чем-то это похоже на проблему с кракозябрами в mp3 тегах, только здесь вместо iso-8859 выступает UTF-8. Алгоритм тоже похож: Autorun получает данные в ANSI, делает копию строки в UTF-8, разбивает обе строки на элементы и помещает их в массивы. Далее сравнивает эдементы каждого массива и делает замены при обнаружении символа 0xFFFD.
| Code: | RegisterCommand 60045 "ExifInfo"
Func ExifInfo(FileName)
Local sFile = RequestCopyDataInfo("SP") & RequestCopyDataInfo("SN")
If Not FileExist(sFile) Then
ShowHint("Файл не существует " & sFile)
Return
EndIf
MsgBox(GetExifInfo(sFile))
EndFunc
Func GetExifInfo(FileName)
Static a = List(), u = List(), exif = COMMANDER_PATH & "\Plugins\wlx\ExifToolView\exiftool.exe"
Local ansi, utf8, wrong = Chr(0xFFFD)
ProcessExecGetOutput ansi %exif% ' -G -S -lang ru "%FileName%"'
Local nSize = StrLen(ansi)
Local buf = Buffer(nSize)
buf.Zero()
buf.SetStr(ansi, 0, nSize, "ANSI")
utf8 = buf.GetStr(0, nSize, "CP:65001")
Free(buf)
a.Count = 0
u.Count = 0
a.Text = ansi
u.Text = utf8
For i = 0 to u.Count - 1
If StrPos(u[i], wrong) Then u[i] = a[i]
Next
Return u.text
EndFunc |
В результате "выхлоп" корректно отображает и ANSI и UTF-8, если обе кодировки присутствуют в тегах файла.
Надеюсь, это как-то поможет. Непонятно только, что вы хотите делать со всей этой огромной кучей потенциальных полей. Они ведь тоже динамически будут появляться и исчезать в зависимости от типа файлов.
| AkulaBig wrote: | | И про это писал. Могли-бы они использовать внешние кодеки, можно было-бы покапаться. |
Под внешними кодеками вы имеете в виду переносимые вместе с плеером? Имхо, там любая поддержка должна быть. Автор годами держит проект на плаву. Но я посмотрю завтра, что там в настройках. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 1045
|
(Separately) Posted: Sat Mar 14, 2026 12:51 Post subject: |
|
|
AkulaBig
Продолжу свою мысль.
Если выводить поля из exiftool, то без фильтра, видимо, не получится обойтись. Автор ExifToolWDX.wdx использует для этого шаблоны Config*.txt, где можно самостоятельно указывать, какие поля выводить, а какие нет. Подход, в целом, на мой взгляд, правильный — лучше сходу все-равно не придумаешь. Однако шаблоны не обновлялись 10 лет, а exiftool за это время далеко ушел. Минус подхода еще в том, что для того, чтобы сделать жадный до полей шаблон, придется с головой уйти в изучение всех мета-данных, которые выводит exiftool. Задача тягомотная, на мой взгляд, и не стоит усилий, особенно на фоне тормозов это утилиты. Вот если нужно вывести что-то конкретное, типа гео-данных, тогда да. А в остальном же...
В общем, глянул я последний MPC-BE — у него кодеки вшиты прямо в EXE — куда же еще лучше? Но в настройках можно и на внешние преключиться при желании. Странно, что автор сам не сделал плагин для ТС за все эти годы, неужели никто его не просил. |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 518
|
(Separately) Posted: Sat Mar 14, 2026 23:17 Post subject: |
|
|
Orion9
Личку проверьте |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 518
|
(Separately) Posted: Sun Mar 15, 2026 07:03 Post subject: |
|
|
| Orion9 wrote: | | Непонятно только, что вы хотите делать со всей этой огромной кучей потенциальных полей. Они ведь тоже динамически будут появляться и исчезать в зависимости от типа файлов. |
Я-же конкретно для определенных расширений буду поля получать. Например, для доков Title, Author, ... Как я вам показал на скринах. На данный момент нет ни одного плагина, который выводит эти поля у всех файлов определенного расширения. Странно это.
| Orion9 wrote: | | Минус подхода еще в том, что для того, чтобы сделать жадный до полей шаблон, придется с головой уйти в изучение всех мета-данных, которые выводит exiftool. |
Мне не нужен жирный шаблон в этот раз. Просто листер-плагином смотрю, как называется поле и прописываю его в Config.txt.
| Orion9 wrote: | | Под внешними кодеками вы имеете в виду переносимые вместе с плеером? |
Нет. Под внешними кодеками я понимаю внешние кодеки А MPC умеет работать только со встроенными. Вот и получается, что для внутреннего плеера надо использовать свои кодеки, а для MPC свои. Причем одинаковые. Масло, масляное. Вот если-бы MPC умел использовать внешние кодеки, это была-бы прога огонь. Но тем не менее написал я для вас плагин. Пока черновик. Все в личке. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 1045
|
(Separately) Posted: Sun Mar 15, 2026 13:41 Post subject: |
|
|
| AkulaBig wrote: | | Я-же конкретно для определенных расширений буду поля получать. Например, для доков Title, Author |
Ну тогда понятно. Может и стоит попробовать, но работать будет все-равно медленно. Хотя болван вроде подсказывает, как можно ускориться:
 Hidden text | Code: | Да, ускорить работу ExifTool в Windows можно, причем в некоторых случаях производительность вырастает в десятки раз
. Основная проблема на этой платформе — медленный запуск процесса (overhead), особенно если вы вызываете команду отдельно для каждого файла.
Вот основные способы ускорения:
1. Обработка всех файлов одной командой
Самая частая ошибка — использование циклов в .bat файлах, которые запускают exiftool.exe для каждого изображения. Запуск одного процесса для всей папки работает гораздо быстрее, так как программа загружается в память только один раз.
Медленно: for %f in (*.jpg) do exiftool -Artist="Name" %f
Быстро: exiftool -Artist="Name" -ext jpg .
2. Использование режима -stay_open
Если вам нужно интегрировать ExifTool в свою программу или часто выполнять разные команды, используйте флаг -stay_open. В этом режиме ExifTool остается запущенным в памяти и считывает новые команды из текстового файла (argfile), что исключает задержку на старт.
3. Настройка антивируса (Windows Defender)
Windows Defender часто сканирует ExifTool при каждом запуске, что может замедлять его работу или даже вызывать зависания.
Добавьте exiftool.exe в исключения (Exceptions) антивируса.
Если вы используете портативную версию, добавьте в исключения всю папку с программой.
4. Использование новой структуры файлов (v13.33+)
С середины 2024 года разработчик изменил способ распространения для Windows. Современные версии поставляются в виде архива с exiftool.exe и папкой exiftool_files.
Этот формат значительно быстрее старых «одиночных» .exe файлов, так как программе больше не нужно распаковывать временные файлы в папку TEMP при каждом запуске.
Если у вас старая версия (один файл без папки рядом), обязательно обновитесь до актуальной.
5. Оптимизация параметров чтения
-fast или -fast2: Позволяет не считывать данные после метаданных (например, само изображение или видеопоток). Это критично для больших RAW-файлов и видео.
-f: Если вам нужно просто проверить наличие тегов, этот флаг может немного ускорить вывод, принудительно печатая прочерк для отсутствующих данных вместо их долгого поиска.
Локальные диски: Работа с файлами напрямую на SD-карте или через сетевую папку (NAS) всегда медленнее из-за ограничений пропускной способности и задержек сети. |
Думаю, можно опцию -stay_open для начала попробовать, а также добавить исключение в Windows Defender.
| AkulaBig wrote: | | Но тем не менее написал я для вас плагин |
А почему для меня то? Но спасибо — никто прежде не писал для меня плагинов
Ладно, шутки в сторону. Посмотрел, потестировал немного и... Ну разве вы не видите, как все намного лучше стало, чёрт возьми! Совсем другой вид! Таким и пользоваться сразу хочется.
Плагин, конечно, крашится местами при закрыти или сохранении настроек, но большинство главных функций работает (переключение дорожек, переключение титров, нормализация звука, клавиши воспроизведения "вперед назад" и т.д.) — тему оформления тоже удалось поменять на темную. Не получилось только яркость добавить прибавить — крашится плагин, как он и крашится при сохранении настроек, но настройки применяются при перезапуске.
Что больше всего бросилось в глаза — плеер не переходит в полноэкранный режим — верхняя часть окна остается видимой. А в остальном же недурно, очень даже недурно для первой альфа-версии.
Именно поэтому я у вас спросил зачем вам тратить время на этот exiftool с его тормозами и кракозябрами, когда есть более интересные вещи, которые буквально ждут ваших знаний и умений. По потенциалу и популярности плагин TCMPC-HC может обойти саму суматру и ирфана, вопрос только будете вы этим заниматься или не будете. Если будете, окей. А если не будете, никто вас не обязывает
| AkulaBig wrote: | | А MPC умеет работать только со встроенными. |
Все там с этим в порядке (пишу навсидку, но уверен, что именно так), это скорее у Гислера может что-то не работать, поскольку он весьма посредственно добавил поддержку плеера. Претензий то никаких — он ведь, в конце концов, не видеоплеер разрабатыват, но мне от этого как должно стать легче?
| AkulaBig wrote: | | Вот если-бы MPC умел использовать внешние кодеки, это была-бы прога огонь. |
Посмотрите Настройки -> Внешние фильтры -> Добавить -> Файл... Все должно работать.
| AkulaBig wrote: | | Вот и получается, что для внутреннего плеера надо использовать свои кодеки, а для MPC свои. |
Если я буду пользоваться MPC, зачем мне встроенный плеер со своими кодеками? Это сразу под ноль пойдет
Папка MPC занимает всего 53,5 мегабайта, причем ее можно оптимизировать. Например, выкнуть лишние языки и библиотеку mediainfo.dll, которая нужна только, чтобы посмотреть свойства файла. Если mediainfo.dll нет в каталоге, то в окне свойств не будет этой вкладки, всего-то.
В общем, если будете серьезно заниматься плагином, выкладывайте первую стабильную версию на сайт для проб, тестов и обратной связи. А здесь, пожалуй, больше нет смысла офтопить.
P.S. Кстати, дайте попробовать свой черновик другим пользователям, чего тут секретного ) |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 518
|
(Separately) Posted: Sun Mar 15, 2026 14:47 Post subject: |
|
|
| Orion9 wrote: | | А здесь, пожалуй, больше нет смысла офтопить. |
Дак поэтому я вам в личку и пишу. Действительно не надо здесь офтопить. На это пост отвечу коротко и все.
| Orion9 wrote: | Посмотрите Настройки -> Внешние фильтры -> Добавить -> Файл... Все должно работать.
|
Я уже давно все испробовал. Внешние кодеки там нельзя использовать по любому пути. Так что это не решение проблемы.
| Orion9 wrote: | В общем, если будете серьезно заниматься плагином, выкладывайте первую стабильную версию на сайт для проб, тестов и обратной связи. А здесь, пожалуй, больше нет смысла офтопить.
P.S. Кстати, дайте попробовать свой черновик другим пользователям, чего тут секретного ) |
Дак у меня на ру-борде площадка. А вы туда не ходите.
| Orion9 wrote: | | Плагин, конечно, крашится местами при закрытии или сохранении настроек |
Изменение настроек я даже не пробовал. Он и при просмотре крашит, что недопустимо. Только не плагин, а MPC-HC
В общем буду пробовать MPC-BE. Использование старых версий MPC-HC не вариант. |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 518
|
(Separately) Posted: Sun Mar 15, 2026 22:10 Post subject: |
|
|
| Orion9 wrote: | | В результате "выхлоп" корректно отображает и ANSI и UTF-8, если обе кодировки присутствуют в тегах файла. |
Отлично работает. Спасибо. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 1045
|
(Separately) Posted: Sun Mar 15, 2026 23:40 Post subject: |
|
|
| AkulaBig wrote: | | А вы туда не ходите. |
На руборду? Неее, туда я ни ногой — там скоро всех попереловят по одному — доходитесь по запрещенным сайтам
На самом деле не вижу больших проблем. Если будет что написать, напишем хоть черту лысому на кулички )
Mrak_Tlen
FallenAngel
Я оставил вам сообщение в ЛС по части Autorun, не пропустите, здесь легко можно не заметить оповещение. |
|
| Back to top |
|
 |
|
|
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
|