Подкатываем яйца вместе с Unity

    В этой небольшой заметке хочу поделиться результатами страданий этой ночи. Это не информационная статья, вкладывающая в голову мудрость поколений. Просто набор заметок.


    Для начала, результатом стал вот этот видеоролик. С точки зрения зрителя, здесь видео про то, как с нуля сделать мини-игру на Unity. Если совсем точно, ни одому из определений из набора Шрайбера она не отвечает, но всем наплевать. Серьёзно, если вы считаете себя тупым и ни на что не способным (я именно такой), то повторяете как в видосе и всё работает.


    А вот под катом будет немного про внутреннюю кухню и боль. Это только для тех, кто сам что-то пишет и хочет обсудить.


    Область определения


    Что является целью: мне нужно иметь дело с продакшеном видео и разработкой одновременно, а это сложновато без понимания работы видеомейкера и C#-разработчика. Как известно, самый лучший способ разобраться в чём-то — попробовать самому, а ещё лучше — сделать по этому видеокурс.


    Что не является целью: 1) Стать знаменитым блогером, ввязаться в маркетинг, нагон трафика, и т.п. Это тема отдельного приключения на когда-нибудь потом. 2) Произвести действительно качественный ролик — я на это пока не способен, по крайней мере в приемлемые сроки (два дня).


    Какие интересные выводы были сделаны из этой сессии записи?


    Микрофон и Premiere


    Вы замечали, что у Лёши Шевцова в видосах наушники воткнуты в Blue Yeti? Кажется, теперь я догадываюсь, почему. Оказывается, создатели Adobe Premiere 2019 в мудрости своей не позволяют выводить звук на две разных аудиокарты, если это ASIO. Раньше я как-то и не задумывался над этим, но сейчас путешествую по Сибири, и конечно же не стал брать с собой огромный гроб внешней USB-звуковухи — а зря!


    То есть натурально, переключаешь на ASIO, и у тебя исчезает тот блок настроек, который Output, остаётся только мапинг каналов ASIO. А это значит, что если ты пишешь звук напрямую с BlueYeti по его встроенному ASIO, то сюрприз — послушать что ты записал (ровно как и послушать музычку из браузера с туториалами) можно будет тоже только через микрофон! Слушать музыку через микрофон, Карл!


    Вообще, есть такой крутой ASIO-роутер, O Deus ASIO Link Pro. Автор этой проги недавно умер, кстати, и исходников в Open Source не передал. Да вот только лицензия осталась где-то на жестком диске в Питере, а устаревшая версия с трекеров глючит на Windows 10.


    Благо у микрофона есть аудиовыход на миниджек, куда можно воткнуть наушники. Мини-плохая новость в том, что этот выход всегда мониторит ещё и сам микрофон, поэтому спокойно послушать ничего не удастся — с минимальной задержкой ты будешь слышать свои щелчки по клавиатуре, тяжёлое дыхание, как сосед Вася лобызает Маню за стеной, а шум вентиляторов компьютера приобретёт новый глубокий окрас. Ну, можно постоянно жать кнопку mute на микрофоне, конечно. Я бы про этот ад тоже записал какое-то видео, но не совсем понимаю как это делать, ведь писать придётся тем же микрофоном на ту же Премьеру :)


    ASIO


    Кстати, вы спросите, а зачем ASIO? А потому что BlueYeti выдаёт через MME и ASIO совершенно разный звук. Я проводил тест — один и тот же громкий звук проигрывал с телефона и записывал обоими методами. MME вариант неимоверно хуже. Прям до полной неюзабельности в случае, если микрофон клипует.


    Из-за проблем удобства с ASIO, чистовой звук я пишу им, а черновой — на MME.


    Слышали, насколько плох звук в этом ролике? Это потому, что из-за частых перезагрузок (о которых пойдет речь дальше) я потерял чистовую ASIO-запись, и пришлось делать на MME-черновике. Просто не было уже сил на второй дубль. Да и вообще, это ж зашквар, писать с дублями? :-)


    Adobe Premiere 2019 как таковая


    Раньше я немного клеил видео в старых версиях и поэтому есть возможность сравнить. В свежей версии много багов. Возможно, это частично связано с Node.js, на котором написан новый интерфейс — в Adobe ещё не разобрались, как готовить этого зверя. При старте Премьера создаёт несколько копий JS-движка, который висит в виде отдельных процессов рядом с ней, и убивая эти процессы можно с корнем вырывать куски интерфейса. Перерисовка медленная, при нагрузке на комп — может вообще не перерисовать (нужно поменять размеры окна мышкой, чтобы перерисовка запустилась). В интерфейсе существуют багнутые переходы между состояниями, выйти из которых можно только перезагрузкой приложения — аналог «застрял в текстурах». Если описывать ощущения одной фразой, то это будет «тормозит и глючит».


    К сожалению, на старые версии я вернуться не могу, потому что только в свежей пофиксили баг с захватками Blackmagic.


    А, ещё пару слов о самом UI/UX интерфеса. Мы в программировании привыкли пользоваться идеально вылизанными вещами вроде IntelliJ IDEA и Eclipse, и попытки использовать что-то профессиональное для других профессий обычно очень болезненные. Я даже передать не могу, какую боль испытал от того, что Premiere пытается сделать, чтобы повторить Perspectives из Eclipse, этим прямо физически больно пользоваться. Не говоря уж о том, что интерфейс прямо кричит тебе, что желательно иметь 2 монитора, и тот монитор где линия времени — желательно в 4k UHD. А у меня, например, зрение — минус 5 на оба глаза, и этот 4k нафиг не впился, как быть. Ну это наверное не Премьера такая плохая, а мир разработки софта настолько хорош, что у нас есть инструменты с идеальным UX. Разработчики делают софт не по указке аналитиков, а для самих себя, и поэтому понимают, что именно они творят.


    Перезагрузки компьютера


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


    Под нагрузкой комп виснет в синий экран.


    Это не мой компьютер, а временный компьютер, который существует, пока я в гостях в Новосибирске. Поэтому сменить его не представляется возможным/разумным.


    Я читал содержимое крэш-дампов, там ничего вразумительного, что означает скорей всего аппаратную ошибку, сбежать от которой винда может только полным стопом без сохранения состояния. Начиная с какого-то момента крэшдампы перестали писаться, впрочем, тут похоже, надо винить Windows Insider Preview. Но синие экраны и на стабильной версии винды есть тоже.


    На предыдущей итерации разбирательств я сменил термопасту на видеокарте и запустил её под MSI Afterburner с даунклоком по всем параметрам. Что привело к уменьшению количества зависаний. Я даже смог играть под запись в что-то лёгкое вроде Overwatch, короткое время.


    Оно же привело к увеличению выпадений стрима, потому что оказалось, что мой Wirecast не очень дружит с Afterburner. Правда, называет он это иначе — «Afterburner может приводить к нестабильности системы, если это случается, удалите его».


    Во время записи этого ролика факапов случилось много.


    Во-первых, из-за частых перезагрузок я потерял чистовой вариант записи, в результате всё пришлось делать поверх черновика с отвратительным звуком, записанным сквозь MME вместо ASIO.


    Во-первых, оказалось, что где-то минута по-нормальному творчески осмысленного ролика занимает час монтажа. То есть, весь ролик на час двадцать легко может занять целый месяц. Это никуда не годится. Поэтому для ускорения процесса я начал с того, что заменил мозг на побольше быстрорастворимых эффектов из туториалов на Ютубе, слепил вместе и был приятно удивлён эффектом. Особенно экономит время неиспользование зелёнки.


    Но оказалось, что ролик собирается рендериться 4 часа. Мне, в принципе, не жалко. Но вот компьютеру — жалко. На дистанции в 4 часа он зависает в синий экран в 100% случаев. А ведь результаты рендера ещё и могут не понравиться!


    Поэтому пришлось, скрипя сердцем, выкинуть весь этот хлам на свалку, и от операции «безмозглые эффекты» перейти к варианту «адский треш». Самый сложный эффект теперь — это транзишен картинки, и это вычисляется на CPU чуть ли не быстрей, чем на GPU. Время рендеринга сократилось до часа.


    И всё бы хорошо, но чёрт там плавал. Час компьютер под нагрузкой проработать тоже не смог ни разу. Пришлось лезть в железо. Я выбросил все ненужные расширения (типа USB проводов) и переставил видеокарту в PCI-E поближе к процессору. Этим я намеревался убить два зайца: дать видюхе больше воздуха (подействовало, температура упала на 5 градусов!) и проверить, не связан ли проблема с глючным PCI-E.


    Первый факап выяснился сразу: в том PCI-E, в котором нормально работала видюха, карта захвата HDMI отказывается работать наотрез. Ну, она заводится, идентифицируется в системе, но утверждает, что видеопотока она не видит. Впрочем, она мне и не нужна для записи треш-ролика, поэтому это просто тест: что-то с этим PCI-E не так.


    Второй факап в том, что несмотря на такие жертвы, комп всё ещё не может прожить час.


    Последняя мера была в том, чтобы пойти в BIOS и выставить там всё руками. Вольтаж (пониженный), частоты памяти (вручную, фиксированные, пониженные), множители на 34, итп. Всё что имело пометку "smart", "intelligent" или "boost" отправилось в режим либо disabled, либо normal (это для нескольких переключателей, которые умеют кроме normal ещё power save и turbo — понятно что обе системы могут дать сбой… да и normal тоже может). Выключил всю ненужную периферию, оставил только USB-3, в котором теперь торчит Anker-овский хаб со внешним питанием (вдруг мать неспособна оказать питание на USB?). Выключил даже VT-x, так что 64-битные виртуальные машины, то есть все виртуальные машины — больше не работают. Звуковуху тоже выключил, видосики слушал по bluetooth-наушникам (отвратительно, как вы ими пользуетесь в связке с компом?).


    А вот на PCI-E видеокарты отдал все линии и согласился, что все остальные PCI-E на материнке отключатся (два зайца одним ударом: и поотключать возможно сломанные PCI-E, и возможно ускорить видюшку, если она вдруг так умеет, я в этом не разбираюсь).


    На этой итерации комп прожил час и всё отрендерил.


    Сейчас вот мучаюсь. Наверняка это не видеокарта, не встроенная в мать звуковуха, а именно сочетание звуковухи и видеокарты. Две области, в которых драйверописателям на всё наплевать. Например, на другом компе у меня синие экраны были от сочетания внешней usb-звуковухи и сетевой карты, но это уже другая история.


    Вроде бы дело сделано, но я как-то морально истощён.


    Рабочее решение для записи 1080


    Самым рабочим решением (из имеющегося у меня железа) было захватывать видео и звук на Macbook. Сжатый захват можно делать прямо через OBS, а несжатым я бы ноут мучать не советовал, всё-таки SSD для записи это расходник, а на ноуте напаянный SSD не поменяешь. Ноут соединяется с Windows PC по Gigabit Ethernet кабелю, после чего все захваченные файлы быстренько копируются на виндовскую шару, прямо внутрь проекта Premiere. Единственная вообще цель этой сомнительной неудобной схемы — то, что ноутбук не перезагружается рандомно, как это делает мой PC.


    Выводы


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


    Сейчас полпятого ночи. Или утра. Надо поспать часа три, чтобы потом включить буст и успеть к утреннему скрам-митингу сделать вчерашнюю работу, которую я благолополучно просандалил со всей этой чепухой. Спасибо, что дочитали до конца. Я не совсем уверен, зачем вы это сделали, но если так — респект и уважуха!

    • –2
    • 2,5k
    • 8
    Поделиться публикацией

    Похожие публикации

    Комментарии 8

      +4
      Прошу прощения за оффтоп, но
      Но оказалось, что ролик собирается рендериться 4 часа…
      Время рендеринга сократилось до часа...
      В Adobe Premiere поломали аппаратное сжатие через видеокарту (по крайней мере Nvidia) в нескольких мажорных версиях — проверено в СС.2015/2018/2019. Поэтому рекомендую DaVinci Resolve — то, что Premiere рендерит за час (2560х1440 59.97fps 1:29 min H265) — Давинчи делает меньше, чем за две минуты на Nvidia 1050ti.
      Плюс он бесплатный (если не нужен экспорт H265, а если нужен — вы знаете, где искать, он там есть) и поддерживает экспортированные в XML проекты Premiere. Ну и выглядит похоже, правда, придётся привыкнуть к некоторым вещам.
        –1

        Интересно, гляну. Вообще, Премьера таки иногда включает ускорение, а иногда отключает… Это видно по загрузке GPU. Закономерности пока не понял.

        +6
        Статья вроде бы про Unity должна быть, но почему-то про видеомонтаж получилась.
          +1
          Да уж. Зато ролик про Юнити! Прошу простить, писал ночью (и с тех пор я всё ещё не спал, по другим причинам), и это момент, когда обыная логика повествования выспавшегося человека легко смешивается с логикой сна :-) Наверное, надо было сделать всё наоборот — статью написать по сути ролика (там, оглавление, рассмотренные вопросы, итп), а про видеомонтаж вынести в какую-нибудь заметку.
            +3

            По факту просто переименовать эту в статью, чтобы было понятно, что она про страдания с Премьером, а про Юнити написать новую.


            А по теме страданий — может быть стоит посмотреть в сторону Vegas?

          +1
          Первые две минуты этого откровенно бездарного клоуна на «ролике» вызывают стойкую реакцию отторжения. Может конечно дальше будет лучше. Но приходится сильно себя превозмогать чтобы продолжить просмотр. Не все на такое способны.
            0
            Дальше такая же кровь из глаз и ушей.
              0

              Так и задумано. Мой личный герой — PewDiePie, хочу как у него, но побольше ада.

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое