Титровальные скрипты

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

Модераторы: Людмила, PR, vd, Даниленко Сергей

Ответить
Даниленко Сергей
Сообщения: 7091
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

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

Снова я - со своими детскими вопросами =)
Вопросы отнюдь не детские, нормальные такие рабочие вопросы. Вы далеко продвинулись, жалко я с осписанием пока отстаю :(

Грузить что-либо в Init не нужно - вы правильно отметили, что все свойства получают свои значения несколько позже.
Для загрузки нужно использовать немного другое место, а именно функцию LoadTask. Эта функция будет первый раз вызвана при загрузке титровального проекта в программе OnAir, но уже после инициализации скрипта. Выглядеть должно как-то так:
override function LoadTask(task: String ) : boolean
{
Debug.WriteLine(_ScriptLabel + " LoadTask " + task);


//файл с заданием не существует, обрабатываем эту ситуацию
if(!File.Exists(task))
{

Debug.WriteLine(_ScriptLabel + "LoadTask file does not exist: " + task);

throw new FileNotFoundException(null, task);
}

//файл с заданием существует
try
{
//запоминаем задание
_Task = task;

//читаем и разбирем файл с заданием, складываем строки в массив и т.д.
ReadTaskFile(task);

return true;
}

catch (ee)
{
Debug.WriteLine(_ScriptLabel + " LoadTask exception:" + ee);
}

return false;
}
AlMaz
Сообщения: 76
Зарегистрирован: 02 июн 2010 12:48
Откуда: Красноярск, Прима-ТВ
Контактная информация:

Сообщение AlMaz »

Даниленко Сергей писал(а):

Если это нужно для отладки, то можно написать функцию, которая берёт на выходе double, а на выход отдаёт строку вида "чч:мм:сс:кк".
Время в параметре atStart передаётся в секундах.
Пишу функцию выдающую вреямя для человеческого восприятия:

на входе имеем

05.04.2013 13:29:36 ---- TG2013 script ---- ===script OnElementStart:0MAIN index:2 id:2 time:264719.56 firstStop:264719.56 stop:264719.56 text:1 [0]

т.е. элемент стартует в 264719.56
это получается : 264719.56 секунд /3600 = 73,53.. часа?

Или я что-то путаю?
Даниленко Сергей
Сообщения: 7091
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

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

Вопрос такой. Что именно вы хотите увидеть?

Когда элемент стартует?
Когда элемент должен остановиться?
Через какое время элемент стартует?
Через какое время элемент должен остановиться?

И желательно было бы, чтобы вы объяснили зачем вам нужны эти времена?
AlMaz
Сообщения: 76
Зарегистрирован: 02 июн 2010 12:48
Откуда: Красноярск, Прима-ТВ
Контактная информация:

Сообщение AlMaz »

Даниленко Сергей писал(а):Вопрос такой. Что именно вы хотите увидеть?

Когда элемент стартует?
Когда элемент должен остановиться?
Через какое время элемент стартует?
Через какое время элемент должен остановиться?

И желательно было бы, чтобы вы объяснили зачем вам нужны эти времена?
У меня элемент "Подпись" TIMER с временем цикла 8 секунд, в OnElementStop останавливает/запускает 4 "Подписи с картинками".

Пока он делает это так:
Baner_1.Stop(0, 0);
Baner_11.Start(0, 0);

Я хочу в своих логах писать для выдачи отчетов клиентам - время запуска, время остановки этих картинок. И брать его из параметров этого TIMER
Даниленко Сергей
Сообщения: 7091
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

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

Я бы поступил несколько по иному. Дело в том. что те времена. которые прилетают в скрипте никакого отношения к реальному времени не имеют.
Это некоторое наше внутреннее время, которое ведёт свой отсчёт от времени старта одного из наших сервисов.
Если вам нужны времена старта и остановки того или иного банера, то лучше всего узнавать его непосредственно из самой системы.
Например, вы сказали Baner_11.Start и тут же взяли локальное время из системы. Здесь же можно организовать связку "название банера - время старта".
Про отчёт о времени остановки. Два варианта:
1)Приблизительный. У вас есть время старта, длительность воспроизведения банера знаете. Прибавляете одно к другому и получаете время остановки.
2)Честный. В обработчике сообщения OnElementStop вы получаете сообщение об остановке какого-то из ваших банеров и фиксируете это время через запрос системного времени компьютера.

