Конференции-трансляции-таунхоллы-семинары-видеоблоги-скринкасты — ответ один. Швейцарский нож OBS, Open Broadcaster Software

Материал из 0x1.tv

Меня часто спрашивают по вопросам, хоть как-то связанным с записью видео-аудио, трансляцией семинаров-конференций, тонкостям скринкастинга… и если раньше я вздыхал, и начинал задавать наводящие вопросы («вам записывать скринкаст под Windows или Linux?», «со звуком или без?», «трансляция на какую аудиторию»…), чтобы потом порекомендовать подходящую софтину, то уже несколько лет, у меня один ответ на все. OBS. И это не «Одна Бабка Сказала»™, а Open Broadcaster Software.

Мультиплатформенный Швейцарский нож, но с дружелюбным GUI и легкой кривой входа.

  • Надо просто записать скринкаст? — не парьтесь, ставьте, даже такую простую задачу можно и нужно доверить OBS. Нет смысла изучать 100500 других способов скринкастинга, собранных или не собранных в ваш линукс или винду.
  • Надо сделать «профессиональный» MOOC или клип-обзор, т.е. скринкаст с говорящей головой в углу — да, конечно можно.
  • Транслировать просто видео — … !
  • Транслировать видео с экраном — … !
  • Оперативно переключаться между разными планами «экран», «экран с головой в углу», «голова с экраном в углу», «просто камера», «камера2+камера3», — … !
  • Показать экран другого компьютера или вообще странного медицинского устройства — … тоже можно.

И все это максимально эффективно, с использованием видеокарты для упаковки и наложения оверлеев, с предустановленными параметрами транслирующих сервисов, … 

Рассмотрим две самых распространенных задачи.

Личный видеоклип

Личный видеоклип с OBS.gif

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

Да, часто народ утверждает, что читать в два раза быстрее, чем смотреть видео, и местами, когда гуглишь какие-то очевидные ответы, а гугл тебе подсовывает вместо стековерфлоу с одной строчкой, какие-то длинные видео каких-то косноязычных индусов, которые полчаса разливают воду, путаясь открывают нужную софтину… начинаешь их проклинать.

Но. Если эти знания не настолько тривиальны, если нужно зафиксировать их здесь и сейчас, чтобы немедленно передать знания другим людям, или наоборот, застраховаться от внезапного ухода автора из компании (о чем я давно говорил в куче докладов, например в «Страховка от автобуса» или пересадка сознания при групповой нейрохирургии), то нет ничего эффективней, чем быстро набросать маймап или слайды с краткими тезисами, открыть код и нужные софтины, а дальше, в режиме «говорящей головы на фоне слайдов-кода-софтин» быстро озвучить тезисы, показать, «как оно работает» с живыми комментариями. Плотность информации — 60 тысяч знаков за полчаса минимум, поверьте тому, кто неоднократно писал стенограммы. Причем ключевое — будет на слайдах-тезисах-майндмапах-лайвдемо, и отпечатается на зрительных нейронах, а остальное, возможно непечатным русским слогом, пойдет аудиоканалом.

  • Нужно всего лишь — OBS (Studio или Classic, обычно неважно, но начните с Studio).
  • USB-вебкамера — мимика, жесты, демо с предметами тоже может пригодится. Совсем экономить на вебкамерах не стоит, но вебкамы от Microsoft и Logitech — обычно нестыдно.
OBS - office studio on workspace.jpg

В идеале, при записи себя, желательно:

  • Два монитора — на одном будет интерфейс OBS, чтобы переключать сцены-планы монтажа, включать-останавливать запись.
  • Раскладной зеленый экран сзади, покупается на алиэкспрессе за копейки, можно пристроить в любом офисе, кроме самых убогих опенспейсов.
  • В OBS настаиваете несколько стандартных планов — «чисто экран», «камера на фоне-чего-нибудь», «экран+камера в углу», для камеры сделать фильтр «хромакей» (один раз подобрать для офисного освещения, обычно сойдет навсегда, до переезда).
    • Как настраивать «планы» в OBS — интуитивно понятно, двигайте эти прямоугольники мышью, параллельно попробуйте зажимать SHIFT, CONTROL… и откроете для себя кроппинг или ресайз без нарушения пропорций.


