Конференции-трансляции-таунхоллы-семинары-видеоблоги-скринкасты — ответ один. Швейцарский нож OBS, Open Broadcaster Software
Материал из 0x1.tv
Меня часто спрашивают по вопросам, хоть как-то связанным с записью видео-аудио, трансляцией семинаров-конференций, тонкостям скринкастинга… и если раньше я вздыхал, и начинал задавать наводящие вопросы («вам записывать скринкаст под Windows или Linux?», «со звуком или без?», «трансляция на какую аудиторию»…), чтобы потом порекомендовать подходящую софтину, то уже несколько лет, у меня один ответ на все. OBS. И это не «Одна Бабка Сказала»™, а Open Broadcaster Software.
Мультиплатформенный Швейцарский нож, но с дружелюбным GUI и легкой кривой входа.
- Надо просто записать скринкаст? — не парьтесь, ставьте, даже такую простую задачу можно и нужно доверить OBS. Нет смысла изучать 100500 других способов скринкастинга, собранных или не собранных в ваш линукс или винду.
- Надо сделать «профессиональный» MOOC или клип-обзор, т.е. скринкаст с говорящей головой в углу — да, конечно можно.
- Транслировать просто видео — … !
- Транслировать видео с экраном — … !
- Оперативно переключаться между разными планами «экран», «экран с головой в углу», «голова с экраном в углу», «просто камера», «камера2+камера3», — … !
- Показать экран другого компьютера или вообще странного медицинского устройства — … тоже можно.
И все это максимально эффективно, с использованием видеокарты для упаковки и наложения оверлеев, с предустановленными параметрами транслирующих сервисов, …
Рассмотрим две самых распространенных задачи.
Личный видеоклип
Самый быстрый, с точки зрения автора, способ зафиксировать свои знания, хотя часто бывает также эффективно и для получателя.
Да, часто народ утверждает, что читать в два раза быстрее, чем смотреть видео, и местами, когда гуглишь какие-то очевидные ответы, а гугл тебе подсовывает вместо стековерфлоу с одной строчкой, какие-то длинные видео каких-то косноязычных индусов, которые полчаса разливают воду, путаясь открывают нужную софтину… начинаешь их проклинать.
Но. Если эти знания не настолько тривиальны, если нужно зафиксировать их здесь и сейчас, чтобы немедленно передать знания другим людям, или наоборот, застраховаться от внезапного ухода автора из компании (о чем я давно говорил в куче докладов, например в «Страховка от автобуса» или пересадка сознания при групповой нейрохирургии), то нет ничего эффективней, чем быстро набросать маймап или слайды с краткими тезисами, открыть код и нужные софтины, а дальше, в режиме «говорящей головы на фоне слайдов-кода-софтин» быстро озвучить тезисы, показать, «как оно работает» с живыми комментариями. Плотность информации — 60 тысяч знаков за полчаса минимум, поверьте тому, кто неоднократно писал стенограммы. Причем ключевое — будет на слайдах-тезисах-майндмапах-лайвдемо, и отпечатается на зрительных нейронах, а остальное, возможно непечатным русским слогом, пойдет аудиоканалом.
- Нужно всего лишь — OBS (Studio или Classic, обычно неважно, но начните с Studio).
- USB-вебкамера — мимика, жесты, демо с предметами тоже может пригодится. Совсем экономить на вебкамерах не стоит, но вебкамы от Microsoft и Logitech — обычно нестыдно.
В идеале, при записи себя, желательно:
- Два монитора — на одном будет интерфейс 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), пока звук не попадет «в губы».
Если вы снимаете что происходит в другом устройстве — например, вы хотите показать экран при работе с 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-карта для десктопа, если мать не поддерживает, стоит считанные баксы.
Теперь о камерах с поддержкой 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 dshow://
- … будет вынужден захватывать HDV-камеру, без вариантов.
- потом в OBS studio выбрать источник типа VLC Source,
- и вуаля — там будет видео с камеры.
В настройках трансляции и записи ничего сложного нет, хотя да... пишите видео только в стриминг-форматы, устойчивые к ситуации «все внезапно сдохло». 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.
- ↑ Случай с огромными залами конференций, кучей камер, дублированием записи экранов и звука… можно наверно пытаться сделать также, но это уже падает либо в необходимость профессиональных видеокоманд, либо в использовании моего SeminarAssembler, как делаю я при съемке всех этих конференций, но это вам будет сложно. Тут мы начнем с основ.
- ↑ Затемнение перед экраном проектора и в зале, точечная подсведка докладчика прожекторами сверху
- ↑ 720x576 в случае PAL и 720x480 в случае американок, т.е. NTSC
- ↑ Canon HV20-30-40, фотоаппараты Panasonic Lumix
- ↑ 80-минутную в LP-режиме
- ↑ Потом тупо продам.
- ↑ У меня лично есть даже 25 метровый шнур для таких трансляций, и его непросто было достать… И да, хороший, проверенный Firewire-шнур — это важно, куча китайщины на алиэкспрессе оказалось полным говном.