Уже неделю таскаюсь по форумам, блогам и прочим радостям интернетов в поисках актуальной, а главное, полезной информации о настройке программ для стримминга, регистрации на стрим-сервисах, пингах, и всех отсюда вытекающих...
Нарыл кучу полезной и бесполезной информации. Хотелось бы обобщить и собрать в одном месте всю эту инфу. Заодно получить порцию советов от более опытных в этих вопросах товарищей. Прошу не закидывайть тапками, ибо это мой первый более-менее серьёзный пост. Надеюсь что раздел не просто так называется "Учимся стримить вместе с GoHa.Ru!"
Сразу оговорюсь: всё написанное - это не "то, как должно быть и всё тут", это "рассуждения на тему" приправленные вырезками-переводами с зарубежных форумов и личными впечатлениями.
Всю информацию собирал только по программе XSplit. Надеюсь она вам поможет.
От себя хотелось бы добавить несколько слов к этому гайду:
1. Не секрет что у "twitch/justin" существуют проблемы с пропускной способностью. Проще говоря - лаги.
Для трансляции на "twitch/justin" помимо использования встроенного плагина, можно настроить "Custom RTMP" под него.
Это даст возможность использовать небольшую программку под названием TCPRelay. По словам автора она всего лишь пересылает байты от вас к стрим-сервису. Точно не знаю с помощью какой магии она это делает, но это реально помогает. Проверено мной на тестовом FullHD@30fps стриме с 4500 Kbps на сервер во Франкфурте, Германия. Без этой программы тест выдавал еле-еле 2300-2500 kbps.
Вот тут - Official topic for TCPRelay - официальная тема программки на форуме XSplit на английском. Если есть проблемы с каналом, и дропом кадров из-за этого, рекомендую заглянуть.
2.Для более продвинутых в знаниях кодека х.264 пользователей
Цитата:
Preset - отвечает за настройку кодека (кодек по умолчанию X.264). Самый оптимальный - дефолтный, но вы также можете выбрать один из предложенных или сделать свой. Здесь описание настроек данного кодека.
Для составления собственных презетов можно использовать программу для пережатия видео под названием MeGUI. В ней есть уже готовые шаблоны для нашего кодека(х.264). Нам лишь осталось приспособить их под стрим путем множественных проб и ошибок.
Собственные настройки кодека вводятся в поле Preset без пробелов.
3. Влияние различных настроек (битрейта, презета, значения Quality и VBV-Maxrate , VBV-Buffer) на качество картинки очень хорошо и подробно описано в блоге XSplit'a. Статья называется "XSplit Quality, VBV-Buffer, VBV-Maxrate and Preset Settings" и находится тут - https://www.xsplit.com/blog.php?post_id=305.
Единственная проблема - статья на английском. Советую потратить время и почитать, хотя бы гуглопереводе.
Опишу "на пальцах", но лучше вам всё же прочесть ту статью.
Имея мощный процессор(Intel Core i5 и выше) мы можем нагрузить его медленным презетом (всё что идет ниже "superfast"), получить большее сжатие(а также нагрузку на процессор) и использовать меньше битрейта.
У меня получалось при 1920х1080@30fps/preset=medium/quality=8 стримить с битрейтом ~1800-2000kbps и на выходе получать четкую картинку. Правда загрузка процессора(Intel Core i7 3770K 3.5GHz) была в районе 97-99%, а это не есть хорошо. При 100% начинается затормаживание картинки. Такой стрим смотреть невозможно.
При preset=XSplit Default/quality=8 не хватает битрейта в 4500kbps. На выходе при 97% загрузке процессора имеем рассыпающуюся, абсолютно непригодную к транслции, картинку.
На слабом процессоре используем меньшее сжатие(всё что выше "superfast") и, соответственно, больший битрейт нам придется использовать.
В общем, необходимо подобрать "золотую середину", а сделать это довольно сложно.
4.
Цитата:
Лучше всего выделять область захвата равную разрешению вашего стрима, т.е. 1280х720 - область захвата, 1280х720 - разрешение стрима.
Можно стримить и с ресайзом. Однако при ресайзе мы сильно теряем в качестве выходной картинки. При ресайзе 1920х1080->1280х720 текст в стриме(например субтитры в игре) практически перестает быть читабельным. Происходит сильное замыливание картинки. Появляются квадраты(артефакты кодирования). Перепробовал все методы ресайза, предлагаемые XSplit'ом. от дефолтного до Spline и Lanzcos. Ни один мне не подошел. Слишком мыльная картинка. Зачастую появляется слишком большое количество drop-кадров(пропущенных кадров).
Пару раз натыкался на посты, где говорилось о том, что если и делать ресайз, то ровно в 2 раза(1920х1080 -> 960х540). Якобы кодеку проще провести ресайз и он не так портит картинку. После 4 тестов с разрешениями пришел к выводу что - "фигня всё это" (с). Картинка всё также несмотрибельна.
Вот пока что и всё.
В настоящий момент я пытаюсь заставить компьютер стримить World of Tanks в FullHD@30fps без 100% загрузки процессора и огромного количества пропущенных кадров. А так же с комфортным fps внутри игры.
Ну или хотя бы достойный ресайз с 1920х1080 до 1280х720 без существенного убиения качества картинки. Ибо играть на FullHD мониторе в окно размером 1280х720 ну ооочень не хочется.
Пока что не получается.
По мере нахождения новой информации по XSplit буду вносить её сюда. Также как и результаты тестов настроек.
Хотелось бы услышать советов от стрим-гуру. Может есть какие хитрости в детальной настройке?
Советы с зарубежных и не только форумов по XSplit.
A couple of things to test. Be sure to try them one at a time and only stick with the change if things get better.
* I that second bitrate may be too high for your CPU. Try 3000 w/ 6000 buffer and see if that works. If it doesne't work, keep turning it down to 2800, 2600, etc... until your CPU can handle it
* Set the "Resize method" to "Point" or "Bilinear" and see if that looks better.
* Set the stream FPS to 25, which will let the encoder produce video at a slightly higher quality
* Set your quality to "not set" and set your preset to "veryfast&ex:crf:20" or "XSplit Default&ex:crf:20". This is equivalent to quality 15. Quality 10 is the same as crf:25. Lower crf produces a better looking video. crf:18 is usually not distinguishable from source video unless the bitrate is higher than your stream will allow. If crf:20 is too much for your CPU, keep bumping it up until you get something that you are happy with.
I hope this helps!
The best way to improve the small window quality is actually to reduce your resolution while maintaining your bitrate. So keep your bitrate the same, change your resolution to 960x540, set your quality to not set, if you are using the default preset, try this, veryfast&ex:crf:18
if you are using superfast, use superfast&ex:crf:18
Ради эксперемента поставил я эти танки. выкрутил графу на максы. Хотя и нет там ничего невероятного. Развернулся в фулскрин 1080p и включил захват. 2000кбсеков | Q8 | preset Default. 720p. И получил вполне комфортные для этой игры 35-45fps. Нагрузка процессора составила 17-25%. Картинка не поплыла...
_http://ru.twitch.tv/ravoxstream/b/330249470
Только что сделал запись.
Настройки канала на рисунке ниже. Захватываю Game Source FullHD.
Картинка, по сравнению с оригиналом печальна.
Добавлено через 42 минуты
_http://ru.twitch.tv/ravoxstream/b/330253497
Хочется нечто похожее на это. Но и тут при резком движении картинка рассыпается на квадраты.
Последний раз редактировалось iRavox_renamed_942421_17092020; 28.08.2012 в 18:51.
Причина: Добавлено сообщение
Блин, интернет тупить начал вечером. Не дал тесты закончить.
Начал подбираться к оптимальным настройкам.
Preset: fast&ex:crf:18 Quality: Non set VBV Max Bitrate: 3000 kbps VBV Buffer: 6000 kbps Input Resolution: 1920x1080 Output Resolution: 1280x720 FPS: 25(30) Resize Method: Point
Игра: World of Tanks
Стрим идет через TCPRelay на сервер во Франкфурте, Германия. Нагрузка на процессор ~50-60%. FPS в игре ~45-55. Картинка на выходе более-менее смотрибельна. Кадры периодически пропускались, но это скорее всего из-за лагов инета.
1. Не секрет что у "twitch/justin" существуют проблемы с пропускной способностью. Проще говоря - лаги.
Для трансляции на "twitch/justin" помимо использования встроенного плагина, можно настроить "Custom RTMP" под него.
Это даст возможность использовать небольшую программку под названием TCPRelay. По словам автора она всего лишь пересылает байты от вас к стрим-сервису. Точно не знаю с помощью какой магии она это делает, но это реально помогает. Проверено мной на тестовом FullHD@30fps стриме с 4500 Kbps на сервер во Франкфурте, Германия. Без этой программы тест выдавал еле-еле 2300-2500 kbps.
Вот тут - Official topic for TCPRelay - официальная тема программки на форуме XSplit на английском. Если есть проблемы с каналом, и дропом кадров из-за этого, рекомендую заглянуть.
Эм... порой и 2к мбит много, мы же хотим что бы нас смотрело как можно большее количество зрителей. А вы про 3-4к говорите.
Мы также хотим чтобы качество было отличным. Без хорошего битрейта не будет хорошего качества. Хочешь смотреть 720р - будь добр запастись быстрым инетом. Или же стримить в несколько потоков 360р, 480р и 720р+ например. Угодишь всем.
Сообщение от R3mbrant:
А по поводу ресайза, на время стрима выставляйте разрешение в винде и игре 720p.
Данунафиг. Это идиотизм, на 27" FullHD мониторе играть в 1280х720. Тем более в окне. Ресайз тут самое оптимальное решение. Просто надо помучаться с подбором оптимальных настроек стрима.
Вот примерные мои настройки "Custom RTMP" стрима на twitch.tv. Ресайз с 1920х1080 до 1280х720.
Вот для стрима в 1080р без ресайза.
Нагрузка на систему вполне сносная. Все зависит от качества инета и возможности стрим-сервера принимать такой поток без потерь.
В общем, купил персональную лицензию и все проблемы с настройкой и качеством исчезли. Стрим с ресайзом 1080р -> 720р@30fps и битрейтом в 2к вполне себе нормально выглядит.