Нашли альтернативу флеш анимации

Здесь обсуждаются любые продукты компании СофтЛаб-НСК для телевизионного вещания (Форвард Т, Форвард ТС, Форвард Голкипер, Форвард Рефери, Форвард Офис, Форвард Инжест)

Модераторы: ElenVR, Людмила, PR

Ответить
reno477
Сообщения: 7
Зарегистрирован: 06 июл 2011 17:07

Сообщение reno477 »

To Alex Nova:
Удалось связаться с ychetka? Или товарищ покинул наши ряды?
vd
Сообщения: 2311
Зарегистрирован: 05 мар 2003 19:21

Сообщение vd »

Для выставки IBC 2013 был сделан новый видеоролик с демонстрацией возможностей QML в титрах:

http://youtu.be/1bYPd8bcHa4

Смотреть лучше в качестве HD 720p (выбирается справа внизу).
Alex Nova
Сообщения: 62
Зарегистрирован: 07 окт 2010 21:51

Сообщение Alex Nova »

Давно как то тут был архивчик с демо QML новостей с листанием фото и подписи. Решили сделать себе такое. сделали его не на полный экран а на 4-ю часть. В дизайнере все работает. крутится все нормально. На машине с форвард Лайт в расписании вставили. Тоже работает. но как то дергается немного при листании. Когда же ночью для проверки пустили на эфирном.. Очень расстроился. Качество очень и очень низкое, а листает очень грязно, такое ощущение что перепутаны поля. хотя такой настройки нет в объекте. Может я не так что то сделал. Есть вообще какие-то правила именно по Форварду с QML? Идея нам понравилась.
Решили пока отказаться от этого но сама идея интересная и нам не помешала бы. Можно конечно через РеклБлок сделать но вот тогда без подписи получится. Остановились пока на РеклБлок, будем картинки подписывать.
Даниленко Сергей
Сообщения: 7093
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

Сообщение Даниленко Сергей »

А вы нам свой проектик зашлите, пожалуйста. Мы посмотрим.
forward@softlab.tv
forward@sl.iae.nsk.su
forward@softlab-nsk.com
fedor
Сообщения: 283
Зарегистрирован: 17 янв 2007 13:02
Откуда: Хабаровск

Сообщение fedor »

Титровальный объект QML поддерживает все конструкции и элементы этого языка или какие-то выборочные? Особенно интересует конструкция WebView.
Даниленко Сергей
Сообщения: 7093
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

Сообщение Даниленко Сергей »

Выборочные. WebView сейчас не поддерживается, но потенциально возможность поддержки есть. Разработчики посмотрят, что нужно добавить для поддержки.
fedor
Сообщения: 283
Зарегистрирован: 17 янв 2007 13:02
Откуда: Хабаровск

Сообщение fedor »

Очень сильно хотим хоть какую-нибудь документацию по титровальному элементу QML. Пытаемся написать аналог титровального скрипта TSF_Announce.SLTitleTmpl и нужно получать от OnAir информацию о длительности текущего ролика и т.д. Это SLRunTime? Как этим пользоваться?
Даниленко Сергей
Сообщения: 7093
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

Сообщение Даниленко Сергей »

Работа титровального элемента QML никак не связана с получением информации о файлах, которые проигрываются в OnAir. Т.е. в самом титровальном элементе такая информация недоступна.

Всё это доступно в коде титровального объекта со скриптом.
Например, применительно к упомянутому скрипту TSF_Announce.SLTitleTmpl, в коде есть две процедуры:

override public function NeedBackGroundNotify() : boolean { return true; }

Эта процедура сообщает, что в скрипт нужно передавать информацию о файлах из расписания OnAir

override public function OnBackGroundNotify(info : String) : boolean
{.....................................................................}

Эта процедура - собственно передаёт информацию о файле, который будет проигрываться, в переменной info.

Т.е. общая схема такая. Создаётся титровальный объект со скриптом, который является оболочкой над вашим QML-элементом. Эта оболочка с одной стороны взаимодействует с OnAir (получает информацию от него, передаёт информацию в него, отрабатывает команды загрузить задание/старт/стоп, ...). С другой стороны она управляет работой QML-элемента.
fedor
Сообщения: 283
Зарегистрирован: 17 янв 2007 13:02
Откуда: Хабаровск

Сообщение fedor »

Мой вопрос был основан на этом факте на четвёртой странице данной темы:
komar писал(а): 2. Так же в qml скрипте можно видеть еще одни объект SLRunTime, это объект для связи "Forward" титровального движка с движком QML, он отражает все то, что твориться в "Forward" движке, к примеру номер кадра в плате, и многое другое. Этот объект мы попытаемся встроит в qmlviewer, и при работе в QT Creator-e вам придется пользоваться уже наш а не стандартным qmlviewer-ом, что не очень удобно на наш взгляд.
Мы видели этот SLRunTime и в вашем примере проекта на QML. Цель стоит не задействовать встроенную функцию работы со скриптами, а перенести динамически генерируемый контент в QML и рулить выдачей титров (голосовалки, анонсы и т.д) через свой веб-интерфейс и явовские скрипты, встроенные в QML.
Даниленко Сергей
Сообщения: 7093
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

Сообщение Даниленко Сергей »

Объекты SLRunTime для вашей задачи вряд ли подойдут.
Если вы ведёте речь про вот эту строку из примера:
var str = readLine(SLRunTime.taskName);

То, здесь узнаётся имя файла-задания QML-элемента.

