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

Open Broadcaster Software - бесплатная, кроссплатформенная программа для записи и трансляции(стриминга) видео с открытым исходным кодом. С ее помощью можно в реальном времени кодировать видеопоток в h264, этого достаточно для простых роликов и ускоряет дальнейшую обработку. Под катом я расскажу как пользоваться obs, а также twitch.

Несколько слов о железе. Начиная с i5-2xxx в процессорах intel используется аппаратное кодирование видео h264, конкретно я использую i5-3570k. Его хватает на запись простых вещей, без 3d графики, но качество записи и fps в современных играх будет зависеть от видеокарты. Эмпирически получено падение частоты кадров при записи на 5-10, относительно обычной игры. Это стоит иметь ввиду, скорей всего придется понижать настройки графики в каких-то требовательных проектах.

Ширина канала важна только при трансляции. Твич позволяет стримить на скорости до 3.5 мБит/с, то есть у вас канал на отдачу должен быть не менее 5 мБит/с.

Все нижеописанное делалось на windows.

Итак, поехали. Устанавливаем obs, желательно сразу сделать ярлык запуска 64 битной версии программы с правами администратора, многие игры не отдают картинку или блокируют нажатие горячих клавиш без администраторских прав.
Запускаем и открываем настройки:
Вкладка трансляция, ставим прямой эфир, сервис выбираем twitch, FMS URL - это расположение серверов твича, для большниства живущих в СНГ актуален EU: Stockholm, SE. JTVPing может показать пинг до разных серверов, чтобы выбрать оптимальный. Путь к файлу, указываем куда будут сохраняться ролики в случае необходимости. Внизу вкладки красным будут помечены настройки, которые не соотвествуют требованиям твича и должны быть поправлены.
Вкладка Кодирование, Ставим галочку CBR (постоянный битрейт) и CBR паддинг. Максимальный битрейт 3500 и битрейт аудио 160 если позволяет канал.
Во вкладке Расширенных настроек, Предустановка x264 CPU - veryfast, Профиль кодирования main, Интервал ключевых кадров - 2с
Вкладка видео. Базовое разрешение ставим Пользовательское и прописываем 1280 720, масштабировать разрешение должно стоять Нет.
Закрываем настройки.

Теперь попробуем записать короткий ролик для тестирования, выбираем любую игру и настраиваем ее разрешение экрана 1280х720 и оконный режим. Я для тестирования использовал Fallout New vegas, нужно дождаться полной загрузки игры до главного меню перед возвращением в obs. У других игр могут быть свои нюансы.

В нашей программе жмем правой кнопкой мыши на список сцен и добавляем сцену с любым названием. Дальше в выбранной сцене жмем правой кнопкой мыши на источники->добавить->игра. Выбираем нашу игру в списке приложений. Ставим галочку Захват мыши. Жмем Ок. Ставим окно программы таким образом чтобы видеть его играя в оконном режиме.

Теперь жмем кнопку предпросмотр. Если изображение не появилось сразу, переключаемся в игру и обратно. Если все равно не появилось, то для теста лучше взять что-то другое, такие игры тоже записываются, но не дают возможности проверить производительность при этом. Жмем кнопку начать запись, переключаемся в игру и пробуем поиграть пару минут. Смотрим на fps в правом нижнем углу obs. Он должен показывать 30 кадров в секунду. Если показывает меньше, возможно настроено что-то неправильно, относительно написанного выше, но скорей всего ваш компьютер просто не тянет запись этой игры. Останавливаем запись, идем и проверяем видеоролик, в нем тоже не должно быть лагов, если они есть, скорей всего комьютер не тянет запись этой игры.

Если со скоростью все в порядке можно попробовать более качественные настройки, потому что приведенные выше - это минимум. Хорошие варианты для стриминга - 1280х720 и 60 кадров в секунду (указывается также в настройках видео), 1920х1080 и 30 кадров в секунду. Причем первый вариант лучше чем второй по выходному изображению. Еще один вариант, для тех игр где по каким-то причинам нет 1280х720, но есть 1600х900. Ставим именно такое пользовательское разрешение и включаем масштабирование на 25%, чтобы получить 1280х720. частота кадров также 60. Битрейт во всех случаях 3500, это ограничение твича.

Для записи видео с последующей обработкой и заливом например на youtube, можно использовать 5-8мБит/с для 1280x720, и до 15 мБит/с для 1920х1080. Но главное проверять, чтобы obs успевал кодировать такой объем информации и не пропускал кадры.

Вообще практика показала что твичу пофигу на разрешение, сейчас в основном стримлю 1600х900. Важно сохранять соотношение сторон 16:9, которое дефолтное для выходного потока. Для серьезных роликов на ютубе стоит готовить материал либо в 720p либо в 1080p, но рандомные видео для иллюстрации чего-либо можно записывать и в промежуточных.

