Difference between revisions of "SeminarAssembler — добавим слайды к youtube"
MaksTsepkov (Talk | contribs) |
|||
(5 intermediate revisions by 2 users not shown) | |||
Line 22: | Line 22: | ||
* Чтобы выкачать видео с Youtube, нужна youtube-dl. Всем Windows-пользователям рекомендую поставить [http://chocolatey.org chocolatey], после чего это займет одну команду | * Чтобы выкачать видео с Youtube, нужна youtube-dl. Всем Windows-пользователям рекомендую поставить [http://chocolatey.org chocolatey], после чего это займет одну команду | ||
choco install -y youtube-dl | choco install -y youtube-dl | ||
− | + | * Нам пригодится также еще PDF-вьевер, который умеет быстро перегонять PDF в картинки: | |
choco install -y PDFXChangeViewer | choco install -y PDFXChangeViewer | ||
− | ** Потом зайдем в каталог "cam6"<ref>можно в любой другой, в этом нет смысла, просто он точно есть и нам не пригодится для чего либо еще</ref> и выкачаем | + | * Inkscape для редактирования планов: |
+ | choco install -y inkscape | ||
+ | |||
+ | * Потом зайдем в каталог "cam6"<ref>можно в любой другой, в этом нет смысла, просто он точно есть и нам не пригодится для чего либо еще</ref> и выкачаем | ||
cd d:\my-video\sources\cam6 | cd d:\my-video\sources\cam6 | ||
youtube-dl https://www.youtube.com/watch?v=OwGdz7FcoKQ | youtube-dl https://www.youtube.com/watch?v=OwGdz7FcoKQ | ||
− | + | * Импортируем скачанное хрензнает что (MKV/MP4/FLV) в AVI-файл | |
cd D:\my-video\sources\cam1 | cd D:\my-video\sources\cam1 | ||
sa p D:\my-video\sources\cam6 | sa p D:\my-video\sources\cam6 | ||
− | + | * Проверяем: | |
sa v D:\my-video\sources\cam1\source.py | sa v D:\my-video\sources\cam1\source.py | ||
− | — должны увидеть превью этого файла. | + | — должны увидеть превью этого файла. Файл покажется в разрешении 100% и если экран маленький, вы увидите правый верхний угол, надо с помощью rclick поменять zoom. |
− | |||
− | |||
− | |||
* Создадим каталог для картинок по слайдам | * Создадим каталог для картинок по слайдам | ||
mkdir d:\my-video\sources\screen1\s | mkdir d:\my-video\sources\screen1\s | ||
− | * В PDFXChangeViewer делаете "Export to image". Самое важное — правильно указать каталог и схему именования файлов. | + | * Сохраняем слайды. |
+ | ** Если у вас слайды в PPT - презентацию надо сохранить как png, а затем выбрать "все слайды". Он положит все слайды в отдельную директорию с именем презентации, далее их надо скопировать в созданную директорию. | ||
+ | ** PDF презентации для видео, которое вы скачали выше лежит [http://0x1.tv/Файл:Эволюция_организаций_и_эволюция_сотрудника_–_как_изменяется_понятие_о_правильном_(Максим_Цепков).pdf здесь] - скачайте его | ||
+ | ** Если у Вас pdf - откройте его в PDFXChangeViewer. | ||
+ | ** Если ODP - также сведите задачу к предыдущей через LibreOffice. | ||
+ | ** В PDFXChangeViewer делаете "Export to image". Самое важное — правильно указать каталог и схему именования файлов. | ||
[[File:pdfexchange-export-image.png|left]] | [[File:pdfexchange-export-image.png|left]] | ||
Line 108: | Line 113: | ||
01:20:00 | 01:20:00 | ||
</pre> | </pre> | ||
− | Т.е. нужно прописать время в начало каждой строки, когда появляется соответствующий слайд. Обычно, я это делаю так: | + | Т.е. нужно прописать время в начало каждой строки, когда появляется соответствующий слайд. |
+ | |||
+ | Обычно, я это делаю так: | ||
* Папку с слайдами, с режимом «extralarge icons» я размещаю отдельно... | * Папку с слайдами, с режимом «extralarge icons» я размещаю отдельно... | ||
* Пробегаемся или прослушиваем видео, вспоминая, какой слайд должен быть где. | * Пробегаемся или прослушиваем видео, вспоминая, какой слайд должен быть где. | ||
Line 115: | Line 122: | ||
** Если слайды частично на видео видны, тем более, не надо прослушивать видео и надо использовать VLС, бегая по файлу с помощью прыжков трех типов (±мин, ±10сек, ±1<ref>Для этого в настройках VLC надо сменить время короткого прыжка с 3 до 1 секунды</ref> сек), и копируя время в clipboard. | ** Если слайды частично на видео видны, тем более, не надо прослушивать видео и надо использовать VLС, бегая по файлу с помощью прыжков трех типов (±мин, ±10сек, ±1<ref>Для этого в настройках VLC надо сменить время короткого прыжка с 3 до 1 секунды</ref> сек), и копируя время в clipboard. | ||
− | Итак, файл <tt>D:\my-video\sources\screen1\slides.py.scenario<tt> вышеуказанного содержания — готов. | + | '''Первый слайд обязательно должен идти с нулевого времени.''' Даже если начало видео Вы планируете показать только видео - это надо будет сделать с помощью следующего пункта. |
+ | |||
+ | Итак, файл <tt>D:\my-video\sources\screen1\slides.py.scenario</tt> вышеуказанного содержания — готов. | ||
+ | |||
+ | * Скачайте SVG-файл [[:File:MAX.svg]], в <tt>D:\my-video\views\MAX.svg</tt> | ||
+ | * Можно поработать над дизайном. Откройте предпросмотр: | ||
+ | sa v D:\my-video\views\MAX.svg | ||
+ | |||
+ | Вы должны увидеть два окна: | ||
+ | ;Inkscape: Где редактируюется собственно «видеоплан» | ||
+ | ;VirtualDub: Где в режиме WYSIWYM, дается превью результата. | ||
+ | |||
+ | [[File:sa-preview.png|center]] | ||
+ | |||
+ | В Inkscape откройте «CTRL-SHIFT-O», чтобы видеть свойства объектов. | ||
+ | Попробуйте редактирование — перемещение зеленого и синего прямоугольника<ref>Цвета не имеют никакого значения</ref> — переместит слайды и видео с камеры. | ||
+ | Кроппинг прописан непостредственно в свойствах объекта: | ||
+ | .Crop(120,0,-120,0) | ||
+ | - означает срезать по 120 пикселей справа и слева | ||
+ | |||
+ | .CropLeftRight("30") | ||
+ | — срезать по 30% c лева и справа одновременно. | ||
+ | |||
+ | В данном случае, мы пока на этом задерживатся не будем, это тема отдельного урока, для наших целей, чуть-чуть поменять цифры, будет достаточно. | ||
+ | |||
+ | Остался последний шаг. | ||
+ | У нас уже есть набросок сценария: | ||
+ | D:\my-video\scenes\default.scenario | ||
+ | |||
+ | Там специально заполнены все возможные атрибуты... но это несколько смущает. Давайте тупо впишем туда (или даже в отдельный scenario-файл) | ||
+ | |||
+ | <pre> | ||
+ | HEIGHT 1080 | ||
+ | WIDTH 1920 | ||
+ | AUDIO cam1 | ||
+ | GLOBAL_SPEED 1.2 | ||
+ | 00:01:26 MAX | ||
+ | 00:53:50 CAM1 | ||
+ | 00:55:10 | ||
+ | </pre> | ||
+ | |||
+ | Т.е. тупо — размер 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-файлов, и указать их в файле сценария. |
Latest revision as of 22:45, 15 March 2017
Если вы хотите записать персональную видеолекцию, или снимаете в одиночку семинар в небольшом помещении, где все камеры-фреймграбберы-… можно вполне подключить к одному компьютеру — нет ничего лучше Open Broadcaster Software. Не важно, OBS Classic или OBS Studio, обязательно освойте этот инструмент — там есть некие сложности-хитрости, проблемы, вопиющие об улучшениях… но ничего близкого по удобству нет.
SeminarAssembler - штука непростая, полезная для массовой обработки кучи источников видео-аудио, разбросанных по в далеке друг от друга в больших залах…, редко это кому нужно, кроме фанатов записей конференций, типа http://0x1.tv.
Но бывают сценарии, когда и обычному пользователю он может пригодится для быстрого монтажа всего лишь одного видео.
Рассмотрим реальный сценарий — вы выступили где-то со слайдами, вас записали и выложили на youtube («видео есть, чек — что еще надо?»), вы смотрите, и горестно офигеваете — слайдов нет, только одна ваша говорящая голова. Или слайды есть, но хрен прочтешь — мелко, засвеченно, не видно. Или, до кучи, видео вообще отзеркалено (сам видел недавно такую трансляцию).
И так, у вас есть слайды, ссылка на ютуб, а хотелось бы хотя бы тупой монтаж видео со своей головой или тушкой + слайды, быстро.
Попробуем набросать простой тьюториал, не вдаваясь в глубины, зато на реальном примере.
- Поставьте последний 32-битный AVISynth
- Возьмите свежий sa.exe и бросьте куда-нибудь в пути.
- Заведите любую папку для проекта. Например, для определенности
mkdir d:\my-video
- Заходим в этот каталог и инициализируем шаблон проекта
cd d:\my-video sa i
- Чтобы выкачать видео с Youtube, нужна youtube-dl. Всем Windows-пользователям рекомендую поставить chocolatey, после чего это займет одну команду
choco install -y youtube-dl
- Нам пригодится также еще PDF-вьевер, который умеет быстро перегонять PDF в картинки:
choco install -y PDFXChangeViewer
- Inkscape для редактирования планов:
choco install -y inkscape
- Потом зайдем в каталог "cam6"[1] и выкачаем
cd d:\my-video\sources\cam6 youtube-dl https://www.youtube.com/watch?v=OwGdz7FcoKQ
- Импортируем скачанное хрензнает что (MKV/MP4/FLV) в AVI-файл
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
- Сохраняем слайды.
- Если у вас слайды в PPT - презентацию надо сохранить как png, а затем выбрать "все слайды". Он положит все слайды в отдельную директорию с именем презентации, далее их надо скопировать в созданную директорию.
- PDF презентации для видео, которое вы скачали выше лежит здесь - скачайте его
- Если у Вас pdf - откройте его в PDFXChangeViewer.
- Если ODP - также сведите задачу к предыдущей через LibreOffice.
- В PDFXChangeViewer делаете "Export to image". Самое важное — правильно указать каталог и схему именования файлов.
Итак, слайды лежат готовыми картинками, самое время быстро описать, где и по какому времени они находятся. Сгенерим заготовку описания[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
Т.е. нужно прописать время в начало каждой строки, когда появляется соответствующий слайд.
Обычно, я это делаю так:
- Папку с слайдами, с режимом «extralarge icons» я размещаю отдельно...
- Пробегаемся или прослушиваем видео, вспоминая, какой слайд должен быть где.
- Записываем время соответствующего слайда — секундной точности более чем достаточно.
- Чтобы не сэкономить силы, можно поставить версию VLC 2.0.8, для которой работает мой старый плагин Time2Clipboard, который по нажатию на «CTRL-?» кладет в clipboard текущее время[3].
- Если слайды частично на видео видны, тем более, не надо прослушивать видео и надо использовать VLС, бегая по файлу с помощью прыжков трех типов (±мин, ±10сек, ±1[4] сек), и копируя время в clipboard.
Первый слайд обязательно должен идти с нулевого времени. Даже если начало видео Вы планируете показать только видео - это надо будет сделать с помощью следующего пункта.
Итак, файл D:\my-video\sources\screen1\slides.py.scenario вышеуказанного содержания — готов.
- Скачайте SVG-файл File:MAX.svg, в D:\my-video\views\MAX.svg
- Можно поработать над дизайном. Откройте предпросмотр:
sa v D:\my-video\views\MAX.svg
Вы должны увидеть два окна:
- Inkscape
- Где редактируюется собственно «видеоплан»
- VirtualDub
- Где в режиме WYSIWYM, дается превью результата.
В 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-файлов, и указать их в файле сценария.- ↑ можно в любой другой, в этом нет смысла, просто он точно есть и нам не пригодится для чего либо еще
- ↑ Если у вас больше 50 слайдов, поправьте slides.py очевидным образом
- ↑ Если кто знает, как это сделать для свежих версий VLC — свяжитесь со мной
- ↑ Для этого в настройках VLC надо сменить время короткого прыжка с 3 до 1 секунды
- ↑ Цвета не имеют никакого значения