четверг, 31 октября 2013 г.

Скринсейвер для Windows -> видео

Передо мной встала такая задача: сделать для домашнего просмотра (для сына) видео с партиями Го.
Решение:

  1. Мой опыт показывает, что для таких "презентаций" неплохо подходят скринсейверы. Недолгий поиск вывел меня на эту страничку с скринсейверами. Выбор пал на SunXi Go Screensaver. Но он для Windows! :-( Хм, ну ладно!
  2. Скачиваем, распаковываем (подсказка, 7z!). Переименовываем файл SunXiGo.scr в SunXiGo.exe. Запускаем вайном, сначала конфигурацию, потом сам скринсейвер:
    1. wine SunXiGoScreenSaverConfig.exe
    2. wine SunXiGo.exe /s
    3. Работает! :-) На весь экран, как положено скринсейверу.
  3.  Теперь надо это правильно показать, чтобы потом записать.
    • winecfg
    • Меняем режим отображения: Эмулировать рабочий стол, выставляем нужное разрешение (например, 1280x720). Скринсейвер запускается в окошке нужного размера.
  4. Записать работу скринсевера можно программой screencaster, которая является простой надслойкой для ffmpeg (avconv -f x11grab).
  5. Для того, чтобы записать не весь экран, а только интересующий кусок, меняем параметры:
    1. frame_size=1280x720
    2. DISPLAY=$DISPLAY+73,67
      здесь 73,67 - это координаты верхнего левого угла нужной картинки. Определяются они тоже просто: надо сделать скриншот всего экрана и в графическом редакторе (gimp) под увеличением точно посмотреть, где находится этот угол.
  6. Всё готово! Записываем:
    1. DISPLAY=$DISPLAY+73,67 recstart &
    2. wine SunXiGo.exe /s
    3. Когда всё закончилось,
    4. recstop
  7. Так! осталось совсем немного, отрезать мусор в начале и в конце ролика и наложить музыку. Запускаем avidemux, и подрезаем.
  8. Всё!
Результат можно посмотреть на youtube.