[wdx] WinScript Advanced Content Plugin (x86\x64) (new)
Модераторы: Моторокер, Avada, CaptainFlint, Nik, d-view
Жаль только, что при выводе wcx нельзя задавать свои колонки
Я вообще не в теме, но мелькнула мысль, что в теории можно было бы через автостили что-то настроить. Типа провалился в файл, адрес *\.mp3\*.* (или как там) и настроить режим представления, да команды...
Заранее извините, если мысль глупая.
Я вообще не в теме, но мелькнула мысль, что в теории можно было бы через автостили что-то настроить. Типа провалился в файл, адрес *\.mp3\*.* (или как там) и настроить режим представления, да команды...
Заранее извините, если мысль глупая.
Mrak_Tlen
Идея понятна.
Но проблема в том, что средствами MultiArc можно вывести только в колонки "Имя", "Тип", "Размер и "Дата". Есть еще какой-то непонятный ключ "c - File description", но, похоже, он ничего не делает.
Вывести можно так. Зарегистрировать в плагинах wcx расширение mp3:
Добавить к настройкам плагина Multiarc.ini
Сам wcx.bat файл должен быть в одном каталоге с консольной утилитой MediaInfo.exe с таким содержимым:
Ну и все - файл открывается как архив с полным содержимым MediaInfo, только вывод косячный и нет поддержки юникодных имён.
Второй вариант - использовать листерный плагин AnyCmd, который тоже читает стандартный вывод stdout. В кофигурации плагина указываем путь к консольной утилиите и расширение.
Плагин старый и не поддерживает больше одного расширения, что делает его практически бесполезным, хотя в окне листера и можно его вручную выбирать для других типов файлов.
Эти два плагина похожи на WinScript Advanced тем, что тоже дают некоторую гибкость при работе с консолью и выводом из нее данных в окно ТС. Вот жаль, что wfx такого нет - он мог бы здесь помочь! А пока можно просто кнопкой обходиться, если нужен такой подробный вывод.
Вывод окна:
Идея понятна.
Вывести можно так. Зарегистрировать в плагинах wcx расширение mp3:
Код: Выделить всё
mp3=260,%COMMANDER_PATH%\Plugins\wcx\MultiArc\multiarc.wcxКод: Выделить всё
[MediaInfo]
Archiver=%COMMANDER_PATH%\Plugins\arc\MediaInfo\wcx.bat
Description=MediaInfo
Extension=mp3
Start="---------------"
Format0=n++
List="%PQA %AQA %O"
ExtractWithPath=
Debug=0
BatchUnpack=0Код: Выделить всё
SetLocal EnableExtensions
cls
@echo off
@echo ---------------
"%~dp0MediaInfo.exe" -f %1Второй вариант - использовать листерный плагин AnyCmd, который тоже читает стандартный вывод stdout. В кофигурации плагина указываем путь к консольной утилиите и расширение.
Код: Выделить всё
Command=cmd.exe /c ""%COMMANDER_PATH%\Plugins\arc\MediaInfo\wcx.bat" "%s""
DetectString=EXT=MP3Эти два плагина похожи на WinScript Advanced тем, что тоже дают некоторую гибкость при работе с консолью и выводом из нее данных в окно ТС. Вот жаль, что wfx такого нет - он мог бы здесь помочь! А пока можно просто кнопкой обходиться, если нужен такой подробный вывод.
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMSPEC% /k
""%%COMMANDER_PATH%%\Plugins\arc\MediaInfo\MediaInfo.exe" -F %P%N"
%COMSPEC%
-1Показать
Код: Выделить всё
General
Count : 349
Count of stream of this kind : 1
Kind of stream : General
Kind of stream : General
Stream identifier : 0
Count of video streams : 1
Count of audio streams : 1
Video_Format_List : AVC
Video_Format_WithHint_List : AVC
Codecs Video : AVC
Audio_Format_List : AAC LC
Audio_Format_WithHint_List : AAC LC
Audio codecs : AAC LC
Audio_Language_List : English
Audio_Channels_Total : 2
Complete name : d:\Музыка\Клипы\Michel Teló - Ai Se Eu Te Pego.mp4
Folder name : d:\Музыка\Клипы
File name extension : Michel Teló - Ai Se Eu Te Pego.mp4
File name : Michel Teló - Ai Se Eu Te Pego
File extension : mp4
Format : MPEG-4
Format : MPEG-4
Format/Extensions usually used : braw mov mp4 m4v m4a m4b m4p m4r 3ga 3gpa 3gpp 3gp 3gpp2 3g2 k3g jpm jpx mqv ismv isma ismt f4a f4b f4v
Commercial name : MPEG-4
Format profile : Base Media
Internet media type : video/mp4
Codec ID : isom
Codec ID : isom (isom/iso2/avc1/mp41)
Codec ID/Url : http://www.apple.com/quicktime/download/standalone.html
CodecID_Compatible : isom/iso2/avc1/mp41
File size : 84524058
File size : 80.6 MiB
File size : 81 MiB
File size : 81 MiB
File size : 80.6 MiB
File size : 80.61 MiB
Duration : 165257
Duration : 2 min 45 s
Duration : 2 min 45 s 257 ms
Duration : 2 min 45 s
Duration : 00:02:45.257
Duration : 00:02:45:01
Duration : 00:02:45.257 (00:02:45:01)
Overall bit rate : 4091763
Overall bit rate : 4 092 kb/s
Frame rate : 23.976
Frame rate : 23.976 FPS
Frame count : 3961
Stream size : 124476
Stream size : 122 KiB (0%)
Stream size : 122 KiB
Stream size : 122 KiB
Stream size : 122 KiB
Stream size : 121.6 KiB
Stream size : 122 KiB (0%)
Proportion of this stream : 0.00147
HeaderSize : 124468
DataSize : 84399590
FooterSize : 0
IsStreamable : Yes
File creation date : 2023-01-31 19:44:07.558 UTC
File creation date (local) : 2023-01-31 22:44:07.558
File last modification date : 2022-11-24 04:17:45.000 UTC
File last modification date (local) : 2022-11-24 07:17:45.000
Writing application : Lavf59.27.100
Writing application : Lavf59.27.100
Video
Count : 391
Count of stream of this kind : 1
Kind of stream : Video
Kind of stream : Video
Stream identifier : 0
StreamOrder : 0
ID : 1
ID : 1
Format : AVC
Format : AVC
Format/Info : Advanced Video Codec
Format/Url : http://developers.videolan.org/x264.html
Commercial name : AVC
Format profile : High@L4
Format settings : CABAC / 3 Ref Frames
Format settings, CABAC : Yes
Format settings, CABAC : Yes
Format settings, Reference frames : 3
Format settings, Reference frames : 3 frames
Internet media type : video/H264
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 165207
Duration : 2 min 45 s
Duration : 2 min 45 s 207 ms
Duration : 2 min 45 s
Duration : 00:02:45.207
Duration : 00:02:45:01
Duration : 00:02:45.207 (00:02:45:01)
Bit rate : 3958942
Bit rate : 3 959 kb/s
Width : 1920
Width : 1 920 pixels
Height : 1080
Height : 1 080 pixels
Stored_Height : 1088
Sampled_Width : 1920
Sampled_Height : 1080
Pixel aspect ratio : 1.000
Display aspect ratio : 1.778
Display aspect ratio : 16:9
Rotation : 0.000
Frame rate mode : CFR
Frame rate mode : Constant
FrameRate_Mode_Original : VFR
Frame rate : 23.976
Frame rate : 23.976 (24000/1001) FPS
FrameRate_Num : 24000
FrameRate_Den : 1001
Frame count : 3961
Color space : YUV
Chroma subsampling : 4:2:0
Chroma subsampling : 4:2:0
Bit depth : 8
Bit depth : 8 bits
Scan type : Progressive
Scan type : Progressive
Bits/(Pixel*Frame) : 0.080
Stream size : 81755480
Stream size : 78.0 MiB (97%)
Stream size : 78 MiB
Stream size : 78 MiB
Stream size : 78.0 MiB
Stream size : 77.97 MiB
Stream size : 78.0 MiB (97%)
Proportion of this stream : 0.96725
Title : ISO Media file produced by Google Inc.
Writing library : x264 - core 155 r2901 7d0ff22
Writing library : x264 core 155 r2901 7d0ff22
Encoded_Library_Name : x264
Encoded_Library_Version : core 155 r2901 7d0ff22
colour_description_present : Yes
colour_description_present_Source : Container / Stream
Color range : Limited
colour_range_Source : Container / Stream
Color primaries : BT.709
colour_primaries_Source : Container / Stream
Transfer characteristics : BT.709
transfer_characteristics_Source : Container / Stream
Matrix coefficients : BT.709
matrix_coefficients_Source : Container / Stream
Codec configuration box : avcC
Audio
Count : 285
Count of stream of this kind : 1
Kind of stream : Audio
Kind of stream : Audio
Stream identifier : 0
StreamOrder : 1
ID : 2
ID : 2
Format : AAC
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Commercial name : AAC
Format_AdditionalFeatures : LC
Codec ID : mp4a-40-2
Duration : 165257
Duration : 2 min 45 s
Duration : 2 min 45 s 257 ms
Duration : 2 min 45 s
Duration : 00:02:45.257
Duration : 00:02:45.257
Bit rate mode : CBR
Bit rate mode : Constant
Bit rate : 127999
Bit rate : 128 kb/s
Channel(s) : 2
Channel(s) : 2 channels
Channel positions : Front: L R
Channel positions : 2/0/0
Channel layout : L R
Samples per frame : 1024
Sampling rate : 44100
Sampling rate : 44.1 kHz
Samples count : 7287834
Frame rate : 43.066
Frame rate : 43.066 FPS (1024 SPF)
Frame count : 7117
Compression mode : Lossy
Compression mode : Lossy
Stream size : 2644102
Stream size : 2.52 MiB (3%)
Stream size : 3 MiB
Stream size : 2.5 MiB
Stream size : 2.52 MiB
Stream size : 2.522 MiB
Stream size : 2.52 MiB (3%)
Proportion of this stream : 0.03128
Title : ISO Media file produced by Google Inc.
Language : en
Language : English
Language : English
Language : en
Language : eng
Language : en
Default : Yes
Default : Yes
Alternate group : 1
Alternate group : 1Но ведь в описании написано, что для нового расширения достаточно скопировать плагин в новую папку. И это работает, я пробовал в свое время.Orion9 писал(а): Плагин старый и не поддерживает больше одного расширения
Вот такая кнопочка намного интересней будет:Orion9 писал(а): А пока можно просто кнопкой обходиться, если нужен такой подробный вывод.
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMSPEC% /k %COMMANDER_PATH%\Utilities\MediaInfo\MediaInfo.exe --Language=file://ru.csv --Complete
%P%N
%COMSPEC%
-1
Это то, что у меня отложилось в памяти (что автор предлагал копировать/множить плагин, чем мне напомнил script.wdx - предшественник WinScriptAdv), но я был не точен, говоря, что AnyCmd работает только с одним расширением. На самом деле речь идет об одной детект-строке:AkulaBig писал(а):Но ведь в описании написано, что для нового расширения достаточно скопировать плагин в новую папку.
Я переделал строчку в:Improtant note: You may install several instances of the plugin in different (sub)directories. This permits to define several detection string filters and associate corresponding commands.
Код: Выделить всё
DetectString=MULTIMEDIA & (EXT="MP3" | EXT="MP4")Спасибо, словил ""C:\Portable\T" не является внутренней или внешнейAkulaBig писал(а):Вот такая кнопочка намного интересней будет:
командой, исполняемой программой или пакетным файлом."
Да, шучу я
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMSPEC% /k
""%%COMMANDER_PATH%%\Plugins\arc\MediaInfo\MediaInfo.exe" --Language=file://ru.csv --Complete %P%N"
%COMSPEC%
--Language=file://ru.csv --Complete
%COMMANDER_PATH%\Plugins\arc\MediaInfo\А чем красивее? Я правда разницы не увидел, если не считать, что имена полей стали на русском.AkulaBig писал(а):Ну и посмотрите, насколько вывод по --Complete красивей, чем по -f (--Full).
И все-равно я не пойму, что именно вы хотите вывести в колонки через wdx, используя этот плагин. Ведь информации очень много - куда ее размещать? А если вас что-то конкретное интересует, то эти источники можно указать в TCMediaInfo.AkulaBig писал(а):Кстати, вот из этого я сейчас пытаюсь что-то слепить.
Нет, похоже, все-таки придеся просить Loopback сделать wfx-поддержку
Я в курсе. Для постоянных кнопок конечно я обрамляю кавычками. В данном случае в этом не было интереса, так как на это надо немного времени затратить. У ТС несколько вариантов, как надо расставлять кавычки. А с comspec под рукой не было. Главное суть.Orion9 писал(а): Ох и намучился же я в свое время с этим делом
Потому что я не совсем то написал. Пропишите --Complete=0 Тогда не будут выводиться ненужные поля. А --Complete=1 (по умолчанию) эквивалентно --Full, либо -f.Orion9 писал(а): А чем красивее? Я правда разницы не увидел, если не считать, что имена полей стали на русском.
Это второй вопрос. Я об этом выше писал и надо подумать, что можно с этим сделать. Главное, что выводятся все заполненные поля. Это ценно. Но пока я не могу решить с крякозябрами. Для результата у меня алгоритм есть. А вот весь вывод конвертировать пока не знаю как.Orion9 писал(а): Ведь информации очень много - куда ее размещать?
Я вас умоляю, обсуждайте это в соответствующей теме. Ну совсем неинтересно здесь об этом читать.Orion9 писал(а): Нет, похоже, все-таки придеся просить Loopback сделать wfx-поддержку
Вот правильная кнопочка:
Признаюсь честно, потратил на нее более двух часов и инет курил во всю. Вы знаете причину.
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMSPEC% /k ""%COMMANDER_PATH%\Utilities\MediaInfo\MediaInfo.exe" "--Language=file://ru.csv" "--Complete=0""
%P%N
%COMSPEC%
%COMMANDER_PATH%\Utilities\MediaInfo\
-1
Охотно верю и причину, конечно же, знаю - потому что сам потратил на это еще больше часовПризнаюсь честно, потратил на нее более двух часов и инет курил во всю. Вы знаете причину.
Суровые реалии кнопок: вы сбросили код, у кого-то он не запустится, этот кто-то к вам же и придёт за ответом.) Всегда нужно иметь это в виду, хотя понятно, что не хочется
А чем вывод --Complete=0 отличается от простого запуска MediaInfo.exe без параметров? Разницы я не заметил. Что-то вы меня совсем запутали. Так вам сокращенный вид нужен или полный? )Потому что я не совсем то написал. Пропишите --Complete=0 Тогда не будут выводиться ненужные поля. А --Complete=1 (по умолчанию) эквивалентно --Full, либо -f.
Там столько данных, что полей wdx не хватит. Да и что с ними делать в таком количестве? Имхо, вытягивать нужно только конкретные поля под конкретную задачу. Я понимаю, что вам не нравится, что TCMediaInfo делает все то же самое, но... именно это она и делает!Это второй вопрос. Я об этом выше писал и надо подумать, что можно с этим сделать.
Почему не интересно? Мне, например, это очень интересно. Есть wlx, wfx, wcx плагины, которые работают с stdout отдавая данные панелям ТС, а вот wfx плагина такого нет, вопрос - почему?Я вас умоляю, обсуждайте это в соответствующей теме. Ну совсем неинтересно здесь об этом читать.
Кстати о wcx, таки удалось через MultiArc вытянуть что-то приемлимое из MI. Просто поправил в шаблоне, чтобы вторая часть таблицы вывода шла в поле расширения:
Код: Выделить всё
Format0=nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn e++Тем, что это позволяет настроить форму вывода. И я ведь это делаю скриптом с dll. Кнопка просто для примера.Orion9 писал(а): А чем вывод --Complete=0 отличается от простого запуска MediaInfo.exe без параметров?
Смотрите, настроили вы колонки на вывод определенных данных. А их в вашем файле нет. И у вас все колонки пустые. Но есть другие данные, которые вам не видны, но представляют интерес. Вот их-бы желательно вывести. То-есть задача вывести не пустые данные.Orion9 писал(а): Так вам сокращенный вид нужен или полный?
А насчет кодировки есть какие-нибудь идеи?
AkulaBig
Но ведь вы столкнетесь с той же самой проблемой: данные с полей wdx нужно где-то разместить (наборы колонок, поля посказки и т.д.), но поскольку вы не можете заранее знать, что именно вам вернет MediaInfo, у вас так же остануться пустые поля в колонках или подсказках. А брать все данные в одну строку вообще смысла нет: ну попадется вам файл с 7-ю аудиодорожками, 20-ти титрами, главами и прочим - что вы будете со всем эти делать? Там бывает одна строка Encoding settings по 1,5-2 кб, зачем она вообще нужна (если только она действительно вам не нужна)? Но если вы попытаетесь ее как-то скрыть или отфильтровать, то снова попадете все в те же рамки xml-файлов и выбора/не выбора источников.
А на счет смены кодовой страницы в AutoIt сказать ничего не могу. Как уже говорил, я с ним не знаком.
Но ведь вы столкнетесь с той же самой проблемой: данные с полей wdx нужно где-то разместить (наборы колонок, поля посказки и т.д.), но поскольку вы не можете заранее знать, что именно вам вернет MediaInfo, у вас так же остануться пустые поля в колонках или подсказках. А брать все данные в одну строку вообще смысла нет: ну попадется вам файл с 7-ю аудиодорожками, 20-ти титрами, главами и прочим - что вы будете со всем эти делать? Там бывает одна строка Encoding settings по 1,5-2 кб, зачем она вообще нужна (если только она действительно вам не нужна)? Но если вы попытаетесь ее как-то скрыть или отфильтровать, то снова попадете все в те же рамки xml-файлов и выбора/не выбора источников.
А на счет смены кодовой страницы в AutoIt сказать ничего не могу. Как уже говорил, я с ним не знаком.
AkulaBig
Никто на AutoIt не делал класса или функций для работы с MI? Наверняка делали. Ради интереса проверил для Autohotkey. Уверен, и для au3 уже тоже давно все есть.
Никто на AutoIt не делал класса или функций для работы с MI? Наверняка делали. Ради интереса проверил для Autohotkey. Уверен, и для au3 уже тоже давно все есть.
AkulaBig
Я подключил указанный выше модуль к Autohotkey - проблем с выводом никаких нет. Нормально отдает строку. Может, у вас au3-файл не сохранен в UTF8? Других идей у меня нет. В любом случае, низкоуровневые операции с DLL не входят в круг моих компетенций (даже не знаю, улыбнуться по этому поводу или взгрустнуть, наверное, сделаю и то и другое)

