Определение ориентаций видеофайлов
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2  Next  :| |:
Total Commander -> Плагины Total Commander

#1: Определение ориентаций видеофайлов Author: BeardFury78 PostPosted: Thu Sep 28, 2017 22:54
    —
Ищу плагины, которые могут показать ориентацию (портретную или ландшафтную) видеофайлов. Наподобие как это делает wdx4i для изображений. И чтобы это можно было вывести в колонки для сортировки таких файлов. Форматы mp4, webml.

#2:  Author: Skif_off PostPosted: Fri Sep 29, 2017 05:27
    —
BeardFury78
Можно поробовать один из плагинов, работающих с MediaInfo, вижу два поля - Rotation и Rotation/String. Навскидку, TCMediaInfo:
- открываете TCMediaInfo.xml;
- находите секцию <sources></sources> и дописываете в неё строки
Code:
        <source name="Rotation1" field="Rotation" context="Video"/>
        <source name="Rotation2" field="Rotation/String" context="Video"/>

- прокручиваете файл ниже и в секцию <columns></columns> дописываете ещё две строки
Code:
        <column name="Rotation1">Rotation1</column>
        <column name="Rotation2">Rotation2</column>

- закрываете, перезапускаете ТС, создаёте набор с новыми полями и смотрите результат.
Смотрите документацию плагина, подбираете приемлемые имена или оставляете что-то одно. Также строки для эстетической завершённости лучше дописывать к конкретному блоку, в данном случае к тому, что идёт после <!-- Video --> и до <!-- Audio -->, перед <separator/>.

С Rotation2 строка отдаётся в виде "n°" для повёрнутых (набок - 90° или 270°, перевёрнутое - 180°), либо пустая для нормальных. С Rotation1 похоже, только цифры 90.000/180.000/270.000, но для нормальных видео отдаёт "0.000" и это можно использовать так: не выводить значение для всех, а только предупреждение для повёрнутых так или иначе видео, заменив
Code:
        <column name="Rotation1">Rotation1</column>

на что-то вроде этого
Code:
        <column name="Rotation1" type="script">
        <![CDATA[
          if (Rotation1 <> '0.000') then Output:='Achtung!';
        ]]>
        </column>

#3:  Author: BeardFury78 PostPosted: Fri Sep 29, 2017 06:41
    —
Skif_off
Дописал все, кроме последней правки, в файл TCMediaInfo.xml и создал новые колонки, но не получилось успешно отсортировать файлы, так как мне хочется. Rotation1 показывает только 0.000 на все видеофайлы, хотя в папке есть как портретные, так и ландшафтные, Rotation2 вообще ничего не показывает, только пустое поле. Вообще не совсем понял, что значит "нормальные видео" в контексте вашего сообщения, может мы о разном говорим, я вот например хочу чтобы в колонках можно было увидеть в каких режимах сняты видео, в потретном ли или в ландшафтном (то есть портретные - это когда снимают вертикально на смартфоне, а ландшафтные - когда переворачивают смартфон перед съемкой, как-то так).
P.S. скачал с ютуба одно вертикальное и другое горизонтальное видео, закинул в одну папку и на этих файлов показывает тот же самый результат: 0.000 от Rotation1 и пустое поле от Rotation2.

#4:  Author: Skif_off PostPosted: Fri Sep 29, 2017 11:29
    —
BeardFury78
Есть нормальное видео, традиционно снятое горизонтально, и есть всё остальное: снятое перевёрнутым или вертикально.

Не знаю, что вы скачали, снял телефоном видео нормально, перевёрнуто, два варианта вертикально - всё чётко. Покажите скриншоты или из плеера скопируйте из свойств файла ширину и высоту: если высота больше ширины, то, получив размеры, определить будет легко. И имейте в виду, если видео было криво снято, а потом перекодировано с добавлением чёрных полос справа и слева, то MediaInfo тут вряд ли поможет, если только громоздить что-то, выдёргивая какой-то кадр и автоматически анализировать.

#5:  Author: BeardFury78 PostPosted: Fri Sep 29, 2017 15:55
    —
Skif_off
Например, в Kmplayer свойство одного вертикального видео показывает - width 302 pixels, height 540 pixels. На другом горизонтальном видео - width 718, height 404 pixels. Rotation1 на этих видео все равно показывает 0.000.

Quote:
если высота больше ширины, то, получив размеры, определить будет легко.

Можно ли из этого сделать скрипт и вычислять из этого в колонках ориентацию? В колонках определение разрешений видео работает нормально, но хотелось бы чтобы просто было поле ориентации, чтобы легко отсортировать.

#6:  Author: Skif_off PostPosted: Fri Sep 29, 2017 16:13
    —
BeardFury78
Возможно, при перекодировании Rotation теряется, а раз нет, то значение всегда 0.000. Но если "width 302 pixels, height 540 pixels", то в качестве условия можно принять, что если ширина меньше высоты - видео вертикальное.

Какую версию ТС вы используете - х32, х64 или х32+х64?

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

Хм, если не изменяет память, TCMediaInfo получает всю прописанную в свойм конфиге информацию о файле сразу за раз (к тому же иначе использование базы становится несколько бессмысленным), тогда убираете всё, что добавляли в TCMediaInfo.xml и делаем заново:
- в <sources></sources> перед строкой <!-- Audio --> добавляете
Code:
        <source name="Rotation" field="Rotation" context="Video"/>

- в <columns></columns> перед строками
Code:
        <separator/>
        <!-- Audio -->

дописываете
Code:
        <column name="Rotation" type="script">
        <![CDATA[
          if (Rotation <> '0.000') then
            Output:='Achtung!';
          else
            if (VideoFrameWidth > VideoFrameHeight) then
              Output:='Achtung!';
            else
              Output:='';
        ]]>
        </column>

