Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Масштабирование/Отображение постеров Kodi > v18 #8

Open
AKotov-dev opened this issue Jul 20, 2023 · 7 comments

Comments

@AKotov-dev
Copy link

AKotov-dev commented Jul 20, 2023

Здравствуйте, уважаемый vlmaksime. Большое спасибо за Вашу работу над плагином Filmix. Если это не слишком обременит Вас, хотел бы обратиться к Вам за консультацией...

Начиная с Kodi-19-Matrix и в Kodi-20-Nexus некоторые постеры/обложки у меня не отображаются. C питоном я не работаю, однако по следам Ваших изменений я предпринял скромную попытку выяснить, в чем дело и в качестве эксперимента исправил для себя кое что здесь:

~/.kodi/addons/plugin.video.filmix/recources/libs/listitems.py

Заменил
return self._item_info['poster'].replace('thumbs/w220', 'orig')
на
return self._item_info['poster'].replace('thumbs/w221', 'orig')
или на
return self._item_info['poster'].replace('100', 'orig')

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

Другие плагины, например seasonvar постеры кажут верно.

Разрешение экрана моего TV - 1360x768, карта NVidia GeForce-6200 AGP/SSE2, Linux Mageia-6.1_i586, Python-3.9.

Вопрос: Как правильно масштабировать постеры в моём случае? Спасибо.

С уважением,
Алексей

@vlmaksime
Copy link
Owner

Приветствую!
Изначально, в API сервера возвращает ссылки на постеры в низком разрешении. Строка кода
return self._item_info['poster'].replace('thumbs/w220', 'orig')
выполняет подмену части ссылки, чтоб всегда использовался постер в оригинальном разрешении.
Ваши изменения в коде приводят к тому, что все постеры выводятся в низком разрешении.
Возможно постер в высоком качестве просто долго подгружается, из-за этого он у Вас не отображается.

Попробуйте в модуле код функции

    def get_poster(self):
        return self._item_info['poster'].replace('thumbs/w220', 'orig')

заменить на код

    def get_poster(self):
        from .web import Filmix
        api = Filmix()

        poster_url = self._item_info['poster'].replace('thumbs/w220', 'orig')
        if not api.url_available(poster_url):
            poster_url = self._item_info['poster']

        return poster_url

Это изменение добавить проверку на доступность постера. Если по какой-то причине постер в высоком качестве не доступен, будет использоваться постер в низком качестве.

@AKotov-dev
Copy link
Author

Благодарю. Сейчас применил изменения. Эффект такой, что теперь категория "Фильмы" открывается с паузой ~2 мин (у меня скорость канала 6Мбит/Сек), а после открытия - как и прежде: какие-то постеры отображаются (в хорошем качестве), а какие-то замещены черной картинкой с кинокамерой, т.е. не отображаются. Видно, что он пытается его показать (присутствует пауза, т.е. он куда-то там лазает), но такое ощущение, что по причине того, что не может смасштабировать полученное, соответственно не может и запихать его в правый фрейм (не знаю, как правильно назвать часть окна, где размещается постер Коди).

@vlmaksime
Copy link
Owner

Скорей всего, KODI просто не успевает подгрузить картинку.
Попробуйте сделать получение постеров только низком качестве, установив функцию с кодом

    def get_poster(self):
        return self._item_info['poster']

Все постеры будут в низком качестве и должны будут быстро прогружаться

@AKotov-dev
Copy link
Author

Большое спасибо, так заработало. :) Пожалуй так и оставлю.

Мой "крутой" медиа-центр - это компьютер с P4, возрастом около 17 лет + пульт от старого TV. К нему уже привык и готовлю "слепки ОС" со всем предустановленным и обновлённым софтом на виртуалке на другом компе, затем обычным способом ставлю с флешки. Недавно 2 дня обновлял OpenSSL-3.0.9, Python-3.9 и GCC-12.3, а то Kodi Nexus не собирался, сейчас всё работает. Странно то, что на виртуалке нет таких проблем с постерами. Теперь подозреваю, что проблема тянется от железа.

Ок. В любом случае я очень Вам признателен за помощь. Желаю успехов Вам и Вашим замечательным проектам.

С уважением,
Алексей

@vlmaksime
Copy link
Owner

vlmaksime commented Jul 21, 2023

Давно хотел в настройку добавить пункт с выбором качества постеров, но руки никак не доходили. Будет повод

Мой "крутой" медиа-центр - это компьютер с P4, возрастом около 17 лет + пульт от старого TV.

Зачем над собой так издеваться, когда можно купить X96Max Plus Ultra за $35, поставить на него CoreELEC и радоваться жизни. Маленький, не шумит, экономит электроэнергию.

@AKotov-dev
Copy link
Author

купить X96Max Plus Ultra

А как же получить удовольствие? Ведь согласитесь, - куда интересней заменить взорванные электролиты в обвязке процессора, обновить термопасту, кулеры, перепрошить биос, спаять ик-приёмник, повесить его на com-порт, настроить lirc с пультом и собрать нужный софт из исходников? Впрочем, вероятно Вы правы - это тоже на любителя. Но за совет спасибо, обязательно воспользуюсь (в перспективе). :)

@AKotov-dev
Copy link
Author

Здравствуйте, vlmaksime. Похоже, что проблема была в этом:

Kodi version updates
From v18, the 1920x1080 resolution limitation has been removed. Using the following code in your advancedsettings.xml will allow caching artwork at original size.

Оказалось, что нужно создать файл ~/.kodi/userdata/advancedsettings.xml

<advancedsettings version="1.0">
    <imageres>9999</imageres>
    <fanartres>9999</fanartres>
</advancedsettings>

...и перезапустить Kodi. Теперь постеры масштабируются так же, как в предыдущих (до v18 включительно) версиях.

Уже обновился до Kodi-v21.0a2-Omega. Полёт нормальный.

Полезные ссылки:

Благодарю Вас за консультацию.

С уважением,
Алексей

@AKotov-dev AKotov-dev changed the title Масштабирование/Отображение постеров Масштабирование/Отображение постеров Kodi > v18 Jul 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants