Скринкаст в Linux

Долгое время я мучился с тем, как лучше всего писать уроки в линуксе.

Имеющиеся GIU программы меня не удовлетворяли или корявостью, или сложностью установки (отсутствия в репозиториях) и последующей неработой, или устаревшестью, или какой-то нерациональной привязанностью к ogg (я его люблю, но только для музыки).

Несколько уроков были записаны мною в recordmydesktop (gtk-recordmydesktop). Он грешит малым количеством настроек, тем же оггом и тем, что по каким-то мистическим причинам у меня постоянно были проблемы со сведением почищенного звука с видео. Рассинхроны, заикания и тп. Ну, корявые, наверное у меня ручонки.

В итоге, после долгих трений, мучений, нервов, 15 (sic!) попыток записи одного и того же урока, я псешил, шел в винду и делал все в тамошнем фриварном hypercam2.

Однако, наконец, всё резко поменялось, был найден скрипт (предоставленный мне пользователем КактусЪ с blender3d.org.ua, а его ли он авторства я не в курсе), который грабит с экрана и в реалтайме кодит ffmpeg’ом. Казалось бы, вот оно! Ан нет, пришлось его колупать, править искать причины «неработы» и т.д. Представляю результат вам, вдруг пригодится.


#!/bin/sh

INFO=$(xwininfo -shape)
VIDNAME=$1

WIN_GEO=$(echo $INFO | grep -oEe 'geometry [0-9]+x[0-9]+' |\
grep -oEe '[0-9]+x[0-9]+';)
WIN_XY=$(echo $INFO | grep -oEe 'Corners:\s+\+[0-9]+\+[0-9]+' |\
grep -oEe '[0-9]+\+[0-9]+' | sed -e 's/+/,/' )

ffmpeg -f x11grab -show_region 1 -y -r 24 -s $WIN_GEO -i :0.0+$WIN_XY \
-c:v h264 \
-f alsa -ac 2 -i pulse \
-c:a mp3 \
-threads 2 \
-b:v 5000k -preset normal \
-b:a 128k \
$VIDNAME.avi

Всё это нужно скопировать в пустой текстовый файл, сохранить и дать ему право на запуск (chmod +x filename.sh).

А, нюанс. В убунте (не знаю как в Debian) из-за конфликтов разрабов стоит древняя версия ffmpeg, на дату написания поста версия примерно 0.8.6. А это не есть гуд. Я ее удалил и поставил версию с этого репозитория (2.1):

deb http://ppa.launchpad.net/samrog131/ppa/ubuntu raring main

Как его добавить, сами нагуглите ;) Ставить нужно (на момент написания поста) пакет ffmpeg-real. Поставится он в /opt/ffmpeg, поэтому симлинки в нормальный /usr/bin не помешают. Даже больше — необходимы, иначе придется править скрипт. Ну я думаю, вы в курсе.

Ну, вернемся к скрипту. Работает он так: переходите в папку со скриптом, запускаете его из консоли с параметром, который определяет имя вашего результирующего видеофайла, без расширения. Например:

$ ./screencast.sh video

Курсор изменится на крестик. Им нужно тыцнуть в окно, которое вы будете писать в видео. Лично у меня blender настроен так, что при запуске его размер равен ровно 1280х720. С этого момента начнется запись. Когда всё закончите, перейдите в окно консоли с выполненной командой и нажмите Ctrl+C, этим стопорнёте запись. Надеюсь, где искать результат, вы догадаетесь? На на всякий случай скажу — там же, где скрипт запускали.

На сим всё в принципе. Единственное, что могу добавить, это как выцедить аудиодорожку для того, чтобы ее обработать и потов вклеить назад. Выделяем:

$ ffmpeg -i video.avi -acodec copy -vn AUDIO_NOISE.mp3

Обрабатываем в Audacity, об этом здесь не напишу. Сохраняем в mp3 (например, AUDIO_CLEAR.mp3). Склеиваем:

$ ffmpeg -i video.avi -i AUDIO_CLEAR.mp3 -map 0:0 -map 1:0 -acodec copy -vcodec copy video_ok.avi

Фсё. Удачи в скринкастировании :)

, , , ,

7 Responses to “Скринкаст в Linux”

  1. Pavel 5 Декабрь 2013 at 16:01 #

    А как можно в вин хр изменить размер окна блендера на 1280х720 при запуске?

    • Malefic 5 Декабрь 2013 at 17:01 #

      :)
      Я изменял размер, потом замерял его, указывая гиперкаму какое окно писать — он говорил размер. Я тянул окно, опять указывал — он говорил новый размер, пока не подгонял под нужный. Потом главное настройки сохранить и блен всегда будет запускаться в таком размере (если не на полный экран).
      Может есть и способ попроще, я не знаю. Вроде в винде была опция показывать размер при изменении? Или это я с чем-то линуховым путаю…

      • Yazheka 4 Январь 2014 at 10:19 #

        А писать скринкасты blender’ом не пробовали? (Alt+F3)

        • Malefic 4 Январь 2014 at 10:36 #

          Честно — не пробовал :) Нужно будет, но так как есть относительно протоптанные дорожки, нужно себя заставить еще ;)

  2. Mateparaguai 27 Февраль 2014 at 20:26 #

    Есть такая программка Sizer

  3. negativa 16 Сентябрь 2015 at 17:43 #

    Макс, я лентяй, поэтому нашел вот эту штуку vokoscreen http://www.kohaupt-online.de/hp/
    при определенных настройках звук не отстает, пишет в avi

  4. negativa 16 Сентябрь 2015 at 18:14 #

    вот мое баловство с этим vokoscreen https://youtu.be/vxuRHuP_MJ8 )))))

Добавить комментарий