Скринкасты в линуксе, личный опыт

в 5:50, , рубрики: Linux для всех, скринкасты, метки:

openshot
Чуть больше года назад я публиковал здесь на хабре скринкасты. Недавно вышел последний и хотелось поделится опытом создания скринкастов под линуксом.
Начну с того, что у меня не было никакого опыта работы с видео и аудио, никакого это значит что совсем никакого. Я никогда в жизни не редактировал видео не в windows, не в macos, не тем более в linux. Мои знания ограничивались несколькими форматами, т.е. я знал что в mpeg2 надо держать исходник видео, а конечный результат сжимать с помощью mpeg4. Какие существую редакторы я даже не догадывался. Но перейдем к делу.

01. Материал для скринкастов

Тут проблем не было, я знал что и как хочу записать. Я уже видел разные «видео уроки» в рунете очень низкого качества, и видел css-tricks и railscаsts. Последние для меня были идеалом к которому я стремился, быстро, четко, ничего лишнего. Для себя я выделил две главные вещи, чтобы видео было в среднем 10 минут, максимум 30, не хотелось сильно тратить время людей, которые будут это смотреть. И хороший аудио голос, поэтому была выбрана прекрасная девушка Елена, которая согласилась поучаствовать в озвучке. Не хотелось самому сидеть бубнить в микрофон. Макеты были заранее сверстаны, всё проверено и распечатано, чтобы в процессе не останавливаться на всякие мелочи и видеть весь код перед глазами. Уложиться в 30 минут оказалось очень сложно. Идем дальше.

02. Запись видео

Вот тут начинается самое интересное, чем писать видео с экрана. Вариантов вроде и много, всякие recordMyDesktop, istanbul, vncrec и т.д., этим всем невозможно пользоваться, не стабильны и нет возможности на выходе получать mpeg2. Из последнего видел появились Kazam и Eidete, но они вышли уже после, ничего про них не скажу. Вначале остановился на xvidcap, куча настроек каких надо, умеет отдавать mpeg2. Но в процессе выяснились не приятные проблемы, видео на выходе получалось короче чем звуки клавиатуры с мышкой. Т.е. я пишу 10 минут, получаю 10 минут аудио и 7 минут видео, например. Абсолютно случайно мне попался чудо bash скрипт, которым я записал все скринкасты, не одного раза ничего не упало, не испортилось. К сожалению автора не знаю, блог где я его нашел уже давно не работает, упоминания в гугле никакого нет. Посмотреть можно на гитхабе. Есть пара скринкастов где исходное видео длинной около 6 часов, надо было уйти а паузы нет, так и оставлял, потом просто вырезал этот кусок и всё.
Процесс записи был достаточно простой. Сначала был создан новый пользователь для скринкастов. Так проще, можно потом вернутся через какое-то время и что-то доделать, плюс не надо убирать файлы у текущего с рабочего стола. Были убраны часы в трее, т.к. видео редактируются и что-то вырезается, не нужно чтобы люди отвлекались в процессе на прыгающие часы. Для запуска скрипта записи я использовал терминал tilda. Этот же терминал я использовал как сигнал для последующей обработки, что здесь надо что-то удалить. Например в процессе что-то перепутали, вызвали терминал, убрали, потом во время редактирования когда видишь открытый терминал, знаешь что здесь надо что-то вырезать. На картинке внизу этот момент как раз показан.
Скринкасты в линуксе, личный опыт
Запись звуков клавиатуры и кликов мыши, можно было не писать, но бывают моменты когда голоса долго нет в видео, и полная тишина странно выглядит. Писалось одновременно с видео, плюс скрипт в конце делает синхронизацию.

03. Запись голоса

Перепробовали много вариантов, остановились на следующем. После записи видео, я пишу субтитры, где какие фразы должны быть. Кусок .srt файла.

18
00:08:08,000 --> 00:08:28,000
placeholder longtitle выводит значение из поля "расширенный заголовок"

19
00:08:21,000 --> 00:08:41,000
placeholder pagetitle берет значение из первого поля "заголовок"

20
00:08:44,000 --> 00:09:04,000
блок с ссылками иконками превратим в чанк, чтобы не мешались до конца скринкаста. Чанк это просто кусок html

Дальше приходила Елена и мы писали каждую фразу на отдельной дорожке в Audacity.
Скринкасты в линуксе, личный опыт
Дальше я прогонял каждую дорожку через фильтры Normalize и Noise removal, и сохранял отдельным файлом. Был куплен микрофон Samson GoMic и прослушены все подкасты в ТиПЗ.

04. Обработка и соединение всего вместе

Особо ничего не делалось, просто вырезались лишние куски, которых было не особо много. Вырезались по принципу описанному выше. Находились открытые терминалы, просматривался кусок и вырезалось лишнее.
Скринкасты в линуксе, личный опыт
На скриншоте Avidemux, отличная программа, никаких проблем не доставила, пару раз падала, но восстанавливалась с места где упала. После вырезания лишнего в левой колонке выставлялось «Copy» у Video и Audio, формат MPEG-TS и сохранялось в отдельный файл.
В этом месте у нас уже лежит всё готовое, отредактировано видео и файлы с голосом. Чтобы соединить это всё вместе я пробовал PiTiVi, но им невозможно пользоваться, у меня он ужасно тормозил. Также попробовал Kino и еще что-то нашел, всё не устроило. Подошел OpenShot, тоже далек от идеала, но гораздо лучше чем остальные.
Кидаем всё на дорожки, голос расставляем смотря в файл с субтитрами.
Скринкасты в линуксе, личный опыт
Различные выделения или вставку надписей, как на картинке внизу, я делал с помощью полупрозрачной png картинки с вырезанным куском.
Скринкасты в линуксе, личный опыт
Ставим на верхнюю дорожку, выставляем сколько секунд показывать и все.

06. Кодируем

Уже на данном этапе можно сделать экспорт из OpenShot и получить видео нужного формата, но меня не устроил размер и качество получаемого файла. Поэтому создаем профиль в OpenShot с параметрами нашего исходного видео.
Скринкасты в линуксе, личный опыт
И делаем экспорт в mpeg2 используя созданный профиль и максимальное качество, чтобы не потерять то что есть.
Скринкасты в линуксе, личный опыт
Я пробовал кодировать получившийся файл с помощью ffmpeg в консоли, но из-за нехватки знаний нужных ключей подобрать не смог, и размер файлов получался очень большой при ужасном качестве. Для последнего перекодирования я использовал Avidemux. Открываем то что вышло из OpenShot. Выставляем слева mpeg-4, аудио faac и формат mp4.
Скринкасты в линуксе, личный опыт
Текущие настройки я использовал чтобы получать на выходе низкое качество, из 2-х гигабайтного исходника получался ~70 мегабайтный файл. Для высокого качества я открывал слева в видео кнопку configure и уменьшал quantizer до 10.
Скринкасты в линуксе, личный опыт
На выходе получался опять же из 2-х гигабайтного исходника ~500 мегабайтный файл. Его я использовал для заливки на youtube. Я пробовал различные html5 плееры, но ютюб оказался проще, плюс в данный момент достаточно легко стало заливать ролики любой длинны.
Если резюмировать, то единственной текущей проблемой является отсутствие нормального много дорожечного видео редактора, всё что есть ужасно.

P.S.

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

Автор: pomeo


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js