Я подключил указанный выше модуль к Autohotkey - проблем с выводом никаких нет. Нормально отдает строку. Может, у вас au3-файл не сохранен в UTF8? Других идей у меня нет. В любом случае, низкоуровневые операции с DLL не входят в круг моих компетенций (даже не знаю, улыбнуться по этому поводу или взгрустнуть, наверное, сделаю и то и другое)
Показать
Конкретно про готовые библиотеки не помню, но там всего несколько вызовов, вот вполне нормальный пример использования с комментариями.Orion9 писал(а):Никто на AutoIt не делал класса или функций для работы с MI?
Потому что у вас тэгов с крякозябрами нет, вот и проблем нет.Orion9 писал(а):AkulaBig
Я подключил указанный выше модуль к Autohotkey - проблем с выводом никаких нет.
Речь про вывод крякозябров, а не про вызов библиотеки. Это типа вашей функции fix_cp. Причем для отдельных полей я научился это делать. То-есть, например, поле Исполнитель или Альбом с крякозябрами вывести в правильной кодировки я умею. А вот взять и все данные по опции Complete переконвертировать пока не знаю как.Loopback писал(а):там всего несколько вызовов
А зачем вам тэги с кракозябрами? Избавьтесь от нихПотому что у вас тэгов с крякозябрами нет, вот и проблем нет.
Ну, а если серьёзно, то как я понял, вы в курсе проблемы, которая хорошо описана в справке к TCMediaInfo, которую я, кстати, наконец-то дочитал )
Показать
FixCodepage
Специальная функция, задающая список полей, к которым будет применено исправление кодировки.
Проблема, для исправления которой предназначена функция, возникает на файлах с ID3-тегом, в котором строки сохранены в ANSI-кодировке, отличной от ISO 8859-1. Официальная спецификация тега позволяет использовать только кодировку ISO 8859-1 или Юникод, однако раньше многие программы игнорировали требования спецификации и сохраняли теги в локальных ANSI-кодировках. Библиотека MediaInfo строго следует спецификациям тега и перекодирует ANSI-строки с принудительным применением кодовой страницы ISO 8859-1, что, однако, на неправильно сохраненных тегах приводит к отображению искаженного текста.
К сожалению, автор MediaInfo отказался делать какие-либо опции для настройки перекодирования тегов. Примененный в плагине метод определения того, в каком виде библиотека будет возвращать данные тегов, не самый красивый и быстрый. Поэтому неразумно применять механизм исправления ко всем полям. Перечисляйте в этой функции только те поля, где может возвращаться искаженная кодировка (обычно это название, автор и т.д.). Функция должна вызываться до любого использования этих полей. Действие функции сохраняется до конца скрипта.
Текст, который функция определит как некорректный, будет декодирован с вашей локальной системной ANSI-кодировкой. Разумеется, если текст был сохранен в кодировке, отличной от вашей системной, текст может быть по-прежнему нечитаем.
Специальная функция, задающая список полей, к которым будет применено исправление кодировки.
Проблема, для исправления которой предназначена функция, возникает на файлах с ID3-тегом, в котором строки сохранены в ANSI-кодировке, отличной от ISO 8859-1. Официальная спецификация тега позволяет использовать только кодировку ISO 8859-1 или Юникод, однако раньше многие программы игнорировали требования спецификации и сохраняли теги в локальных ANSI-кодировках. Библиотека MediaInfo строго следует спецификациям тега и перекодирует ANSI-строки с принудительным применением кодовой страницы ISO 8859-1, что, однако, на неправильно сохраненных тегах приводит к отображению искаженного текста.
К сожалению, автор MediaInfo отказался делать какие-либо опции для настройки перекодирования тегов. Примененный в плагине метод определения того, в каком виде библиотека будет возвращать данные тегов, не самый красивый и быстрый. Поэтому неразумно применять механизм исправления ко всем полям. Перечисляйте в этой функции только те поля, где может возвращаться искаженная кодировка (обычно это название, автор и т.д.). Функция должна вызываться до любого использования этих полей. Действие функции сохраняется до конца скрипта.
Текст, который функция определит как некорректный, будет декодирован с вашей локальной системной ANSI-кодировкой. Разумеется, если текст был сохранен в кодировке, отличной от вашей системной, текст может быть по-прежнему нечитаем.
https://docs.mp3tag.de/actions/convert-codepage/