Видеомонтаж — не нужен. Лучше записывать просто небольшими блоками 2-10 минут, отвечающими на конкретный вопрос — «Введение в фреймворк XXX», «Как на XXX сделать YYY» и т.п. Подготовили материалы, запустили запись, рассказали… остановили, отдыхаете. Последовательность просмотра можно потом выстроить в вашей внутренней вики, или что у вас там вместо этого.

А в качестве вишенки на торте — можно элементарно улучшить вашу запись, просто ускорив, процентов на 20%-70% (кто знает, насколько вы тормознебыстры).

ffmpeg -y -i "$1" -filter_complex "setpts=PTS/1.5;atempo=1.5" -vcodec libvpx-vp9 -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25  -acodec libvorbis -ab 64K -vb 1M -f webm "sfomin-$1.webm" 

Так можно сделать из заикающегося тугодума популярного блоггера ютуба.

При сьемке личного клипа есть конечно много тонкостей и гитик:

  • Надо приучить себя смотреть в незаметную вебкамеру, а не на монитор. Если пишете на ноутбуке с отдельной камерой — лучше наклонить экран, и смотреть в камеру напрямую, иногда подглядывая.
  • Офигенно использовать ноутбук с пером, тачскрин-монитор или моноблок. См. Магия пера или эффективная свобода преподавания со стилусом (Стас Фомин, OSEDUCONF-2014)
    • Если нет — сделайте хотя бы максимально крупный курсор и пользуйтесь им.
  • Поставьте либо хороший USB-микрофон, либо берите звук с гарнитуры или прищепки. Постарайтесь, чтобы в комнате параллельно не было шумной ругани и рядом не печатал 3D-принтер. Звук — это важно!
  • Скорее всего, надо будет подогнать на ±200ms аудио, чтобы попасть «в губы». Тут надо итерационно записывать себя на камеру, например, считать до 10, так, чтобы губы были крупно видны, потом просматривать все это в плеере VLC, используя клавиши «j» и «q» (сдвиг звука на ±50ms), пока звук не попадет «в губы».
Синхронизация звука в OBS.png



Если вы снимаете что происходит в другом устройстве — например, вы хотите показать экран при работе с BIOSом ноутбука, … или еще какого-то устройства, то вам будут нужны фреймбграбберы для VGA, DVI или HDMI. См. Blog:HowItWorks/Захват экрана — за ценой не постоим. Кстати, один такой фреймграббер я сейчас продаю в МСК.

Level 2: Townhall-ы и Семинары

Перейдем к следующему уровню — сьемка семинаров-лекций-внутрикомпанейских сборищ. Рассмотрим именно простой[1] случай, когда у нас одна камера, экран и звук с микрофона или воздуха.

Тут у вас тоже стоит задача завести в одно место видео с камеры, экран и звук. Надеюсь, вам не надо обьяснять, что снимать одной камерой человека и экран проектора — в не очень сильно подготовленном помещении[2] обычно глупо — вы получите белый, пересвеченный экран, где ничего не разобрать, и черного человека на этом фоне. Поэтому камерой надо снимать докладчика так, чтобы в камеру не попадал экран (ну или только небольшая часть), а экран брать по настоящему, цифровым, чтобы не потерять не пикселя.

Итак, завести звук — ну, относительно просто, кабель для звука может быть сколь угодной длины, коннектором 6.3мм, колокольчиками или XLRом он войдет в микшерный пульт, другим концом он пойдет либо напрямую в LineIn звуковой платы на материнке компа или ноута — тут надо потестировать, настроить уровни, проверить, что внезапные шумы от чего-то (например, радиомодуль — у меня был один факап из-за USB WiFi, воткнутого недалеко от входа в звуковуху), все не сломают, ну и замерить расхождение между звуком и видео, чтобы указать коррекцию в OBS. Следующий уровень крутизны — внешная USB звуковая карта, так будет качественней и надежней. Ну и я бы еще параллельно писал бы звук с микшера на диктофоны, звук лишним не бывает, если в случае личного видео — «запорол, выругался, перезаписал», то с семинаром уже это не пройдет.