Для записи микрофона нужно проверить настройки во вкладке аудио. Во-первых должно быть выбрано правильное устройство, его на записях должно быть слышно. Во-вторых множители усиления приложений(звук в системе) и микрофона нужно подобрать таким образом, чтобы игру было хорошо слышно на видео, а ваш голос был отчетливо слышен на фоне игры.

Настраиваем Twitch.
1. Регистрируемся.
2. Нам нужен Stream-key. Находится он в dashboard. Сама эта опция находистся в меню пользователя, который доступен с главной страницы. Интерфейс у сервиса неочевидный, поэтому вот вам две иллюстрации где это искать.


Жмем кнопочку Show key, копируем ключ и вставляем его в obs, в настройках, вкладка трансляция.
3. Заходим http://www.twitch.tv/settings/channel и ставим галочку Automatically archive my broadcasts. Теперь ваши ролики будут доступны из вашего профиля, раздела past broadcasts. Хранятся ролики примерно 2-3 недели, поэтому если ролик годный, то его стоит сохранить, для этого можно использовать функцию highlight под вашим видео или привязать аккаунт к ютубу и воспользоваться export'ом ролика.
Теперь можно запускать трансляцию в программе.
Там же в dashboard'е на вкладке live, можно проверить, что показывает стрим, изображение имеет зажержку 20+ секунд, это надо иметь ввиду. Также нужно выключить звук на своем собственном стриме, чтобы не дублировались звуки.
Комментарии
  • 0Forest_Swamp | 2 июня 2015 г.
    Теперь я знаю, что у меня на компе стоит OBS. Узнал по ярлыку :D Давно снимал стрим по дарк соулсу 1.
    • 0Usernm | 2 июня 2015 г.
      Так пользуйся им.
      • 0Forest_Swamp | 2 июня 2015 г.
        Там можно видео на ютуб перекидывать? Я же обычно видяшки с игровым процессом кидаю в раздел "Видео" по играм. А там как я понял "пока что" можно подкреплять только ютубные видео.
        • 0Usernm | 2 июня 2015 г.
          В самой программе нельзя. Ты просто получаешь на выходе ролик и заливаешь его ручками на ютуб или куда тебе надо. На твиче есть возможность вырезать куски видео из стримов и перезаливать на ютуб.
  • 0TotemWoodStep | 2 июня 2015 г.
    Спасибо, полезная программа и отличное руководство к ней)
  • 0Forest_Swamp | 2 июня 2015 г.
    Мне кажется стоит добавить тег "Программы", чтобы подобные посты не болтались в "ином".
    • 0Forest_Swamp | 2 июня 2015 г.
      Я бы мог время от времени туда постить "руководства" по прожкам, которые можно использовать в разработке игор.
  • 0FruitGish | 2 июня 2015 г.
    А я продолжаю пользоваться ShadowPlay'ем =D
    • 0Usernm | 2 июня 2015 г.
      Пробовал. Те же яйца, если пользоваться кодированием с помощью видеокарты в обске.
  • 0nikivarvar | 2 июня 2015 г.
    за инфу насчёт битрейта спасибо, а то не думая просто поставил 800 кбит
    хотя у самого интернет не особый, ну да ладно, лойс
    • 0Usernm | 2 июня 2015 г.
      800 кбит приемлемо смотрится на 480p, а лучше на 360p. Но мы же не хотим с лупой стрим смотреть? :)
  • 0SAXAHOID | 2 июня 2015 г.
    Пользуюсь SimpleScreenRecorder. Судя по описанию, схожая штука.
    И иногда RecordMyDesktop, это работает похоже на фрапс (сначала пишет кеш голого видеосигнала, потом кодирует).

    Не надо почём зря хаить фрапсоподобные программы.
    Во-первых, энкодинг на лету не такая лёгкая штука, как кажется, особенно если разговор идёт не об h264 и не о самом быстром алгоритме (алгоритм быстрее — качество ниже, нет?). Даже в самом посте несколько раз упоминается "ваш компьютер не тянет запись этой игры". Если компьютер тянет её воспроизведение, компьютер тянет её запись. Он может не тянуть энкодинг на лету — это да, а голый сигнал он писать будет способен пока битрейт не превысит скорость записи на винт, в любом разрешении, с любой частотой кадров, только бы места хватило. И это основное преимущество — снятие нагрузки с железа под игры, которые и так его здорово грузят.
    Во-вторых, получение видеозаписи (особенно в сравнении с "сетевыми" форматами) без потерь — тоже преимущество. В первую очередь преимущество для дальнейшей обработки видео, его пережатия в разные разрешения и т.д. эксперименты. Надо ли, скажем, говорить, что кодировать в один lossy формат из другого lossy формата — это как переливать воду из дуршлага в дырявую кастрюлю?

    Я соглашусь с тем, что абсолютному большинству видеописателей в шут не сдалось это беспотерьное видео, и что они будут согласны сбросить параметры записи/отказаться от неё вообще если "не тянет". Надо просто записать и застримить, а зрителю — просто посмотреть.
    Так же как абсолютному большинству слушателей музыки в шут не сдалось что-то лучше MP3-192. Но это не повод называть что-то "поганым" если для конкретно ваших нужд оно неудобно.

    P.S. Конкретно с фрапсом у меня опыта взаимодействия мало, потому если на то, чтобы выражать касательно него недовольство, таки есть причины — я с интересом послушаю
    • 0Forest_Swamp | 2 июня 2015 г.
      Единственное, что напрягает во фрапсе, это его топорный интерфейс. Из трех вариантов, которые у меня есть, больше нравится Mirillis Action. Настроек много, там вроде и стримить можно, но я этим не заморачивался. Просто снимаю геймплей.
    • 0Usernm | 3 июня 2015 г.
      Фрапс - это очень старая и очень жадная штука. Я помню ее еще этак в 2005 году, когда альтернатив толком не было. С того момента появилась куча других вариантов, которые получше фрапса. Я конечно года 3 его не видел, может там сейчас все поменялось, но сомневаюсь. Поэтому да, для меня фрапс поганый.

      Естественно я говорю о кодировании сигнала на лету, потому что отложенное кодирование ведет дополнительным затратам дискового места и банально времени компьютера. Потому что ролик нужен "прям ща", чтобы что-то показать, а он будет доступен для просмотра на ютубе часа этак через 4, когда уже все спать уйдут. Сам подход, что ролик нужно еще ждать, после того как закончил игровую сессию я считаю неправильным. В моем случае я через 5-10 секунд после остановки стрима могу линкануть ссылку на его запись на твиче.

      Насчет снятия нагрузки с железа, если мы говорим о современной системе, то стримингзапись съедают процентов 10-15 процессора (половинка 1 ядра из 4). Если игра прожорливая и хочет себе все процессоры сразу и всю видеокарту - тут конечно нормально не постримить, но это скорее исключение чем правило. Идея посыла в том, чтобы человек пробуя все это повторить имел обратную связь, понимал проблема в железе или в том, что, что-то настроено неправильно.

      Насчет перекодирования видео лишний раз. Во-первых вопрос, что мы делаем с видео. Я последние ролики монтирую используя aviDemux, и там режим вырезания кусков видео без перекодирования и потом append этих кусков в один файл также без перекодирования. Из недостатков метода - точность. В этом случае он режет ролик по ключевым кадрам, с дефолтными твич настройками это 1 ключевой кадр в 2 секунды. Этого достаточно, чтобы просто убрать лишнее и скомпилировать нужное в одном ролике. Если конечно нужны видеоэффекты всякие, придется лезть в редактор и там точно будет перекодирование, но при правильных настройках 1 лишняя операция не убьет качество изображения. Так в общем-то многие делают, из известных примеров - обзорщики вирусных видео, качают эти самые видео и перекодируют их еще раз при монтаже выпуска. Ничего, смотрим, на качество пережатого обозреваемого ролика никто не жалуется.

      В общем я согласен что перекодирований нужно избегать, а исходный вариант брать максимального качества. Но это в идеале, а у нас реальные условия использования, где не последнуюю роль играет количество и сложность телодвижений для записи и выкладывания видео. Чем она больше, тем желания выкладывать что-то меньше.
      • 0SAXAHOID | 3 июня 2015 г.
        Я ни разу не спорю с тем, что каждому своё.
        Мне не нравится слово "поганый" без особых пояснений. Впрочем, пояснения получены, он лично тебе не нравится, спасибо ^_^
        • 0Usernm | 3 июня 2015 г.
          Угу. Могу немного подробнее даже. Сейчас зашел на fraps.com, цена 37 баксов за то, что другие программы делают бесплатно. Плюс еще с давних времен помню, что в пиратском фрапсе стабильно какая-нибудь малварь водилась, уж очень любили ее распространители малвари. Это конечно уже не проблема фрапса, но пересматривать свое отношение к этой утилите ввиду наличия альтернатив не вижу смысла.
          • 0SAXAHOID | 3 июня 2015 г.
            Лол, он платный? Вот так номер. Мне было сиё не известно. Тогда ясно, функционал фрапса убоже, чем у бесплатного опенсорсного ffmpeg (консольной утилиты, которая и экран писать умеет, и скриншоты, и конвертить, и пережимать, и вообще шо хошь делает, через неё большинство линуксового софта для обработки видео работает).
            • 0The_Red_Borsch | 5 июня 2015 г.
              Там две версии есть. 3.5.99 бесплатная, во вкладке "Download".
              • 0Usernm | 5 июня 2015 г.
                Thank you for your interest in Fraps! Registration enhances the program and allows you to record as long as you like. Perform full-size recording with no watermarks on your movie. - то есть насколько я понимаю в бесплатной версии есть ограничение по времени и ватермарк на ролике. Ну и на кой оно такое нужно?