Комментарии 11
В документации сказано, что функции с callback'ами напрямую из LUA использовать нельзя. Если заглянуть в исходник OBS, то там видно, что для некоторых из таких функций написаны wrapper'ы. Я как-то заморочился и смог написать вызов obs_enum_audio_monitoring_devices через FFI.
Кстати, автор упомянутого issue пишет:
There may be a workaround without any change in the OBS codebase by using FFI. I looked for solutions but until now I could not get something working (no experience at all with SWIG and very short experience with Lua).
Так вот, работает всё-таки, подтверждаю.

Но и это далеко не всё колдунство. Понадобился мне доступ на чтение и запись к obs->audio.monitoring_device_name. А сама obs при этом не экспортируется и не доступна в пространстве имён для LUA аж никак. Всё просто: берём известную экспортированную функцию, получаем через FFI на неё указатель, нехитрой математикой смещаем его на фиксированное количество байт, подсмотренных в отладчике. И получаем указатель на саму obs, т.к. почти в начале функции obs используется. Да, хак. Да, может поломаться в любом следующем релизе OBS. Но работает же.

Когда-нибудь, наверное, тоже напишу статью и код публике предоставлю.
Крутить картинку можно и веб браузером поверх видео, где можно сделать какую угодно анимацию css способами. Какие преимущества у lua перед браузером? (не берем в расчет память)

Как я понимаю — это идёт как источник видео, т.е. будет сразу писаться в файл или в стрим (как вы будете делать кастомный CSS для стрима на YouTube — в гугл звонить?). Особенно актуально со стримингом как раз — запись всё равно будешь править в редакторе почти наверняка, а тут так не выйдет.
TL;DR: не всё видео смотрится в браузере, остальное — часто на страницах, где автор не может добавить свой CSS.

Каж-ца вы бред несёте. Посмею предположить, автор прошлой мессаги имел в виду


слой с веб-страницей на стриме

Оно тоже работает как источник видео, т.е. сразу попадает в стрим, и например, именно таким образом работают полоски с донатом (прозрачные области поддерживаются, да) и уведомления о пришедших донатах.

В obs можно наложить хром без UI и выполнять в нем что хочется. От вывода анимаций, скриптинга, алертов о донатах, чаты… Вобщем, чумовая вещь по универсальности.

Стоило бы развернуть это самое OBS.
А то я, например, был озадачен — каким боком Lua к OpenSuse Build Service. Его пользователи между собой как раз и называют его "OBS".

Ну не знаю гугл с вами не согласен. При вводе obs выскакивает только приложение из топика. И както мне человек написал что он собирает приложение через obs дак вот пока я не добавил слово build в поиск я не мог долго понят про что он говорит.

Гугл считает, что "американский" — это исключительно США, а "apple" — название компании.
Хотя и то и то не совсем верно.

Для конференций при стриме через obs теперь можно будет камерой крутить на докладчика или кроп делать)

Для этого там есть сцены и переходы. Настраиваете сцену как надо ручками и даёте по кнопке изменения в эфир. Кроп делается фильтрами источника

Когда докладчик бегает по сцене, нужен динамический кроп и/или управление камерой. Я про этот кейс говорил.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.