Писать в лог рекомендуем порциями: накопили 10 записей. слили в лог.
AlMaz
Сообщения: 76
Зарегистрирован: 02 июн 2010 12:48
Откуда: Красноярск, Прима-ТВ
Контактная информация:

Сообщение AlMaz »

Добрый день. Новый вопрос.

Сделал логирование как вы посоветовали порциями. И при запуске титр. элементов пишу туда системное время.

1) Изначально хотел писать время при возникновении события OnElementStart. Но почему то элементы "Картинка" и "Подпись" его генерируют при старте. А "АнимЛого" и "DShow" нет.

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

Сейчас пишу время в лог, когда сам запускаю элеметы:
VIZITKA_1.Start(0, 0); Baner_1.Start(atStart, fadeDuration);
Даниленко Сергей
Сообщения: 7091
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

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

Но почему то элементы "Картинка" и "Подпись" его генерируют при старте. А "АнимЛого" и "DShow" нет.

Проверили. DShow действительно не выдаёт информацию - разработчикам на это указано, обещали исправить.
А "АнимЛого" выдаёт. Может у вас софт старый? Какой версией пользуетесь? Как посмотреть: http://www.softlab-nsk.com/rus/forward/qna.html#a2_14

Здесь тестовый пример, сделанный нашими разработчиками:
ftp://ftp.sl.iae.nsk.su/Public/ForwardT ... s_test.zip

Комментарий разработчиков:
В тесте проверяются Caption, AnimLogo, DShow.

В качестве задания скрипта назначается путь до какого-либо видео файла. AnimLogo и DShow открывают его как видео файл, Caption показывает путь к файлу в виде текста.

В обработчиках OnElementXXX нотификаций ведется отладочная печать Debug.Print с указанием текущего системного времени, имени элемента и его задания.
Последний раз редактировалось Даниленко Сергей 10 апр 2013 13:34, всего редактировалось 1 раз.
AlMaz
Сообщения: 76
Зарегистрирован: 02 июн 2010 12:48
Откуда: Красноярск, Прима-ТВ
Контактная информация:

Сообщение AlMaz »

У меня forvardTxLite 5.3.0 - тот что для разработчиков.

и FDOnAir 1.21.100 что в нем

АПД: установил сейчас 5.4.0. потому что ваш проект уже не открывался =)
Последний раз редактировалось AlMaz 10 апр 2013 13:44, всего редактировалось 1 раз.
Даниленко Сергей
Сообщения: 7091
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

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

Вы тест пробовали запустить на своей версии ПО?

Ну и, конечно ПО можно обновить - в промежутке между 5.3.0 и 5.4.0 было очень много сделано/исправлено по поводу скриптов:
http://www.softlab-nsk.com/rus/forward/ ... .html#lite
AlMaz
Сообщения: 76
Зарегистрирован: 02 июн 2010 12:48
Откуда: Красноярск, Прима-ТВ
Контактная информация:

Сообщение AlMaz »

Добрый день. И новые вопросы )

Делаю подложку. Решил ее сделать "АнимЛого". Чтобы можно было либо видео, либо картинку там показывать.

К видео пока вопросов нет.
а вот когда загоняю туда TGA - по отладке видно что она
вызывает OnElementStart/OnElementStop с интервалом через каждую секунду.

Это нормальное ее поведение? Получается картинка показывается-убирается раз в секунду?

