crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Анимация с альфа каналом
dartan
  опции профиля:
сообщение 12.5.2014, 13:41
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 12
Регистрация: 12.4.2013
Пользователь №: 3790

Спасибо сказали: 0 раз(а)




Репутация:   0  


Есть такая проблема. Нужно воспроизводить красивые эффекты с помощью Qt 5.2.1 под Windows. Пробовал вариант с форматом видео .mov, но так и не получилось проиграть. Кодек установлен, Windows Media Player проигрывает, а в QML - нет.
Дальше начал смотреть в сторону формата MNG. С помощью ImageMagick создал файл .mng из последовательности .png, который вполне себе нормально воспроизводится в IrfanView. В Qt пробовал использовать AnimatedImage: файл проигрывается, но не до конца, а в Qt Creator'е в выводе приложения выводится ошибка "MNG error 999: internal error in libmng; chunk IHDR; subcode 0:0". При дальнейших попытках воспроизвести файл выводится "MNG error 11: Function is invalid at this point; chunk IHDR; subcode 0:0". То же самое происходит при попытке использовать пример в проектах Qt "movie" - он позволяет воспроизводить MNG, но ошибки те же. Гугление по этим ошибкам приводит к каким-то старым закрытым багам.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
navrocky
  опции профиля:
сообщение 26.6.2014, 16:09
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 26.6.2014
Пользователь №: 4176

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(dartan @ 12.5.2014, 14:41) *
Есть такая проблема. Нужно воспроизводить красивые эффекты с помощью Qt 5.2.1 под Windows. Пробовал вариант с форматом видео .mov, но так и не получилось проиграть. Кодек установлен, Windows Media Player проигрывает, а в QML - нет.
Дальше начал смотреть в сторону формата MNG. С помощью ImageMagick создал файл .mng из последовательности .png, который вполне себе нормально воспроизводится в IrfanView. В Qt пробовал использовать AnimatedImage: файл проигрывается, но не до конца, а в Qt Creator'е в выводе приложения выводится ошибка "MNG error 999: internal error in libmng; chunk IHDR; subcode 0:0". При дальнейших попытках воспроизвести файл выводится "MNG error 11: Function is invalid at this point; chunk IHDR; subcode 0:0". То же самое происходит при попытке использовать пример в проектах Qt "movie" - он позволяет воспроизводить MNG, но ошибки те же. Гугление по этим ошибкам приводит к каким-то старым закрытым багам.


Qt Multimedia воспроизводит видеофайлы, но в них нет альфаканала. Можешь, анимацию, если она короткая воспроизводить как спрайты. Погугли как в QtQuick работать с анимированными спрайтами
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
dartan
  опции профиля:
сообщение 26.6.2014, 16:34
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 12
Регистрация: 12.4.2013
Пользователь №: 3790

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(navrocky @ 26.6.2014, 16:09) *
Qt Multimedia воспроизводит видеофайлы, но в них нет альфаканала. Можешь, анимацию, если она короткая воспроизводить как спрайты. Погугли как в QtQuick работать с анимированными спрайтами


Спасибо, уже нашел про спрайты, пользуюсь :) Но наступил там на другие грабли: http://qt-project.org/forums/viewthread/44142/
И еще что очень неудобно в этих спрайтах - это то, что после проигрывания происходит возврат на первый кадр и нельзя это поведение изменить каким-нибудь свойством :blink: Сделал костыль: при каждом изменении кадра проверяю последний ли он, и тогда останавливаю проигрывание.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
navrocky
  опции профиля:
сообщение 26.6.2014, 22:14
Сообщение #4


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 26.6.2014
Пользователь №: 4176

Спасибо сказали: 0 раз(а)




Репутация:   0  


выложи минимальный пример, который компилится, я проверю
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
dartan
  опции профиля:
сообщение 27.6.2014, 1:13
Сообщение #5


Студент
*

Группа: Новичок
Сообщений: 12
Регистрация: 12.4.2013
Пользователь №: 3790

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(navrocky @ 26.6.2014, 22:14) *
выложи минимальный пример, который компилится, я проверю

Вот пример, в котором loops не работает как надо: https://drive.google.com/folderview?id=0B7c...amp;usp=sharing
Не совсем уверен, но вроде как это тот самый баг: https://bugreports.qt-project.org/browse/QTBUG-36338
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
navrocky
  опции профиля:
сообщение 27.6.2014, 16:08
Сообщение #6


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 26.6.2014
Пользователь №: 4176

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(dartan @ 27.6.2014, 2:13) *
Цитата(navrocky @ 26.6.2014, 22:14) *
выложи минимальный пример, который компилится, я проверю

Вот пример, в котором loops не работает как надо: https://drive.google.com/folderview?id=0B7c...amp;usp=sharing
Не совсем уверен, но вроде как это тот самый баг: https://bugreports.qt-project.org/browse/QTBUG-36338

Да, глючит, подтверждаю. Выход - попробовать все картинки в одну строку.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
dartan
  опции профиля:
сообщение 27.6.2014, 16:20
Сообщение #7


Студент
*

Группа: Новичок
Сообщений: 12
Регистрация: 12.4.2013
Пользователь №: 3790

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(navrocky @ 27.6.2014, 16:08) *
Цитата(dartan @ 27.6.2014, 2:13) *
Цитата(navrocky @ 26.6.2014, 22:14) *
выложи минимальный пример, который компилится, я проверю

Вот пример, в котором loops не работает как надо: https://drive.google.com/folderview?id=0B7c...amp;usp=sharing
Не совсем уверен, но вроде как это тот самый баг: https://bugreports.qt-project.org/browse/QTBUG-36338

Да, глючит, подтверждаю. Выход - попробовать все картинки в одну строку.

Пробовал - не помогло. Одно замечание: этот баг проявляется на "больших" анимациях, то есть либо когда много кадров, либо когда кадры большие по размеру. Насколько много и насколько большие - не проверял.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
navrocky
  опции профиля:
сообщение 30.6.2014, 16:45
Сообщение #8


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 26.6.2014
Пользователь №: 4176

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(dartan @ 27.6.2014, 17:20) *
Цитата(navrocky @ 27.6.2014, 16:08) *
Цитата(dartan @ 27.6.2014, 2:13) *
Цитата(navrocky @ 26.6.2014, 22:14) *
выложи минимальный пример, который компилится, я проверю

Вот пример, в котором loops не работает как надо: https://drive.google.com/folderview?id=0B7c...amp;usp=sharing
Не совсем уверен, но вроде как это тот самый баг: https://bugreports.qt-project.org/browse/QTBUG-36338

Да, глючит, подтверждаю. Выход - попробовать все картинки в одну строку.

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

Может это как-то связано с разбиением на текстуры? Насколько мне известно размер текстуры в памяти ускорителя ограничен. Тут делается некая разбивка и похоже не без ошибок.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
dartan
  опции профиля:
сообщение 3.7.2014, 12:36
Сообщение #9


Студент
*

Группа: Новичок
Сообщений: 12
Регистрация: 12.4.2013
Пользователь №: 3790

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(navrocky @ 30.6.2014, 16:45) *
Может это как-то связано с разбиением на текстуры? Насколько мне известно размер текстуры в памяти ускорителя ограничен. Тут делается некая разбивка и похоже не без ошибок.

В общем, это тот баг. Я собрал Qt с этим патчем https://codereview.qt-project.org/#/c/85399/ - работает правильно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.11.2024, 14:23