Теперь самое сложное. Экран и камера.

  • Камера должна быть с зумом, должна быть возможность ее перенацеливать на зал, маркерные доски, менять масштаб.
  • Камера должна быть удаляема от компа с OBS хотя бы на 5 метров.
    • В целом, стоит задача довести до единого компа источник экрана и видео, причем так, чтобы камера снимала спикера. Обычно, ноутбук докладчика находится рядом с ним (на кафедре, куда он может подглядывать, чтобы не смотреть на экран, поворачиваясь задом к зрителям). Соответственно, тут возможны разные варианты:
      • Комп с презентацией-лайв-демо, примерно там, где докладчик. OBS запускать там же, экран берется прямо с компа, но тогда надо выносить камеру, хотя бы на метров 5
      • Комп с OBS отдельно от компа докладчика, в принципе, можно снимать на USB-камеру (хотя и неудобно), но тогда надо решать вопрос с захватом экрана. Тащите фреймграбберы для VGA, DVI или HDMI (См. Blog:HowItWorks/Захват экрана — за ценой не постоим) заводите в них видеосигнал, либо HDMI насквозь, как с Elgato, либо мучайтесь с сплиттингом DVI или VGA видеосигнала, и хватайте в Ephiphan-фреймграбберы.

Итак, какую же камеру выбрать?

  • Из вебкамер с настоящим зумом и как-то управляемых, я помню только Logitech Orbit, а все остальные «настоящие» камеры, с нормальной оптикой и оптическим зумом… обычно как USB не работают (т.е. подключение по USB и при этом представление вебкамерой, а не, например, стораджем снятого — таких не очень знаю). Т.е. я знаю например, как можно использовать DV-over-USB хак для захвата через USB с помощью dbgrab DV-потока, но в OBS мне его не удалось завести. Т.е. USB-вебкамера только в варианте, когда вот докладчик совсем не бегает, недалеко от компа-ноута с OBS. Редко, нпо такое бывает. Типа поставить стол с ноутом, а еще лучше — кафедру, запретить выходить из-за этого стола и ходить, оглядываться назад, и снимать снизу вверх (не очень хороший ракурс, совсем не секси), с кафедры уже приличней.

Моя рекомендация — самый простой способ получить цифровое видео от настоящей камеры с зумом, которую можно поставить на нормальный штатив, и не покупая 100500 странных и дорогих оцифровщико-конвертеров-фреймграбберов (HDMI2USB, SDI2USB)… это Firewire, он же IEEE1394. Сейчас несколько задвигаемый стандарт… но он до сих пор:

  • Есть в куче ноутов, не только эппловых — HPшные, Thinkpad-ы, Dellы, до 2014 года выпуска — почти все, да и сейчас полно с.
    • Новый ноут не обязателен, для записи 1280x720 и оверлей-сборки в OBS хватит и мобильного Core i5, даже без поддержки видеокарты, т.е. вполне можно выделить под это старый ноут, их всегда можно найти или купить за копейки.
  • PCI-карта для десктопа, если мать не поддерживает, стоит считанные баксы.
MiniDV-cams is good.gif

Теперь о камерах с поддержкой Firewire — они двух типов, DV и HDV, вроде уже не производятся, но стоят сущие копейки на вторичном рынке. При том, что у них отличная оптика, может быть большая слабошумная матрица, неплохой звук, всякие удобства управления.

DV-камеры
разрешение всего 720x576[3]. Это минус, наверно некруто, если снимать современную свадьбу, но если монтировать с экраном на канвас 1280x720, когда спикер пойдет либо урезанным квадратиком в левый нижний угол, либо полосой слева или справа от экрана → это выше крыши. Также это достаточно, если вдруг снимать маркерные доски или флипчарты. Я лично любитель MiniDV-камер от Panasonic, у меня их были десятки, и хотя я для сьемки докладов для 0x1.tv перешел на HDV-камеры 1080i[4], я их часто использую как страховочные (снимать другой угол зала,куда внезапно может уйти докладчик, или флипчарт крупным планом и т.п.). Заодно, запись можно страховать, записывая на двухчасовую[5] miniDV-кассету.
HDV-камеры
Все те же плюсы, что и у DV-камер, разрешение 1080p, единственное — кассеты нужны получше и они только часовые.

Рассмотрим, для простоты, проблему захвата в OBS DV и HDV-камер под виндой. Тут не совсем все очевидно.

DV-камеры
старый добрый OBS-classic захватывает их без проблем стандартно, как "Video Capture Device", при переходе к OBS Studio ребята что-то сломали, пока еще не могут починить. Что обидно, что не работает и обходной путь — захват через VLC-плагин.
HDV-камеры
OBS-classic их не видит. OBS studio через "Video Capture Device" их тоже не видит, но есть обходной путь.
    • сначала надо поставить из запустить VLC, сделать в нем Capture, добиться, чтобы он захватывал c HDV-камеры. Запустите VLC, CTRL-C, выберите нужную камеру…
