PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   Видео для PS Vita (https://www.pspx.ru/forum/forumdisplay.php?f=395)
-   -   Как кодировать видео для PS Vita? (https://www.pspx.ru/forum/showthread.php?t=95672)

toxanik 17.06.2012 19:10

fedozzi, в первый пост после старинного разбирательства этой вещи таки добавили какую-то инфу. Не помогла?

ErikPshat 17.06.2012 19:32

Цитата:

Сообщение от fedozzi (Сообщение 1036106)
на компе они просматриваются без зеленых полос, и я понял согласно чему, появляются зеленые полосы при просмотре на Вите:
960х544 (2 фильма), 960х540 и 720х308 воспроизводятся без зеленых полос.
960х408, 960х520 и 960х400 (2 фильма) воспроизводятся с зелеными полосками.
Т.е. Вите не нравятся сильно широкие фильмы даже если в них есть черные полосы, что с этим делать??

Если такое происходит, то тут надо понимать ещё одну вещь про чёрные/зелёные полоски:
  • Есть фильмы, допустим 960х400, обрезанные в чистом виде. То есть, по высоте они на 400, далее девайс сам заполняет пустоты сверху и снизу полосками.
  • Есть фильмы, допустим "960х400" (в кавычках), которые смотрятся в точности так же, но это на самом деле 960х544! - так же отображается в характеристиках свойств. Но почему-то у них точно такие-же по высоте чёрные полосы при просмотре.
Тут дело в том, что второй фильм по высоте не 400, а все 544, просто чёрные полосы идут в составе фильма, т.е. эти полоски и есть часть фильма, точно так же, как ошейник у собаки или пистолет в руках человека на видео.
Ну думаю поняли, что я хотел сказать.

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

В настройках, там где Кроп, есть так же функция заполнения пустот чёрным цветом - это как раз и есть то, когда видео не сплющивается, а просто в состав фильма добавляются чёрные полоски, когда по ширине он во всю ширину, а по высоте не хватает аспекта.

Но я предлагаю всегда использовать 2-ой вариант, описанный мною выше в инструкции, либо делать кроп лишнего.

COOLERbyPSP 17.06.2012 19:33

Цитата:

Сообщение от fedozzi (Сообщение 1036106)
что с этим делать

Всё уже давно разжёвано - добавляйте полосы, пока не получите 960*544.

С чёрными полями - 1й способ из шапки.
SONY, запилите нормальную прошивку!

ErikPshat 17.06.2012 19:44

Цитата:

Сообщение от fedozzi (Сообщение 1036106)
Т.е. Вите не нравятся сильно широкие фильмы даже если в них есть черные полосы, что с этим делать??

Как ведут себя фильмы, по моему второму варианту? То есть, фильм привязываешь по максимуму к одной стороне, когда другая остаётся больше, т.е. уходит за пределы разрешения.

Появляются ли зелёные полоски при масштабированни по всей ширине, когда высота становится меньше и должны добавлятся чёртные полоски?

COOLERbyPSP 17.06.2012 19:46

ErikPshat, 1280*544 корректно воспроизводится - проверял лично на вите doubledeath

ErikPshat 17.06.2012 20:01

Кстати, тут пришла одна безумная мысль по поводу зелёных полосочек...
  • Они могут быть чисто зелёными 0х00FF00 - вот так этот цвет выглядет - зелёный по максимуму на 256, остальные цвета на нуле.
  • Они могут быть просто зелёными 0х008000 - вот так этот цвет выглядет - зелёный на половину на 128, остальные цвета на нуле.

Какой цвет показывает Вита, я не знаю )))

В первом случае - это чистый Хрома-кей, который используется в видеопроизводстве, когда на зелёный фон можно наложить любое другое изображение. Это делается, когда снимают в студии с зелёным полотном сзади, а потом накладывают на фон лазурный берег и получается, что действие происходит на берегу чёрного моря, а не в студии.

Во втором случае просто зелёный цвет, но так же может использоваться в Хромакее при соответствующих корректировках.

Поэтому у меня возникла мысль: "А не специально ли для эффектов Sony сделала эту фичу, чтобы заполнять пустоты зелёным, если разрешение видео меньше. То есть, возможно она это может использовать, чтобы прикреплять к видеороликам, рекламным например, тиллерам, а потом на фон накладывать движущуюся окантовку, рамочку и т.п.?"

COOLERbyPSP 17.06.2012 20:03

ErikPshat, а там не пустоты заполняются, там жирная полоса прямо посередине вылазит =\

ErikPshat 17.06.2012 20:17

Цитата:

Сообщение от COOLERbyPSP (Сообщение 1036126)
ErikPshat, а там не пустоты заполняются, там жирная полоса прямо посередине вылазит =\

Хмм, у меня была ассоциация зелёных полос с чёрными, как я понял из разговоов ранее. Получается вы меня опять сбивали с толку всё это время, говоря про зелёные полосочки "типа вместо чёрных" ))) Вот что значит выражать свои мысли не правильно.

