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 

Определение ориентаций видеофайлов
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
BeardFury78



Joined: 25 Aug 2016
Posts: 213

Post (Separately) Posted: Thu Sep 28, 2017 22:54    Post subject: Определение ориентаций видеофайлов Reply with quote

Ищу плагины, которые могут показать ориентацию (портретную или ландшафтную) видеофайлов. Наподобие как это делает wdx4i для изображений. И чтобы это можно было вывести в колонки для сортировки таких файлов. Форматы mp4, webml.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Fri Sep 29, 2017 05:27    Post subject: Reply with quote

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>
Back to top
View user's profile Send private message
BeardFury78



Joined: 25 Aug 2016
Posts: 213

Post (Separately) Posted: Fri Sep 29, 2017 06:41    Post subject: Reply with quote

Skif_off
Дописал все, кроме последней правки, в файл TCMediaInfo.xml и создал новые колонки, но не получилось успешно отсортировать файлы, так как мне хочется. Rotation1 показывает только 0.000 на все видеофайлы, хотя в папке есть как портретные, так и ландшафтные, Rotation2 вообще ничего не показывает, только пустое поле. Вообще не совсем понял, что значит "нормальные видео" в контексте вашего сообщения, может мы о разном говорим, я вот например хочу чтобы в колонках можно было увидеть в каких режимах сняты видео, в потретном ли или в ландшафтном (то есть портретные - это когда снимают вертикально на смартфоне, а ландшафтные - когда переворачивают смартфон перед съемкой, как-то так).
P.S. скачал с ютуба одно вертикальное и другое горизонтальное видео, закинул в одну папку и на этих файлов показывает тот же самый результат: 0.000 от Rotation1 и пустое поле от Rotation2.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Fri Sep 29, 2017 11:29    Post subject: Reply with quote

BeardFury78
Есть нормальное видео, традиционно снятое горизонтально, и есть всё остальное: снятое перевёрнутым или вертикально.

Не знаю, что вы скачали, снял телефоном видео нормально, перевёрнуто, два варианта вертикально - всё чётко. Покажите скриншоты или из плеера скопируйте из свойств файла ширину и высоту: если высота больше ширины, то, получив размеры, определить будет легко. И имейте в виду, если видео было криво снято, а потом перекодировано с добавлением чёрных полос справа и слева, то MediaInfo тут вряд ли поможет, если только громоздить что-то, выдёргивая какой-то кадр и автоматически анализировать.
Back to top
View user's profile Send private message
BeardFury78



Joined: 25 Aug 2016
Posts: 213

Post (Separately) Posted: Fri Sep 29, 2017 15:55    Post subject: Reply with quote

Skif_off
Например, в Kmplayer свойство одного вертикального видео показывает - width 302 pixels, height 540 pixels. На другом горизонтальном видео - width 718, height 404 pixels. Rotation1 на этих видео все равно показывает 0.000.

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

Можно ли из этого сделать скрипт и вычислять из этого в колонках ориентацию? В колонках определение разрешений видео работает нормально, но хотелось бы чтобы просто было поле ориентации, чтобы легко отсортировать.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Fri Sep 29, 2017 16:13    Post subject: Reply with quote

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 напрямую.
Back to top
View user's profile Send private message
BeardFury78



Joined: 25 Aug 2016
Posts: 213

Post (Separately) Posted: Fri Sep 29, 2017 18:23    Post subject: Reply with quote

Skif_off
Сделал, Rotation вообще теперь выдает пустое поле.
x64 bit версию использую.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Fri Sep 29, 2017 20:25    Post subject: Reply with quote

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>
Back to top
View user's profile Send private message
BeardFury78



Joined: 25 Aug 2016
Posts: 213

Post (Separately) Posted: Fri Sep 29, 2017 21:20    Post subject: Reply with quote

Skif_off
Внес правку, теперь показывает Achtung на некоторых видео, но оно как-то странно работает, зачисляет и горизонтальные и вертикальные, посмотрите на скриншоте на колонки width и height и на то, какие файлы с какими разрешениями зачисляются и не зачисляются, кажется определяет чуть ли не в рандомном порядке. Может это плагин tcmediainfo как-то криво работает? Для определение высоты и ширины видеофайлов на этом скриншоте к примеру использую плагин mediainfowdx.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Sat Sep 30, 2017 01:08    Post subject: Reply with quote

BeardFury78
Не стал бы сразу грешить на плагин, возможно, скрипт в чём-то косячно отрабатывает, только не понимаю, в чём.
WinScript Advanced не пользуетесь? Если да, то забэкапьте, чтобы потом восстановить, и поставьте это, отдаёт только одно поле, всё нужное внутри (правда, костыльно, AutoIt не напрямую, а через JS-скрипт, сейчас буду репортить автору). Результат тот же?
Back to top
View user's profile Send private message
BeardFury78



Joined: 25 Aug 2016
Posts: 213

Post (Separately) Posted: Sat Sep 30, 2017 01:59    Post subject: Reply with quote

Skif_off
Теперь уже пишет "не удается найти указанный файл", в чем проблема не знаю, перед установкой перенес папку с плагином и ставил ваш файл через Тотал.

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

Отбой, похоже проблема какая-то на моей стороне, поставил этот файл на чистый Тотал и теперь Achtung определяется. К сожалению, результат тот же, определяются как горизонтальные, так и вертикальные видео. Ладно, попробую просто пошаманить в Excel'e чтобы просто из содержимого всех колонок извлекать только те файлы, которые имеют высоту видео больше чем ширину и таким образом смогу скопировать все строки с вертикальными видео и выбрать все такие файлы в Тотале через буфер.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Sat Sep 30, 2017 12:43    Post subject: Reply with quote

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 файлов. Всё одно не вручную...
Back to top
View user's profile Send private message
BeardFury78



Joined: 25 Aug 2016
Posts: 213

Post (Separately) Posted: Sat Sep 30, 2017 19:21    Post subject: Reply with quote

Skif_off
Не работает, определяет как горизонтальные, так и вертикальные. С Excel'em ничего что вручную, уже все вертикальные видео побросал в одну папку и горизонтальные в другую.
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Tue Oct 10, 2017 03:45    Post subject: Reply with quote

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



Joined: 25 Aug 2016
Posts: 213

Post (Separately) Posted: Tue Oct 10, 2017 15:08    Post subject: Reply with quote

Flasher
По первой ссылке немного проще, теперь у меня одна колонка, а не две. По второй ссылке внес все правки в нужные файлы, перезапустил ТС, но что-то нету нужных полей в окне выбора колонок, они отсутствуют.
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