Vlc-capture-dvcam.png
    • Ну, или чтобы не погружаться в тонкости настройки... запретите остальные вебкамеры, тогда
 vlc dshow:// 
    • … будет вынужден захватывать HDV-камеру, без вариантов.
  • потом в OBS studio выбрать источник типа VLC Source,
Obs-hdv-cam-as-vlc-source.png
    • и вуаля — там будет видео с камеры.
Obs-hdv-cam-as-vlc-source-2.png

В настройках трансляции и записи ничего сложного нет, хотя да... пишите видео только в стриминг-форматы, устойчивые к ситуации «все внезапно сдохло». C AVI, или еще хуже mp4, вы можете внезапно попасть. Пишите все в FLV, с битрейтом побольше (хоть 10Mb x264 кодека), переходировать для хранения или заливки куда-нибудь лучше потом.



Для простоты, еще раз рассмотрим конкретный кейс. Про вот это все меня спрашивали ребята из компании В.

Я помню их расклад:

  • есть десктоп, используемый для показа слайдов и лайвдемо, куда я, кстати, вставил Firewire карту, и она еще там.
  • тот десктоп с виндой — поставьте туда виндовый OBS classic, ну и вообще, он должен там быть.
  • OBS будет захватывать экран прямо с компьютера (там, где презентация и лайвдемо докладчика).
  • Звук тоже с микшерного пульта, недалеко, 6.3mm → 3.5mm.

Осталось добавить камеру. Открытое предложение для них: до НГ[6] могу предложить в подарок профессиональную DV-камеру GS400, с 5-метровым проверенным[7] Firewire-шнуром. Тогда, как я писал выше, надо использовать OBS classic, он вполне подойдет для этой задачи.

Дальше как обычно, делайте несколько типов заготовленных сцен «чисто камера, вокруг корпоративные дизайнерские рамки», «чисто экран», «чисто экран + кроппированная камера в левом нижнем углу», «чисто экран и кроп-камеры в левом верхнем», «вертикальнополосый-кроп-камеры + обрезанный под слайды экран»… и поехали.

Вполне один и тот же человек, сможет, стоя за камерой, посматривать вперед, на монитор с OBS, переключая сцены с помощью беспроводной мыши или чего-нибудь типа этого.



Если камера ОК, но нельзя задействововать один комп для докладчика и запись, — вперед за фреймграбберами. См. Blog:HowItWorks/Захват экрана — за ценой не постоим TLDR: Если у вас только HDMI — берите Elgato, если VGA/DVI… то Epiphan + сплиттер (кстати, сейчас продаю старую модель почти задаром).

Epiphan OBS видит как стандартный источник захвата Video for Windows, Elgato видит специальным модулем. Но в целом, работает.


Если же хотите потрахаться с другими камерами... тут смотрите, что они умеют.

Большая часть консьюмерских камер умеют отдавать HDMI — его можно попытаться захватывать через Elgato. Увы, получается не всегда, если не использовать какие-нибудь конвертеры и скейлеры (типа продукции Kramer).

Более профессиональные камеры обязательно имеют SDI выход — ну и нужен будет профессиональный фреймграббер с SDI, типа продукции BlackMagic.


  1. Случай с огромными залами конференций, кучей камер, дублированием записи экранов и звука… можно наверно пытаться сделать также, но это уже падает либо в необходимость профессиональных видеокоманд, либо в использовании моего SeminarAssembler, как делаю я при съемке всех этих конференций, но это вам будет сложно. Тут мы начнем с основ.
  2. Затемнение перед экраном проектора и в зале, точечная подсведка докладчика прожекторами сверху
  3. 720x576 в случае PAL и 720x480 в случае американок, т.е. NTSC
  4. Canon HV20-30-40, фотоаппараты Panasonic Lumix
  5. 80-минутную в LP-режиме
  6. Потом тупо продам.
  7. У меня лично есть даже 25 метровый шнур для таких трансляций, и его непросто было достать… И да, хороший, проверенный Firewire-шнур — это важно, куча китайщины на алиэкспрессе оказалось полным говном.