В таком случае, возможно это действительно БАГ, когда слишком широкое видео, по отношению к высоте, накладывает на видео зелёные полосы, как испорченный экран, если я правильно понял.

Да просто тогда не парьте себе мозг, а делайте кроп слишком широкого видео до 16:9, чтобы смотреть на весь экран вообще без чёрных полос. Экран на Вите же не как у меня телевизор 40", поэтому незачем ущерблять экран Виты ещё и чёрными полосками.

Кстати, видео нужно не 16:9, потому что это не формат Виты, ведь это 1,777, а у Виты 1,765.

COOLERbyPSP 17.06.2012 20:35

Цитата:

Сообщение от ErikPshat (Сообщение 1036130)
не парьте себе мозг

2 способа в шапке описаны - который нужен, тот и выберут.
Цитата:

Сообщение от ErikPshat (Сообщение 1036130)
не 16:9

Да и у PSP такое же, сильно заморачиваться ради 4х пикселей не стоит.
Цитата:

Сообщение от ErikPshat (Сообщение 1036130)
возможно это действительно БАГ

Давно уже выяснили же)

ErikPshat 17.06.2012 20:56

Цитата:

Сообщение от COOLERbyPSP (Сообщение 1036136)
заморачиваться ради 4х пикселей не стоит

А как же штандарты?

COOLERbyPSP 18.06.2012 01:17

Надо бы шапку немного прибрать. Займусь пока.

fedozzi 18.06.2012 01:21

в общем как правильно сказал COOLERbyPSP, Вита показывает зеленую полоску только при разрешении 960х<544, потому что если ширина будет больше 960, то тогда не важно если высота будет меньше 544, фильмы с разрешением 1040x432, 1120х476, 1152х480 смотрятся отлично :)

COOLERbyPSP 18.06.2012 01:49

fedozzi, SONY тонко троллят, ага) Сначала High 3.1, потом ещё и это...
Погодиииии-ка...а если скормить 976х416?

COOLERbyPSP 19.06.2012 03:02

ErikPshat, насчёт того, что "лучше пиксель в пиксель"
http://puu.sh/BW4b
Это скрин с PSP 100x, разрешение видео 720х576 (анаморфированное в 1024х576, но PSP этого не понимает). Как ни крути, а иероглифы в 480х272 именно на PSP (на компе ок) будут вести себя несколько...хреново, в силу того, что они красные.
(На белом фоне, наверное, не совсем удачный пример =\. Поищу ещё)

Вот. Запилил наглядное сравение. Но, почему-то при ресайзе из 720x576 на PSP немного режутся края.
http://www.check2pic.ru/compare/19048/
Внимательно (невооружённым глазом видно) смотрим на грани красных объектов. И нет, это не артефакты компрессии.

ErikPshat 19.06.2012 05:00

Цитата:

Сообщение от COOLERbyPSP (Сообщение 1036734)
насчёт того, что "лучше пиксель в пиксель"

Не вижу связи. Вижу только, что при ресайзе битрейт явно подрезали и сравнение 2-ух одинаковых картинок 480х272, только с разными размерами 154 кб и 208 кб - вот и весь секрет.

COOLERbyPSP 19.06.2012 05:18

ErikPshat, да ты упорот) Хоть 4 мегабита подай на 480х272, та же хрень будет. Меньший битрейт разве что убил напрочь шум. Скриншоты в битмапе по 382 килобайта мне не понравились - решил пожать (кстати в png - так что баттхёрт неясен). Не веришь - проверяй сам. PSP у тебя полно)
Могу ссылку на исходник дать, там каких-то 36Мбит\с.

vitalikus 19.06.2012 15:52

ErikPshat, На всякий случай даю визуальное представления зелёным полосам
http://i.piccy.info/i7/3c2b61a14461a...C_0073_500.jpg

COOLERbyPSP, Ну я думаю что проблема в рескейле консолью, хотя красный всегда странно артефачил во многих видео форматах...

COOLERbyPSP 19.06.2012 16:54

Проблема не конкретно в красном. Проблема в насыщеных RGB составляющих цветах. Раньше думал, что с матрицей экрана что-то не то, но нет, в играх же всё нормально. Думаю, сей "эффект" можно увидеть и на ПК, выставив вывод видео через VMR-7 (точно не помню, ковырял давно уже).
А за фото с магической_зелёной_хренью отдельное спасибо).

ErikPshat 19.06.2012 21:10

Цитата:

Сообщение от vitalikus (Сообщение 1036976)
даю визуальное представления зелёным полосам

О, спасибо, теперь понятно, что за хрень ))

Тут явно видно, что реально чистый Хромакей 0х00FF00.
Думаю это всё-таки из-за ширины происходит сдвиг эффекта и всё-таки какая-то задумка Sony. Реально наводит на мысли, что задумывалось на фон ставить рамочку видео или картинки под уменьшенное видео. Делается это так... делается трейлер размером, например 760х320, а под ним, в качестве бэкграунда, воспроизводится другая заставка или картинка и вместо зелёного она заполняет фон, а где нет зелёного, там не затрагивается.

