View previous topic :: View next topic |
Author |
Message |
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Thu Sep 28, 2017 22:54 Post subject: Определение ориентаций видеофайлов |
|
|
Ищу плагины, которые могут показать ориентацию (портретную или ландшафтную) видеофайлов. Наподобие как это делает wdx4i для изображений. И чтобы это можно было вывести в колонки для сортировки таких файлов. Форматы mp4, webml. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Skif_off
Joined: 28 Nov 2012 Posts: 1232
|
(Separately) Posted: Fri Sep 29, 2017 05:27 Post subject: |
|
|
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 |
|
![](templates/subSilver/images/spacer.gif) |
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Fri Sep 29, 2017 06:41 Post subject: |
|
|
Skif_off
Дописал все, кроме последней правки, в файл TCMediaInfo.xml и создал новые колонки, но не получилось успешно отсортировать файлы, так как мне хочется. Rotation1 показывает только 0.000 на все видеофайлы, хотя в папке есть как портретные, так и ландшафтные, Rotation2 вообще ничего не показывает, только пустое поле. Вообще не совсем понял, что значит "нормальные видео" в контексте вашего сообщения, может мы о разном говорим, я вот например хочу чтобы в колонках можно было увидеть в каких режимах сняты видео, в потретном ли или в ландшафтном (то есть портретные - это когда снимают вертикально на смартфоне, а ландшафтные - когда переворачивают смартфон перед съемкой, как-то так).
P.S. скачал с ютуба одно вертикальное и другое горизонтальное видео, закинул в одну папку и на этих файлов показывает тот же самый результат: 0.000 от Rotation1 и пустое поле от Rotation2. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Skif_off
Joined: 28 Nov 2012 Posts: 1232
|
(Separately) Posted: Fri Sep 29, 2017 11:29 Post subject: |
|
|
BeardFury78
Есть нормальное видео, традиционно снятое горизонтально, и есть всё остальное: снятое перевёрнутым или вертикально.
Не знаю, что вы скачали, снял телефоном видео нормально, перевёрнуто, два варианта вертикально - всё чётко. Покажите скриншоты или из плеера скопируйте из свойств файла ширину и высоту: если высота больше ширины, то, получив размеры, определить будет легко. И имейте в виду, если видео было криво снято, а потом перекодировано с добавлением чёрных полос справа и слева, то MediaInfo тут вряд ли поможет, если только громоздить что-то, выдёргивая какой-то кадр и автоматически анализировать. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Fri Sep 29, 2017 15:55 Post subject: |
|
|
Skif_off
Например, в Kmplayer свойство одного вертикального видео показывает - width 302 pixels, height 540 pixels. На другом горизонтальном видео - width 718, height 404 pixels. Rotation1 на этих видео все равно показывает 0.000.
Quote: | если высота больше ширины, то, получив размеры, определить будет легко. |
Можно ли из этого сделать скрипт и вычислять из этого в колонках ориентацию? В колонках определение разрешений видео работает нормально, но хотелось бы чтобы просто было поле ориентации, чтобы легко отсортировать. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Skif_off
Joined: 28 Nov 2012 Posts: 1232
|
(Separately) Posted: Fri Sep 29, 2017 16:13 Post subject: |
|
|
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 |
|
![](templates/subSilver/images/spacer.gif) |
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Fri Sep 29, 2017 18:23 Post subject: |
|
|
Skif_off
Сделал, Rotation вообще теперь выдает пустое поле.
x64 bit версию использую. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Skif_off
Joined: 28 Nov 2012 Posts: 1232
|
(Separately) Posted: Fri Sep 29, 2017 20:25 Post subject: |
|
|
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 )
Добавлено спустя 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 |
|
![](templates/subSilver/images/spacer.gif) |
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Fri Sep 29, 2017 21:20 Post subject: |
|
|
Skif_off
Внес правку, теперь показывает Achtung на некоторых видео, но оно как-то странно работает, зачисляет и горизонтальные и вертикальные, посмотрите на скриншоте на колонки width и height и на то, какие файлы с какими разрешениями зачисляются и не зачисляются, кажется определяет чуть ли не в рандомном порядке. Может это плагин tcmediainfo как-то криво работает? Для определение высоты и ширины видеофайлов на этом скриншоте к примеру использую плагин mediainfowdx. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Skif_off
Joined: 28 Nov 2012 Posts: 1232
|
(Separately) Posted: Sat Sep 30, 2017 01:08 Post subject: |
|
|
BeardFury78
Не стал бы сразу грешить на плагин, возможно, скрипт в чём-то косячно отрабатывает, только не понимаю, в чём.
WinScript Advanced не пользуетесь? Если да, то забэкапьте, чтобы потом восстановить, и поставьте это, отдаёт только одно поле, всё нужное внутри (правда, костыльно, AutoIt не напрямую, а через JS-скрипт, сейчас буду репортить автору). Результат тот же? |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Sat Sep 30, 2017 01:59 Post subject: |
|
|
Skif_off
Теперь уже пишет "не удается найти указанный файл", в чем проблема не знаю, перед установкой перенес папку с плагином и ставил ваш файл через Тотал.
Добавлено спустя 31 минуту:
Отбой, похоже проблема какая-то на моей стороне, поставил этот файл на чистый Тотал и теперь Achtung определяется. К сожалению, результат тот же, определяются как горизонтальные, так и вертикальные видео. Ладно, попробую просто пошаманить в Excel'e чтобы просто из содержимого всех колонок извлекать только те файлы, которые имеют высоту видео больше чем ширину и таким образом смогу скопировать все строки с вертикальными видео и выбрать все такие файлы в Тотале через буфер. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Skif_off
Joined: 28 Nov 2012 Posts: 1232
|
(Separately) Posted: Sat Sep 30, 2017 12:43 Post subject: |
|
|
BeardFury78
Как-то быстро сдались 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 |
|
![](templates/subSilver/images/spacer.gif) |
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Sat Sep 30, 2017 19:21 Post subject: |
|
|
Skif_off
Не работает, определяет как горизонтальные, так и вертикальные. С Excel'em ничего что вручную, уже все вертикальные видео побросал в одну папку и горизонтальные в другую. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Flasher
![](images/avatars/11897631144e285f14b2775.jpg)
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Oct 10, 2017 03:45 Post subject: |
|
|
BeardFury78
А не проще по этим данным?: 1, 2. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Tue Oct 10, 2017 15:08 Post subject: |
|
|
Flasher
По первой ссылке немного проще, теперь у меня одна колонка, а не две. По второй ссылке внес все правки в нужные файлы, перезапустил ТС, но что-то нету нужных полей в окне выбора колонок, они отсутствуют. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
|
|
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
|