Но с помощью SLRunTime вы никак не получите информацию о файле, который будет проигрываться следующим из расписания программы OnAir.
Цель стоит не задействовать встроенную функцию работы со скриптами, а перенести динамически генерируемый контент в QML и рулить выдачей титров (голосовалки, анонсы и т.д) через свой веб-интерфейс и явовские скрипты, встроенные в QML.
А первое никак не мешает второму. Отрисовка - средствами QML, кое-какие дела (не связанные с отрисовкой) - средствами скрипта.
Например, сейчас пишем связку скрипт+QML для показа чата ВКонтакте. Именно по такой схеме.
fedor
Сообщения: 283
Зарегистрирован: 17 янв 2007 13:02
Откуда: Хабаровск

Сообщение fedor »

Даниленко Сергей писал(а): Отрисовка - средствами QML, кое-какие дела (не связанные с отрисовкой) - средствами скрипта.
Я всё время это и спрашиваю, КАК??? Документации за несколько лет так и нет, списка поддерживаемых конструкций QML нет, недокументированные возможности не известны. А титровальный элемент QML есть. При этом у этого QML огромные возможности по отрисовке динамических титров и совершенно непонятно, почему такой мощный инструмент абсолютно не востребован.
Даниленко Сергей
Сообщения: 7093
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

Сообщение Даниленко Сергей »

Я нет понимаю то, что не понимаете вы.
Титровальный элемент QML (на уровне описания всех наших титровальных элементов) описан в документации. То, что нами добавлено (рендеринг изображение на "выход платы") - вам не требуется. Что нужно от нас? Повторить описание всех классов QML в нашей документации? Мы это делать точно не будем.
Что нужно конкретно?
vd
Сообщения: 2311
Зарегистрирован: 05 мар 2003 19:21

Сообщение vd »

При этом у этого QML огромные возможности по отрисовке динамических титров и совершенно непонятно, почему такой мощный инструмент абсолютно не востребован
Может, не мы виноваты в том, что не все умеют программировать на QML?
Игорь Таранцев
Сообщения: 493
Зарегистрирован: 04 янв 2004 12:45
Откуда: СофтЛаб-НСК

Сообщение Игорь Таранцев »

fedor писал(а):Документации за несколько лет так и нет, списка поддерживаемых конструкций QML нет, недокументированные возможности не известны.
Попробую ответить конструктивно.

1. Сначала про текущий титровальный элемент QML.
Титровальный элемент QML собран (скомпилирован) из исходников QML версии 4.7, в которую не включены компоненты вебкита, поскольку мы считали, что на эфирном сервере доступа к интернет нет по попределению. Все библиотеки, бинарно совместимые с QML 4.7 должны нормально работать с текущим титровальным элементом QML. Можно попытаться положить нужную Вам библиотеку в папку "C:\Program Files\ForwardT Software\FDTitle" (то есть в папку с модулем QTMovieExt.exe) и проверить, что классы из этой библиотеки успешно импортируются. Чтобы узнать о проблемах достаточно написать простенький QML-код, в котором импортировать библиотеку и/или создать нужный Вам объект, затем запустить DbgView и выполнить код в FDTitleDesigner. В случае проблемы появится печать о невозможности импортировать такую-то библиотеку.
Из недокументированных в описании языка QML функций есть один объект для получения некоторой информации о состоянии титровального ядра, в которое рисует титровальный элемент. Можно просто считать, что методы отрисовки вызываются 50 раз в секунду и все. Важно понимать, что текущее системное время и время в плате идут совсем не синхронно и не пытаться рисовать анимацию по текущему системному времени. В остальном все обычно.

2. Теперь про новый титровальный элемент QML.
Сейчас мы создаем новый титровальный элемент QML на базе QML версии 5.4. Как утверждают разработчики QML теперь будет обеспечиваться совместимость библиотек со всеми будущими версиями ядра QML. То есть мы планируем (мы верим), что мы один раз напишем нашу библиотеку к стандартному ядру 5.4 для работы на нашем титровальном ядре и в дальнейшем можно будет просто подменять ядро (то есть все dll-ки, включая нужные клиенту библиотеки) в папке "...\FDTitle\QML" и все будет работать! В этом случае вообще не будет никаких ограничений на используемые библиотеки.
fedor
Сообщения: 283
Зарегистрирован: 17 янв 2007 13:02
Откуда: Хабаровск

Сообщение fedor »

Может, не мы виноваты в том, что не все умеют программировать на QML?
Да никто никого ни в чём не винит.
И дело вовсе не в QML! С ним то как раз всё более мнее понятно. А если и не понятно - то есть куча информации в сети. Сиди, вояй. Выбор QML как одного из векторов развития - очень правильный выбор. Возможностей у него достаточно.
НО для полноценного встраивания QML-титров в эфирный плейлист, скрипт QML должен иметь представление о текущем положении и собственном состоянии в рамках плэйлиста, уметь ловить момент, когда началось отображение титра и момент, когда оно закончилось и т.п.. Понятно, что никакие возможности QML и никакие "сторонние модули dll" тут не помогут. Тут необходим некоторый объект QML (аналогичный SLRunTime), который бы генерировал соответствующие события рамках QML-скриптов (это было бы замечательно, ведь тот же JavaScript, который для QML вполне родной, весь насквозь асинхронный) или хотябы через свойства этого объекта можно было бы собрать такую информацию, переодически проверяя их состояние.
Ну и сам объект SLRunTime давно пора задокументировать хотя бы очень кратенько.
Ответить