Короче, кулстори.
Решила я написать ультракороткий рассказ по мотивам одной дискуссии про типичную ситуацию в хоррорах, но не просто так, а записать это на видео. Типа, экспериментальный летсрайт™ сделать, где в каждом видосе будут показаны все этапы создания рассказа от написания до публикации.
Идея есть, есть и программа. Я давно пропагандирую CamStudio, тем более что пару учебных видосов я людям ею записывала, хоть это и было очень давно. Ну и в этот раз решила использовать именно её!
В главном окне программы значится гордое «CamStudio», а ниже – не менее гордое «Open Source». Почти как у Задорнова: «Винни-Пух ходящий. Россия». При этом окно имеет такие размеры, что с одной стороны кажется, что в нём должен происходить какой-то экшн, ведь не просто так оно такое больше, а с другой – оконное меню там по ширине не влезает в одну строку. На самом деле, внутри окна почти никакого экшна не происходит, и оно является по большей части контейнером для красивой картинки. Всё самое главное делается через меню или панель инструментов (часть кнопок на которой не дублируется в меню, но по крайней мере на них можно настроить хоткеи).
Большинство настроек в программе сделаны в виде многоуровневых меню. Открываешь меню, открываешь подменю, открываешь подменю, ставишь галочку, открываешь меню, открываешь подменю, открываешь подменю, ставишь галочку, ну и так далее.
Большинство настроек по умолчанию в итоге тебе не подходят, и ты их переключаешь в другие значения. Например, эпилептическая рамочка, которая не только мельтешит при записи, но ещё и в видос просачивается – кому она нужна вообще?
Есть настройка каталога для временных файлов, есть настройка каталога для выходных файлов, есть настройка имени выходного файла, которая тоже предлагает выбрать каталог, перекрывающий (или дублирующий) каталог для выходных файлов. Выбор каталогов делается диалогом, выглядящим как системный, но сортировка элементов в дереве там почему-то происходит не как в системе (если элементы с именами, начинающимися на тильду у вас оказываются в конце списка, а не в начале, то это оно).
Что интересно, программа довольно вольно обращается с такими каталогами, и временные, либо готовые файлы могут появляться в любом из них. Только что я сделала три тестовые записи, и на третьей временный файл появился в каталоге выходных файлов.
Кстати, по умолчанию временные файлы хранятся не в Temp, а в Документах. Ну да ладно.
Есть настройка хоткеев, та редкая вещь в этой программе, которая сделана по-человечески: в отдельном диалоге и с нормальными списками-галочками.
Ещё в программе есть разные виды того, что будем записывать: регион, фиксированный регион, окно и экран. Чувствуете надвигающуюся трагедию?
Самое естественное желание – выбрать «Фиксированный регион», тем более, что этот пункт здесь с точечками, что подразумевает появление некоего диалогового окна. Жмём его, и, действительно, появляется окно, в котором можно либо задать размеры региона ручками, либо нарисовать его мышкой. Рисуем регион вокруг окна редактора и сохраняем. Позже стартуем запись, и... Программа вручает нам прямоугольник фиксированного региона и предлагает переместить мышкой на то место, которое мы будем снимать.
Кому, блять, вообще пришёл в голову такой охуенный воркфлоу? Дайте мне посмотреть в его фасеточные глаза!
Изучив диалог настройки региона, я обратила внимание на то что ручному вводу доступны только ширина и высота региона, а левая и верхняя координаты начальной точки – нет. Но выше есть галочка «Fixed Top-Left Corner», которая разблокирует эти поля ввода. И, что характерно, делает она то, что и ожидаешь: при старте записи программа сразу снимает выбранный регион, а не предлагает в него прицелиться.
Но и тут не без нюансов! Я сделала несколько тестовых записей и поняла, что видос получается нужных размеров, но съёмка ведётся не того места на экране, которое я выбирала. Оказалось, что, когда галочка стоит, при рисовании региона мышкой, ширина и высота попадают в текстбоксы, а левая и верхняя координаты не попадают. Ну и получается, что выбираешь одно, а записываешь другое.
В итоге действовать надо так. Открываешь диалог, снимаешь галочку, рисуешь регион мышкой, ставишь галочку и жмёшь Окэй. Опенсорс большими буквами, бля!
Помучившись с этим режимом записи, я решила попробовать другие. Так, при выборе «Регион» программа предлагает нарисовать регион в начале каждой записи. Логично. Рамка, кстати, в итоге остаётся на записи. «Полный экран» я не пробовала, так что не знаю, есть ли там свои приколы, но звучит вполне понятно.
Так вот, второе самое естественное желание – выбрать «Окно» в качестве режима съёмки. Выбираем, и ничего не происходит. Ну, окей. Жмём «Запись», появляется какое-то окошко без заголовка, кнопок, и в котором в уголочке написано: «Щёлкните по окошку, которое будете снимать». И программа виснет без возможности отменить сие действо.
Вот как делается в нормальных программах? В нормальных программах появляется окошко с эдаким прицелом. Ты берёшь прицел мышкой, окошко исчезает, и, не отпуская кнопку мыши, ты наводишь прицел на нужное окно, отпускаешь кнопку, и всё, выбор случился. Иногда окно не исчезает, и в нём выводится, например, заголовок окна, в которое целишься, ну, чтобы быть уверенным, что это именно окно, а не нарисованная очередной кросс платформенной программой фата-моргана.
С другой стороны, тут понятна логика разработчиков: ты тыкаешь в окно программы, окно активируется, запись начинается, ты начинаешь работать с программой.
А что если окно программы уже активно? У меня именно так и случилось в первый раз. Я выбрала метод съёмки «окно», переключилась на текстовый редактор, ткнула в хоткей для начала записи, и всё сломалось.
Дело в том, что CamStudio не смотрит, во что ты тыкаешь мышкой, не уверена, что такое возможно без системных хуков. Скорее всего, она вызывает GetForegroundWindow(), запоминает, выводит окно с предложением ткнуть в нужное окно, а потом в бесконечном цикле крутится, вызывая GetForegroundWindow() и сравнивая с первым значением. Если изменилось, значит пользователь ткнул в нужное окно. Если нет, висим дальше.
Короче, метода работает, но только если тыкать в кнопку на тулбаре в окне самого CamStudio. Ну или перед записью выбрать рандомное окно, ткнуть хоткей и после этого ткнуть нужное окно. Удобно, продуманно, нескучно.
В общем, намучившись с этими всеми нюансами, я, наконец, приступила к творческому процессу. Всё никак не могла нормально начать текст, поэтому перезапускала запись несколько раз. Но футажи всё же появлялись и даже воспроизводились, так что по крайней мере в ключевой функциональности программы я была уверена.
А, совсем забыла сказать. Окно программы, на самом деле, это не только контейнер для красивой картинки, но ещё и окно состояния записи. Тоесть при записи прямо поверх картинки ярко зелёным текстом выводится, что оно пишет, куда, как долго, сколько места это занимает. Ну вот прямо поверх белого фона, чёрных букв с названием программы и серого текста со ссылкой на сайт. Короче, и так сойдёт, вам чё, нужны все эти данные? Хотя, конечно, можно было и это сделать по-человечески.
Так вот! Как водится, начинаешь писать микрорассказ, текста начинает выходить слишком много, процесс сильно растягивается, а текста в итоге получается на десяток килобайт. Ну вот и я сидела два с лишним часа и писала. Было утро, хотелось спать, но раз взялась, процесс прерывать нельзя, а то потом не получится возобновить.
Короче, дописала и ткнула хоткей завершения записи. Интересно, что на соседнюю кнопку по умолчанию назначен хоткей отмены записи, что весьма опасно, надо сказать. Программа подумала и запись завершилась.
Неожиданно оказалось, что до этого записи сохранялись в один каталог, а в этот раз запись сохранилась в другой. Файл весил ровно четыре гигабайта, что сразу же заставило серьёзно напрячься. Я запустила видос, а там... А там был пятиминутный фрагмент с дописыванием рассказа, буквально последние пять минут съёмок, повторяющиеся два с половиной часа. Вот прямо два с половиной часа с дописыванием рассказа.
Я попробовала разные проигрыватели, вдруг это mpv не смог, но и там было тоже самое. Попробовала встроенные проигрыватели CamStudio (один из которых использует банальный Media Player Control), но они показывали только чёрный экран. Avidemux открыл видос, но там вообще какой-то поп-арт со смещёнными кадрами и постоянно меняющимися цветами.
В итоге у меня есть написанный рассказ, поломанная во всех возможных местах программа и авангардное видео на два с половиной часа. Всем спасибо, дух опенсорса, как всегда, не подвёл.