[wlx/wdx] TCMediaInfo

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Skif_off
Сообщения: 1252
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

qx87
А как же причина? Так костыльно получается, если по умолчанию детект-строка пустая, то ручное редактирование конфига с последующим допиливанием определённо лишнее...
qx87
Сообщения: 18
Зарегистрирован: Пн мар 05, 2012 22:36

Сообщение qx87 »

Я до вчерашнего дня про эту эту строку ничего не знал. Соответственно, и не правил её. Значит, она по умолчанию была именно такая, а не пустая.

Попробовал с пустой строкой, всё равно открывает плагином.
Аватара пользователя
Zaytsev Artem
Сообщения: 20
Зарегистрирован: Чт авг 23, 2012 00:24
Откуда: Saint-Petersburg
Контактная информация:

id3 multiple string

Сообщение Zaytsev Artem »

Спасибо за мощный плагин. Тормозит он у меня не-по-детски, но, как говорится, большому кораблю большое плавание. У меня следующие вопросы:

1. Столкнулся с тем, что не отображался id3-год записи альбома. Выше в топике эта проблемма уже обсуждена, — я так понял, что плагин извлекает это поле, но пытается его читать в формате ft_datetime и обламывается. В общем, я добавил отдельный строковый столбец:

Код: Выделить всё

<column name="Recorded Year (as text)">RecDate</column>
Loopback писал(а):
Mellomann писал(а):- помогло, спасибо. Настоятельно советую это дописать в стандартный конфиг.
Добавлю.
Т. е. я не знаю, что именно собирались добавить/добавили, я к тому, что текстовую дату тоже можно добавить, т. к. решение проблемы для обывателя не очевидно (я, когда столкнулся, решил, что это баг). Или, может, лучше было бы придумать альтернативный способ чтения типа ft_datetime_or_string.

2. Есть ли возможность добавить поддержку multiple string? Согласно стандарту id3v2.4.0-frames, п. 4.2:

Код: Выделить всё

All text information frames supports multiple strings, stored as a null separated list, where null is represented by the termination code for the character encoding.
На данный момент, если в тэге artist указано несколько исполнителей, то отображается только первый. Не знаю, как точно проверить, но программа MediaInfo (0.7.80) тоже читает только одну строку, — значит от TCMediaInfo тут уже ничего не зависит?

3. Если поля комментария COMM нету (а иногда даже если есть, например, был случай, когда поле в файле присутствовало, но кодировка была неверная), то вместо него отображается artist (TPE1). У кого-нибудь такая же ситуация наблюдалась? В чём может быть причина? В файле TCMediaInfo.xml ничего больше, кроме вышеописанного, не добавлял. Ну, ещё добавлял столбец для тэга album artist, но это не должно влиять.
Baltazar
Сообщения: 67
Зарегистрирован: Чт окт 01, 2015 17:02

Сообщение Baltazar »

