![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
dartan |
![]()
Сообщение
#1
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 12.4.2013 Пользователь №: 3790 Спасибо сказали: 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 |
![]()
Сообщение
#2
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 26.6.2014 Пользователь №: 4176 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(dartan @ 12.5.2014, 14:41) Link Есть такая проблема. Нужно воспроизводить красивые эффекты с помощью 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 |
![]()
Сообщение
#3
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 12.4.2013 Пользователь №: 3790 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(navrocky @ 26.6.2014, 16:09) Link Qt Multimedia воспроизводит видеофайлы, но в них нет альфаканала. Можешь, анимацию, если она короткая воспроизводить как спрайты. Погугли как в QtQuick работать с анимированными спрайтами Спасибо, уже нашел про спрайты, пользуюсь ![]() И еще что очень неудобно в этих спрайтах - это то, что после проигрывания происходит возврат на первый кадр и нельзя это поведение изменить каким-нибудь свойством ![]() |
|
|
navrocky |
![]()
Сообщение
#4
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 26.6.2014 Пользователь №: 4176 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
выложи минимальный пример, который компилится, я проверю
|
|
|
dartan |
![]()
Сообщение
#5
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 12.4.2013 Пользователь №: 3790 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(navrocky @ 26.6.2014, 22:14) Link выложи минимальный пример, который компилится, я проверю Вот пример, в котором loops не работает как надо: Link Не совсем уверен, но вроде как это тот самый баг: Link |
|
|
navrocky |
![]()
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 26.6.2014 Пользователь №: 4176 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(dartan @ 27.6.2014, 2:13) Link Цитата(navrocky @ 26.6.2014, 22:14) Link выложи минимальный пример, который компилится, я проверю Вот пример, в котором loops не работает как надо: Link Не совсем уверен, но вроде как это тот самый баг: Link Да, глючит, подтверждаю. Выход - попробовать все картинки в одну строку. |
|
|
dartan |
![]()
Сообщение
#7
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 12.4.2013 Пользователь №: 3790 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(navrocky @ 27.6.2014, 16:08) Link Цитата(dartan @ 27.6.2014, 2:13) Link Цитата(navrocky @ 26.6.2014, 22:14) Link выложи минимальный пример, который компилится, я проверю Вот пример, в котором loops не работает как надо: Link Не совсем уверен, но вроде как это тот самый баг: Link Да, глючит, подтверждаю. Выход - попробовать все картинки в одну строку. Пробовал - не помогло. Одно замечание: этот баг проявляется на "больших" анимациях, то есть либо когда много кадров, либо когда кадры большие по размеру. Насколько много и насколько большие - не проверял. |
|
|
navrocky |
![]()
Сообщение
#8
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 26.6.2014 Пользователь №: 4176 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(dartan @ 27.6.2014, 17:20) Link Цитата(navrocky @ 27.6.2014, 16:08) Link Цитата(dartan @ 27.6.2014, 2:13) Link Цитата(navrocky @ 26.6.2014, 22:14) Link выложи минимальный пример, который компилится, я проверю Вот пример, в котором loops не работает как надо: Link Не совсем уверен, но вроде как это тот самый баг: Link Да, глючит, подтверждаю. Выход - попробовать все картинки в одну строку. Пробовал - не помогло. Одно замечание: этот баг проявляется на "больших" анимациях, то есть либо когда много кадров, либо когда кадры большие по размеру. Насколько много и насколько большие - не проверял. Может это как-то связано с разбиением на текстуры? Насколько мне известно размер текстуры в памяти ускорителя ограничен. Тут делается некая разбивка и похоже не без ошибок. |
|
|
dartan |
![]()
Сообщение
#9
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 12.4.2013 Пользователь №: 3790 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(navrocky @ 30.6.2014, 16:45) Link Может это как-то связано с разбиением на текстуры? Насколько мне известно размер текстуры в памяти ускорителя ограничен. Тут делается некая разбивка и похоже не без ошибок. В общем, это тот баг. Я собрал Qt с этим патчем Link - работает правильно. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 13.8.2025, 9:57 |