Здравствуйте.
Имеется пульт Black Magic, предоставляющий SDK для управления по сети.
Стоит задача программно коммутировать нужный видеовыход на пульте из OnAir, в частности при каждом запуске воспроизведения.
Есть вариант делать это через команду расписания, обработав ее в скрипте титровального проекта. И с этим вроде бы все понятно.
Однако более привлекательно выглядит другая идея. Тут собственно и возникает вопрос, как в скрипте отловить событие (сделать хук) нажатия кнопки Start? Выполнить там свои манипуляции с пультом, вернуть управление OnAir-у и начать воспроизведение.
Управление пультом Black Magic из OnAir
Модераторы: ElenVR, Людмила, PR
-
- Сообщения: 83
- Зарегистрирован: 16 фев 2010 15:32
- Откуда: г. Красноярск
-
- Сообщения: 7093
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
Есть вариант делать это через команду расписания, обработав ее в скрипте титровального проекта. И с этим вроде бы все понятно.
А как вы собираетесь это сделать если не секрет?
Никак не получится. Не проходит в скрипт информация о таких событиях.Однако более привлекательно выглядит другая идея. Тут собственно и возникает вопрос, как в скрипте отловить событие (сделать хук) нажатия кнопки Start? Выполнить там свои манипуляции с пультом, вернуть управление OnAir-у и начать воспроизведение.
-
- Сообщения: 83
- Зарегистрирован: 16 фев 2010 15:32
- Откуда: г. Красноярск
Спасибо за ответ.
Сейчас взялся разбираться с SLMessageServer SDK.
Железный вариант это сделать свою внешнюю кнопку, которая будет переключать пульт и тут же слать ОнЭйру команду Shedule.Start.
Скорей всего это будет самое правильное решение.
Далее, как я понял, я могу из ОнЭйра отправить команду своему внешнему приложению. Но тут опять же вопрос по синхронизации, будет ли ОнЭйр дожидаться ответа, чтоб перейти к следующей строке расписания?
Это думал сделать по принципу команд из строк комментариев расписания, как в скриптах TSF. Но слабым местом тут будет невозможность дождаться пока отработает коннект до пульта по сети и выполнится переключения. Не пробовал еще, но подозреваю задержка будем заметной и начало воспроизведения будет теряться. Теоретически, хотя может и не факт.Даниленко Сергей писал(а):Есть вариант делать это через команду расписания, обработав ее в скрипте титровального проекта. И с этим вроде бы все понятно.
А как вы собираетесь это сделать если не секрет?
Сейчас взялся разбираться с SLMessageServer SDK.
Железный вариант это сделать свою внешнюю кнопку, которая будет переключать пульт и тут же слать ОнЭйру команду Shedule.Start.
Скорей всего это будет самое правильное решение.
Далее, как я понял, я могу из ОнЭйра отправить команду своему внешнему приложению. Но тут опять же вопрос по синхронизации, будет ли ОнЭйр дожидаться ответа, чтоб перейти к следующей строке расписания?
-
- Сообщения: 493
- Зарегистрирован: 04 янв 2004 12:45
- Откуда: СофтЛаб-НСК
Re: Управление пультом Black Magic из OnAir
Скажите, а как Вы планируете в скрипте понимать, какой вход нужно включать? Есть четкое правило, что по команде расписания "video 1" нужно выбрать в пульте вход "A", а по команде "video 2" нужно выбрать вход "B"? Или в расписание вставляется своя команда для каждого входа в пульте? или как-то еще?AntonChik писал(а):Здравствуйте.
Имеется пульт Black Magic, предоставляющий SDK для управления по сети.
Стоит задача программно коммутировать нужный видеовыход на пульте из OnAir, в частности при каждом запуске воспроизведения.
У нас есть возможность сконфигурировать посылку команд (последовательности байт) в COM-порт. Соответственно, если Вы установите в системе виртуальный COM-порт и запустите программу, принимающую Ваши команды с этого COM-порта, то возможно все как-то сработает. Для четкого ответа нужны детали исполнениея расписания.
-
- Сообщения: 83
- Зарегистрирован: 16 фев 2010 15:32
- Откуда: г. Красноярск
Re: Управление пультом Black Magic из OnAir
Например, имеем 3 платы на разных машинах, все входят в один пульт. Еще в пульт входит студия и сигнал со спутника. Задача в том, чтобы при запуске воспроизведения с одного из трех ОнЭйров, пульт автоматически переключался на вход, привязанный к данному ОнЭйру. Т.е. имеется однозначное соответствие Плата<->Видеовход, или даже ОнЭйр<->Видеовход.Игорь Таранцев писал(а):Скажите, а как Вы планируете в скрипте понимать, какой вход нужно включать?
Поэтому в самой команде расписания можно нужный вход и не указывать, его можно прописать один раз в свойствах скрипта и всё.
Далее по сути и сама команда расписания была бы не нужна, если б можно было вклиниваться в начало воспроизведения(перехват нажатия кнопки Старт) как я писал выше. Но раз нельзя так нельзя.
Поэтому теперь рассматриваю варианты с командой. И пока непонятно только насколько синхронно будет получаться переключать пульт и запускать воспроизведение. Буду пробовать.
Вариант с GPI командами я держу на заметке, но пока не углублялся.Игорь Таранцев писал(а):У нас есть возможность сконфигурировать посылку команд (последовательности байт) в COM-порт.
Просто не хочется делать лишние звенья, если могу напрямую обращаться к пульту по сети из скрипта.
-
- Сообщения: 493
- Зарегистрирован: 04 янв 2004 12:45
- Откуда: СофтЛаб-НСК
Что-то я совсем не понимаю задачи. Есть три платы, на каждой из которых крутится свое расписание в своем OnAir-е. Есть три кнопки Старт, которые нажимают независимо друг от друга. Еще есть что-то, что нажимают, чтобы переключить на выход пульта студию или сигнал со спутника. Теперь вопрос - в каком из расписаний должен быть скрипт, управляющий пультом? Или все три расписания будут управлять пультом? Если все три, то кто контролирует своевременность нажатия кнопок Старт (чтобы не нажали Старт до того, как закончилось воспроизведение видео из другого OnAir-а)?
Может имеет смысл подумать над другим вариантом - управлять стартом воспроизведения в OnAir-ах из пульта (или того приложения, которое управляет пультом). Объем решаемых задач никак не изменится (принимать или посылать команды все равно придется с помощью специального кода, общающегося по сети с пультом), а вот удобство оператора явно разное - или он кликает кнопки в разных приложениях, или просто управляет пультом, а OnAir-ы сами стартуют воспроизведение, когда оператор жмет соответствующую кнопку на пульте. Насколько я понимаю, речь идет о показе сюжетов - в OnAir-е есть галочка "Показывать первый кадр", соответственно, даже если команда старта отработает с небольшой задержкой, то в эфире несколько кадров постоит первый кадр ролика, а затем ролик продолжится. Если в пульте будет использоваться какая-нибудь склейка, то все подумают, что так и надо
Может имеет смысл подумать над другим вариантом - управлять стартом воспроизведения в OnAir-ах из пульта (или того приложения, которое управляет пультом). Объем решаемых задач никак не изменится (принимать или посылать команды все равно придется с помощью специального кода, общающегося по сети с пультом), а вот удобство оператора явно разное - или он кликает кнопки в разных приложениях, или просто управляет пультом, а OnAir-ы сами стартуют воспроизведение, когда оператор жмет соответствующую кнопку на пульте. Насколько я понимаю, речь идет о показе сюжетов - в OnAir-е есть галочка "Показывать первый кадр", соответственно, даже если команда старта отработает с небольшой задержкой, то в эфире несколько кадров постоит первый кадр ролика, а затем ролик продолжится. Если в пульте будет использоваться какая-нибудь склейка, то все подумают, что так и надо

-
- Сообщения: 83
- Зарегистрирован: 16 фев 2010 15:32
- Откуда: г. Красноярск
да, все три будут управлять пультом, в каждом должен быть скрипт.Игорь Таранцев писал(а): в каком из расписаний должен быть скрипт, управляющий пультом? Или все три расписания будут управлять пультом?
такой контроль не требуется, т.к. синхронизация расписаний не нужна, старт планируется для выхода со студии или спутника, либо для аварийного запуска с резервной машины.Игорь Таранцев писал(а):
Если все три, то кто контролирует своевременность нажатия кнопок Старт (чтобы не нажали Старт до того, как закончилось воспроизведение видео из другого OnAir-а)?
Возможно и так кстати, спасибо, подумаю.Игорь Таранцев писал(а):
Может имеет смысл подумать над другим вариантом - управлять стартом воспроизведения в OnAir-ах из пульта (или того приложения, которое управляет пультом).