Т.е. если Rotation в файле прописан и не равен 0, то предполагается, что видео не обычное горизонтальное, если же равен 0, то проверяем ширину и высоту: если первая больше второй - видео не обычное горизонтальное.
Ну, "Achtung!" замените на что-нибудь удобнее, взял от балды.

Если не сработает, то можно попробовать провернуть то же самое, но с WinScript Advanced и AutoIt, дёргая MediaInfo.dll напрямую.

#7:  Author: BeardFury78 PostPosted: Fri Sep 29, 2017 18:23
    —
Skif_off
Сделал, Rotation вообще теперь выдает пустое поле.
x64 bit версию использую.

#8:  Author: Skif_off PostPosted: Fri Sep 29, 2017 20:25
    —
BeardFury78
Наверное, какие-то нюансы языка, попробуйте так
Code:
        <column name="Rotation" type="script">
        <![CDATA[
          if (Rotation = '') then
            if (VideoFrameWidth < VideoFrameHeight) then
              Output:='Achtung!'
          else
            if (Rotation = '0.000') then
              if (VideoFrameWidth < VideoFrameHeight) then
                Output:='Achtung!'
            else
              Output:='Achtung!'
        ]]>
        </column>

Вроде стабильный результат.

P.S. Минут 40 убил, прежде чем дошло, что *.3gp просто нет ни в конфиге плагина, ни в детект строке wincmd.ini Smile)

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

Так, пожалуй, будет покороче
Code:
        <column name="Rotation" type="script">
        <![CDATA[
          if (Rotation <> '0.000') and (Rotation <> '') then
            Output:='Achtung!'
          else
            if (VideoFrameWidth < VideoFrameHeight) then
              Output:='Achtung!'
        ]]>
        </column>

#9:  Author: BeardFury78 PostPosted: Fri Sep 29, 2017 21:20
    —
Skif_off
Внес правку, теперь показывает Achtung на некоторых видео, но оно как-то странно работает, зачисляет и горизонтальные и вертикальные, посмотрите на скриншоте на колонки width и height и на то, какие файлы с какими разрешениями зачисляются и не зачисляются, кажется определяет чуть ли не в рандомном порядке. Может это плагин tcmediainfo как-то криво работает? Для определение высоты и ширины видеофайлов на этом скриншоте к примеру использую плагин mediainfowdx.

#10:  Author: Skif_off PostPosted: Sat Sep 30, 2017 01:08
    —
BeardFury78
Не стал бы сразу грешить на плагин, возможно, скрипт в чём-то косячно отрабатывает, только не понимаю, в чём.
WinScript Advanced не пользуетесь? Если да, то забэкапьте, чтобы потом восстановить, и поставьте это, отдаёт только одно поле, всё нужное внутри (правда, костыльно, AutoIt не напрямую, а через JS-скрипт, сейчас буду репортить автору). Результат тот же?

#11:  Author: BeardFury78 PostPosted: Sat Sep 30, 2017 01:59
    —
Skif_off
Теперь уже пишет "не удается найти указанный файл", в чем проблема не знаю, перед установкой перенес папку с плагином и ставил ваш файл через Тотал.

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

Отбой, похоже проблема какая-то на моей стороне, поставил этот файл на чистый Тотал и теперь Achtung определяется. К сожалению, результат тот же, определяются как горизонтальные, так и вертикальные видео. Ладно, попробую просто пошаманить в Excel'e чтобы просто из содержимого всех колонок извлекать только те файлы, которые имеют высоту видео больше чем ширину и таким образом смогу скопировать все строки с вертикальными видео и выбрать все такие файлы в Тотале через буфер.

#12:  Author: Skif_off PostPosted: Sat Sep 30, 2017 12:43
    —
BeardFury78
Как-то быстро сдались Smile Excel - это подольше, к тому же у меня во всех примерах повёрнутых видео ширина больше высоты (не считая тех, которые сам специально кропнул и перекодировал), в таком случае можно оставить хотя бы
Code:
<column name="Rotation">Rotation</column>

для подспорья.

Попробуйте последний вариант:
Code:
        <column name="Rotation" type="script">
        <![CDATA[
          if (Rotation = '90.000') then Output:='Achtung!';
          if (Rotation = '180.000') then Output:='Achtung!';
          if (Rotation = '270.000') then Output:='Achtung!';
          if (VideoFrameWidth < VideoFrameHeight) then Output:='Achtung!';
        ]]>
        </column>

Если не сработает, тут пока размышлял и пробовал, набросал скрипт на AutoIt - выдаёт список имён и по желанию копирует в буфер как раз для той самой cm_LoadSelectionFromClip, можно повесить на кнопку и скармливать ему список выделенных в TC/DC файлов. Всё одно не вручную...

#13:  Author: BeardFury78 PostPosted: Sat Sep 30, 2017 19:21
    —
Skif_off
Не работает, определяет как горизонтальные, так и вертикальные. С Excel'em ничего что вручную, уже все вертикальные видео побросал в одну папку и горизонтальные в другую.

#14:  Author: FlasherLocation: Москва PostPosted: Tue Oct 10, 2017 03:45
    —
BeardFury78
А не проще по этим данным?: 1, 2.

#15:  Author: BeardFury78 PostPosted: Tue Oct 10, 2017 15:08
    —
Flasher
По первой ссылке немного проще, теперь у меня одна колонка, а не две. По второй ссылке внес все правки в нужные файлы, перезапустил ТС, но что-то нету нужных полей в окне выбора колонок, они отсутствуют.



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