Подскажите, как исключить из обработки плагином определённые форматы ? Как включить - понятно ( xx_detect="EXT="AVI" | .. ), а вот как их исключить при наличии флага "MULTIMEDIA" ?

Или же исключений нет и решить проблему можно только вручную прописав все детектируемые расширения ?
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Baltazar
Поиск по форуму (например, по исключить формат) сломался? Пример.
Даже самая богатая фантазия
Не представит себе наши безобразия.
addhaloka
Сообщения: 169
Зарегистрирован: Вт ноя 09, 2010 16:09

Сообщение addhaloka »

Baltazar писал(а):Подскажите, как исключить из обработки плагином определённые форматы ? Как включить - понятно ( xx_detect="EXT="AVI" | .. ), а вот как их исключить при наличии флага "MULTIMEDIA" ?
Хм, у меня вообще строки detect для него нет - форматы берутся из TCMediaInfo.xml. Там же можно убрать ненужные.

p.s. Смотрю, уже обсуждалось это...
Последний раз редактировалось addhaloka Пн апр 17, 2017 20:09, всего редактировалось 1 раз.
Baltazar
Сообщения: 67
Зарегистрирован: Чт окт 01, 2015 17:02

Сообщение Baltazar »

Avada, искал, да запросы были другие, вот и вылезало не то :/ Спасибо.

addhaloka, спасибо, как вариант решения проблемы сгодится ;)
DCT
Сообщения: 11
Зарегистрирован: Ср фев 28, 2007 20:15

Сообщение DCT »

Плагин имеет пренеприятнейший баг: при его использовании в TC периодически включается плавная прокрутка.
Вот тут https://www.ghisler.ch/board/viewtopic.php?p=311395 установили, что версия 0.7.2 вызывает этот баг только при использовавнии в качестве листер-плагина, а версия 0.7.1 бага не имеет совсем.

Если автор тут бывает, то большая просьба поправить.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Не удаётся задействовать отображение Nominal bitrate для видео в mkv. Добавляю "<source name="BitRate_Nominal" field="BitRate_Nominal"/>", и соответствующую строку в column, но не отображает, хотя в самой программе этот пункт для данного видео действует.
Skif_off
Сообщения: 1252
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Dimsok
Так

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<tcmediainfo>
    ...
    <sources>
        <!-- Video -->
        ...
        <source name="VideoBrN" field="BitRate_Nominal" context="Video"/>
        ...
    </sources>
    <columns>
        ...
        <!-- Video -->
        ...
        <column name="Video Bitrate Nominal">
            <unit name="Bps">VideoBrN</unit>
            <unit name="KBps" type="script">Output:=Format('%f', VideoBrN/1000);</unit>
            <unit name="MBps" type="script">Output:=Format('%f', VideoBrN/1000000);</unit>
        </column>
        ...
?
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Спасибо, так вроде отображает.
Skif_off
Сообщения: 1252
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

TCMediaInfoClearBase. Скачать

Очистка базы плагина TCMediaInfo от устаревших записей и оптимизация базы, возможно принудительно указать папку или список файлов (см. примечание п.3).
Написано на AutoIt (писалось и проверялось в версии 3.3.8.1).

Скрипт перебирает список файлов в базе и проверяет существование: если файл не существует - будет удалён из базы. Если файл существует, то сравнивается его размер с размером в базе: если не равны - файл будет удалён из базы.
Скрипт необходимо положить в папку плагина TCMediaInfo, рядом должны быть: файл конфигурации плагина TCMediaInfo.xml и библиотека SQLite. В случае использования х64-версии AutoIt для работы будет автоматически выбрана 64-битная библиотека SQLite ("Sqlite3_x64.dll").

1. TCMediaInfo сбрасывает информацию в файл базы только при выгрузке, поэтому после запуска скрипта необходимо закрыть Total Commander/Double Commander (TC/DC).
2. Запускать необходимо из TC/DC! В путях могут использоваться переменные окружения TC/DC (самое очевидное - %COMMANDER_PATH%): чтобы получить их значение, они должны наследоваться скриптом.
3. Допустимо использовать параметр запуска (только один!), тип переданного параметра будет определён автоматически:
- каталог, файлы которого необходимо убрать из базы (например, после изменения тегов, не меняющих размер файла);
- список файлов, которые необходимо убрать из базы (в UTF-16 LE!).
Список выделенных файлов передаётся следующим параметром:
- в TC: "%WL"
- в DC: %/1%LW
ПРИМЕЧАНИЕ: Использование параметра НЕ отменяет проверки базы на существование и изменение размера файлов и оптимизации базы в случае её модификации!

Отчёт VirusTotal: UPX, nonUPX
Skif_off
Сообщения: 1252
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

TCMediaInfoClearBase 0.1.4.0
Исправлена работа с файлом списка:
- файл списка читается до окна подтверждения (Double Commander при закрытии удаляет его молча);
- файл списка теперь удаляется скриптом, после его обработки (Total Commander не удаляет его при закрытии).

Может быть, есть смысл добавить возможнось удалять только записи, указанные параметром (каталог или список)? Единственный вариант использования, который приходит в голову - портативная версия и несколько ПК, насколько это может быть реально?
Skif_off
Сообщения: 1252
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

TCMediaInfoClearBase 0.1.5.0
Если после проверки к удалению оставался всего один файл, то он не удалялся.
Skif_off
Сообщения: 1252
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Loopback
А как вы решаете проблему с кодировкой (fix_cp/FixCP)? Наворотил
[cut]

Код: Выделить всё

#NoTrayIcon

Local $hDLL, $aMediaInfo, $aMediaInfoGet, $Tmp, $aTmp, $i, $iC = 0

If $CmdLine[0] <> 1 Then Exit

$hDLL = DllOpen(@ScriptDir & '\MediaInfo.dll')
$aMediaInfo = DllCall($hDLL, 'ptr', 'MediaInfo_New')
DllCall($hDLL, 'dword', 'MediaInfo_Open', 'ptr', $aMediaInfo[0], 'wstr', $CmdLine[1])
DllCall($hDLL, 'wstr', 'MediaInfo_Option', 'ptr', 0, 'wstr', 'Inform', 'wstr', 'General;%Title%')
$aMediaInfoGet = DllCall($hDLL, 'wstr', 'MediaInfo_Inform', 'ptr', $aMediaInfo[0], 'int', 0)
DllCall($hDLL, 'none', 'MediaInfo_Close', 'ptr', $aMediaInfo[0])
DllClose($hDLL)

$Tmp = StringToBinary($aMediaInfoGet[0], 2)
$aTmp = StringRegExp(StringTrimLeft($Tmp, 2), '(?s).{4}', 3)
$Tmp = ''
For $i = 0 To UBound($aTmp) - 1
    If StringRight($aTmp[$i], 2) == '00' Then
        $Tmp &= StringLeft($aTmp[$i], 2)
    Else
        $iC = 1
        ExitLoop
    EndIf
Next
If $iC = 1 Then
    MsgBox(4096, 'Test', $aMediaInfoGet[0])
Else
    MsgBox(4096, 'Test', $aMediaInfoGet[0] & ': ' & @CRLF & BinaryToString('0x' & $Tmp, 1))
EndIf
[/cut]
но как-то всё это не очень нравится...
Ответить