1 11.04.2013 15:09:39 ===script OnElementStart:1BACKGROUND_STATIC index:1 id:1 time:83150.64 firstStop:83151.64 stop:83151.64 text:E:\1PROJECTS_2013\TG_2013\TG_2013_V4_DVIZITKA\UPAKOVKA\FON.tga
2 11.04.2013 15:09:39 ===script OnElementStart:1TIMER index:3 id:1 time:83150.64 firstStop:83156.64 stop:83158.64 text:TIMER
3 11.04.2013 15:09:40 ===script OnElementStop:1BACKGROUND_STATIC index:1 id:1 time:83151.64 text:E:\1PROJECTS_2013\TG_2013\TG_2013_V4_DVIZITKA\UPAKOVKA\FON.tga
4 11.04.2013 15:09:40 ===script OnElementStart:1BACKGROUND_STATIC index:1 id:1 time:83151.64 firstStop:83152.64 stop:83152.64 text:E:\1PROJECTS_2013\TG_2013\TG_2013_V4_DVIZITKA\UPAKOVKA\FON.tga
5 11.04.2013 15:09:41 ===script OnElementStop:1BACKGROUND_STATIC index:1 id:1 time:83152.64 text:E:\1PROJECTS_2013\TG_2013\TG_2013_V4_DVIZITKA\UPAKOVKA\FON.tga
Даниленко Сергей
Сообщения: 7091
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

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

Нормальное поведение.
Вы используете АнимЛого. В нормальной ситуации, когда в этот элемент загружается видеофайл, то у него есть некоторая длительность. Тогда можно точно сказать когда он стартанёт и когда остановится. И послать соответствующие сообщения.
Но вы в титровальный элемент этого типа грузите графический файл. Он по определению не имеет длительности. Но длительность какая-то нужна, поэтому она выставляется у нас в 1 секунду.
AlMaz
Сообщения: 76
Зарегистрирован: 02 июн 2010 12:48
Откуда: Красноярск, Прима-ТВ
Контактная информация:

Сообщение AlMaz »

Добрый день. Такой может немного не в тему вопрос.
Хочу сразу при инициализации скрипта инициализировать пути к файлам и папкам. Они привязаны к местоположению самого титр. проекта.

Но нашел только функцию определения пути к приложению OnAir. А вот путь к файлу титр. проекта не могу определить программно. =(
Даниленко Сергей
Сообщения: 7091
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

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

В самом начале скрипта есть такая строка:

var script = new Script(titleRoot);

В ней в скрипт передаётся некоторый глобальный объект titleRoot, у которого можно узнать много полезной информации. Например, частоту кадров, размер кадра и т.д. Также можно узнать и путь к проекту.

Пример:
var T : String = titleRoot.BasePath;

В документации написано:
Возвращает полный путь до папки файла проекта или пустую строку, если проект не сохранялся
Но нашел только функцию определения пути к приложению OnAir
Это как?
AlMaz
Сообщения: 76
Зарегистрирован: 02 июн 2010 12:48
Откуда: Красноярск, Прима-ТВ
Контактная информация:

Сообщение AlMaz »

Спасибо огромное. Сегодня работа над скриптом пойдет в гору =)
Просто в TitleScriptDocumentation.chm я не нашел параметров этого объекта titleRoot.
Возможно у вас уже есть более новая версия документации?

А путь к ОнЭйр я стандартно находил через Application.StartupPath.
Даниленко Сергей
Сообщения: 7091
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

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

Спасибо огромное. Сегодня работа над скриптом пойдет в гору =)
Просто в TitleScriptDocumentation.chm я не нашел параметров этого объекта titleRoot.
Изображение
Возможно у вас уже есть более новая версия документации?
ftp://ftp.sl.iae.nsk.su/Public/ForwardT ... tation.zip
Последний раз редактировалось Даниленко Сергей 15 апр 2013 11:42, всего редактировалось 1 раз.
Ответить