Использование лога для определения проигрываемого файла

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

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

Ответить
Андрей Чирикба
Сообщения: 1
Зарегистрирован: 23 окт 2007 20:05

Использование лога для определения проигрываемого файла

Сообщение Андрей Чирикба »

Добрый день!

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

7:46:24.21 Script take: [ movie 0:00:20.04 [0.10] G:\video\derty20 .avi ]

Можете ли вы подсказать какие-либо другие решения, в случае если это не подходит? GPI использовать не получится (по их словам), т.к. у них графика с названиями клипов уже наложена на видео, а сигнал от GPI можно получать только по началу клипа, а не за 20 секунд до его окончания.

Заранее благодарен за ответ.
admin
Site Admin
Сообщения: 323
Зарегистрирован: 07 ноя 2005 19:42

Сообщение admin »

Лучше всего использовать для Вашей задачи не парсинг лог-файла. Можно использовать наш MessageServer, который позволяет посылать команды в программу OnAir (вещательный сервер) из внешнего приложения. С помощью посылки подобных программ Вы можете узнавать состояние программы OnAir - что играется, когда закончится и многое многое другое.

В частности есть такая команда:
Player.Video ? StartTime PlayedTime Wait(0/1) Command
Текущая команда Video
StartTime - время старта команды
PlayedTime - длительность проигрывания команды
Wait(0/1) - должно ли расписание ждать окончания проигрыша
Command - строка команды, как в файле расписания
Например: "Player.Video 14:03:11:00 0:00:01.45 1 movie 0:00:02.00 [2.00] D:\TEMP\Glass.avi"
Если PlayedTime >= Duration, то проигрыш закончен
Если индикатор пуст, строка команды отсутствует
Вам нужно будет реализовать в своем приложениие очередь посылки/приема команд и через нее узнавать состояние программы OnAir. Как это сделать описано в специальном SDK.
Его можно взять здесь:
ftp://ftp.sl.iae.nsk.su/Public/ForwardT ... verSDK.zip
ftp://mx2.softlab.nsk.ru/Public/Forward ... verSDK.zip
ftp://sl-news.softlab.nsk.ru/Public/For ... verSDK.zip
Здесь же есть и пример реализации этого механизма на С#.

Перечень команд - в файле "OnAir mirror messages.txt"

Если возникнут проблемы по использованию SDK - обращайтесь напрямую в отдел техподдержки: forward@sl.iae.nsk.su
Ответить