Если вы хотите записать персональную видеолекцию, или снимаете в одиночку семинар в небольшом помещении, где все камеры-фреймграбберы-… можно вполне подключить к одному компьютеру — нет ничего лучше Open Broadcaster Software. Не важно, OBS Classic или OBS Studio, обязательно освойте этот инструмент — там есть некие сложности-хитрости, проблемы, вопиющие об улучшениях… но ничего близкого по удобству нет.

SeminarAssembler - штука непростая, полезная для массовой обработки кучи источников видео-аудио, разбросанных по в далеке друг от друга в больших залах…, редко это кому нужно, кроме фанатов записей конференций, типа http://0x1.tv.

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

Рассмотрим реальный сценарий — вы выступили где-то со слайдами, вас записали и выложили на youtube («видео есть, чек — что еще надо?»), вы смотрите, и горестно офигеваете — слайдов нет, только одна ваша говорящая голова. Или слайды есть, но хрен прочтешь — мелко, засвеченно, не видно. Или, до кучи, видео вообще отзеркалено (сам видел недавно такую трансляцию).

И так, у вас есть слайды, ссылка на ютуб, а хотелось бы хотя бы тупой монтаж видео со своей головой или тушкой + слайды, быстро.

Попробуем набросать простой тьюториал, не вдаваясь в глубины, зато на реальном примере.

mkdir d:\my-video
cd d:\my-video
sa i
choco install -y youtube-dl
choco install -y PDFXChangeViewer
choco install -y inkscape
cd d:\my-video\sources\cam6
youtube-dl https://www.youtube.com/watch?v=OwGdz7FcoKQ
 cd D:\my-video\sources\cam1
 sa p D:\my-video\sources\cam6
 sa v D:\my-video\sources\cam1\source.py

— должны увидеть превью этого файла. Файл покажется в разрешении 100% и если экран маленький, вы увидите правый верхний угол, надо с помощью rclick поменять zoom.

 mkdir d:\my-video\sources\screen1\s
Pdfexchange-export-image.png
Pdfexchange-export-image-2.png

Итак, слайды лежат готовыми картинками, самое время быстро описать, где и по какому времени они находятся. Сгенерим заготовку описания[2]:

cd D:\my-video\sources\screen1\
sa b slides.py.scenario

Наша цель — составить файл D:\my-video\sources\screen1\slides.py.scenario следующего содержания.

HEIGHT	1080
WIDTH	1920
00:00:00 s/s-01.png
00:01:47 s/s-02.png
00:02:45 s/s-03.png
00:02:52 s/s-04.png
00:03:36 s/s-05.png
00:04:31 s/s-06.png
00:05:55 s/s-07.png
00:06:49 s/s-08.png
00:07:32 s/s-09.png
00:08:38 s/s-10.png
00:09:25 s/s-11.png
00:09:32 s/s-12.png
00:10:45 s/s-13.png
00:12:36 s/s-14.png
00:13:25 s/s-15.png
00:15:09 s/s-16.png
00:15:18 s/s-17.png
00:15:22 s/s-20.png
00:15:35 s/s-19.png
00:15:57 s/s-18.png
00:16:54 s/s-21.png
00:17:24 s/s-22.png
00:19:10 s/s-23.png
00:20:20 s/s-24.png
00:22:49 s/s-25.png
00:23:25 s/s-26.png
00:23:33 s/s-27.png
00:25:53 s/s-28.png
00:27:21 s/s-29.png
00:28:25 s/s-30.png
00:30:25 s/s-31.png
00:30:40 s/s-32.png
00:31:35 s/s-33.png
00:33:01 s/s-34.png
00:33:08 s/s-35.png
00:33:32 s/s-36.png
00:34:47 s/s-37.png
00:35:56 s/s-38.png
00:37:55 s/s-39.png
00:38:07 s/s-40.png
00:38:12 s/s-41.png
00:39:50 s/s-42.png
00:42:45 s/s-43.png
00:43:01 s/s-44.png
00:46:40 s/s-45.png
00:47:32 s/s-46.png
00:50:38 s/s-47.png
00:51:00 s/s-48.png
00:51:38 s/s-49.png
00:52:55 s/s-50.png
01:20:00

Т.е. нужно прописать время в начало каждой строки, когда появляется соответствующий слайд.

Обычно, я это делаю так:

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

Итак, файл D:\my-video\sources\screen1\slides.py.scenario вышеуказанного содержания — готов.

sa v D:\my-video\views\MAX.svg

Вы должны увидеть два окна:

Inkscape
Где редактируюется собственно «видеоплан»
VirtualDub
Где в режиме WYSIWYM, дается превью результата.
Sa-preview.png

В Inkscape откройте «CTRL-SHIFT-O», чтобы видеть свойства объектов. Попробуйте редактирование — перемещение зеленого и синего прямоугольника[5] — переместит слайды и видео с камеры. Кроппинг прописан непостредственно в свойствах объекта:

.Crop(120,0,-120,0)

- означает срезать по 120 пикселей справа и слева

.CropLeftRight("30")

— срезать по 30% c лева и справа одновременно.

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

Остался последний шаг. У нас уже есть набросок сценария:

D:\my-video\scenes\default.scenario

Там специально заполнены все возможные атрибуты... но это несколько смущает. Давайте тупо впишем туда (или даже в отдельный scenario-файл)

HEIGHT	1080
WIDTH	1920
AUDIO	cam1
GLOBAL_SPEED	1.2
00:01:26 MAX
00:53:50 CAM1
00:55:10

Т.е. тупо — размер 1920x1080, звук взять из CAM1, ускорить с тонокомпенсацией на 20%, начать с 01:26, показав наш план с «голова-с-слайдами», в конце, в 53:50, слайдов нет, просто покажем видео CAM1.

Осталось все это собрать.

cd D:\my-video\scenes
sa b default.scenario.avs.avi

Все!

Можно собрать и

 sa b "default.scenario.avs$vquality=500,size=2G.avi"

(собрать с качеством 500% от некой нормы, но чтобы не больше 2GB размером).

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

  1. можно в любой другой, в этом нет смысла, просто он точно есть и нам не пригодится для чего либо еще
  2. Если у вас больше 50 слайдов, поправьте slides.py очевидным образом
  3. Если кто знает, как это сделать для свежих версий VLC — свяжитесь со мной
  4. Для этого в настройках VLC надо сменить время короткого прыжка с 3 до 1 секунды
  5. Цвета не имеют никакого значения