Нужно только узнать технологию, как 2 видео воспроизводить одновременно, думаю тут нужен XML.

Кстати, возможно такой эффект кто-нибудь встречал, например в заставках игр или в демороликах...

vivan 20.06.2012 17:52

COOLERbyPSP,
эта "проблема" заложена в самом стандарте видео, а именно используемом цветовом пространстве YV12.
Дело в том, что видео кодируется не в привычном RGB, а в YV12. Это такой цветовой формат, в котором есть три компоненты - яроксть + две цветовых. Прикол в том, что из-за особенностей глаза (меньшая чувствительность к цвету, чем к яркости), можно кодировать цветовые компоненты в два раза меньше разрешении.
Таки образом на блок из 2х2 пикселя тратится не 4х3х8 = 96 бит (24 бита на пиксель в среднем), а 8 (один семпл первой цветовой составляющей) + 8 (один семпл второй) + 4х8 (четыре семпла яркостной) = 48 бит или 12 бит на пиксель в среднем. Т.е. выгода - в два раза, при практически минимальном визуальном отличии.
Картинко раз, и еще вики: http://ru.wikipedia.org/wiki/YUV

Но отличие таки есть, и оно заметно на вот таких мелких цветных деталях. Еще заметно на записях видео с экрана.
Вот например, видео в 4:4:4, и сравнение скрина с исходного видео и после ConvertToYV12 ().

Также из этого вытекает еще 1 проблема: как обратно все растягивать. Есть несколько алгоритмов интерполяции:
1) Nearest Neighbor (ака ближайший сосед). В общем из 1 пикселя получается 4 простым превращением 1 пикселя в 2х2 таких же. Например на твоей аве это будет выглядеть так: http://2.firepic.org/2/images/2012-0...xm7gf0afym.png
2) Что-нибудь отличное от него. Выглядит куда лучше.
Вот сравнение, скрин с одного видео, просто разные настройки рендерера (штука, которая из YV12 получает RGB, который на дисплей выводится): http://screenshotcomparison.com/comparison/131312

Беда виты в том, что она хрому (цветовую компоненту) масштабирует по первому алгоритму. Что с этим можно делать? Да разве что кодировать в разрешении выше нативного (видимо лучше всего - 720p), тогда дополнительное масштабирование всей картинки будет немного это все сглаживать. А еще можно гневное письмо в сони написать :D

З.ы. пока гоняю тесты, но на первый взгляд - вита потянула 720p с 9ю рефреймами (что соответствует High@L4.1), но пониженым до 3.1 левелом.
З.ы.ы. сам пока кодирую --preset <какой хочешь по соотношению скорость/сжатие> --tune animation --crf 17 --profile high --level 3.1 --vbv-maxrate 17500 --vbv-bufsize 17500, все ок даже с 720p@60fps видео.
Инфа про размер vbv буфера у виты - проверенная?) И таки рекомендую перейти на пресеты (medium это не пресет, это дефолт :D), и если надо - уже крутить настройки относительно них. А то половина - это veryslow, плюс-минус. Их же совсем не зря сделали ;)
З.ы.ы.ы. эта зелень - это мб YUV с 0 в каждой компоненте. Можете сами проверить :) http://fic.bos.ru/solutions/YUV2RGB.php Если как-нибудь кто-нибдуь снимет скрин с зеленью - можно будет проверить, число там близкое к 135 или к 255)
З.ы.ы.ы.ы. еще по поводу кодирования в натив/не натив - разницы особой нет - сама вита масштабирует неплохо, так что особой разницы между хорошим скейлером при кодировании и скейлом при воспроизведении нет. Но учитывая проблему с апсемплингом хромы - рекомендую таки 720p, а не натив.
З.ы.ы.ы.ы.ы. еще одна мысль по поводу зелени - так работает аппаратный оверлей.
Цитата:

An application using a hardware overlay gets a completely separate section of video memory that belongs only to that application. Because nothing else uses it, the program never needs to waste resources in checking whether a given piece of the memory belongs to it, nor does it need to monitor whether the user moves the window and changes the location of the video memory. To get the image from the separate video memory to display in tandem with the remaining shared elements on the display, the graphical subsystem associates a certain attribute (for example, a particular color) as a "mask" for that overlay, which the graphics card understands to mean that it is to draw from the separate overlay buffer onto the screen. (This technique has become known as "chroma key".)
Возможно рендрер считает, что он должен выводить на весь экран - и готовит область во весь экран... а видеокарта отдает видео не на весь экран - вот и остается "подготовленный" кусок экрана, в который ничего не вывели - и он имеет цвет "подготовленной" части.
З.ы.(6) tl;dr а сабы так и не завелись? А то в очень обширных настройках из суммарных 4х пунктов есть "язык субтитров" о_О


Текущее время: 01:59. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.