Steam

Steam

40 ratings
Убираем лаги при просмотре стримов с Twitch\Goodgame и разгружаем CPU
By Oink-oink
Если у вас быстрый интернет (6 мегабит и более), но трансляции на Twitch в качестве source всё равно тормозят, то читайте это руководство! Также это руководство поможет, если у вас малопроизводительный ПК и при просмотре видео мало fps и работа ПК парализуется.
 
Rate  
Favorite
Favorited
Unfavorite
Пролог
Если у вас быстрый интернет (6 мегабит и более), но трансляции на Twitch в качестве source всё равно тормозят, то читайте это руководство! Также это руководство поможет, если у вас малопроизводительный ПК и при просмотре видео мало fps и работа ПК парализуется.
Немного теории
При просмотре через браузер данные с сервера передаются к клиенту и сразу же транслируются на экране. И иногда данные на секунду или больше перестают передаваться (загруженность сети у вашего провайдера, не справляется сервер Twitch и т. д.), трансляция зависает. Прерывание передачи данных даже на несколько секунд негативно сказываются на стабильность.

Кроме того, данный способ позволяет смотреть трансляции без flash-плеера и вообще без браузера. Ещё загруженность ЦП станет меньше (особенно актуально для Linux, поскольку flash-плеер этой ОС не поддерживает аппаратное ускорение). Например, при просмотре через браузер на Linux мой ЦП (Core 2 Duo E4400@2.65GHZ) загружен на 80-90%, а при просмотре через альтернативный способ всего на 8-20%. Ещё экономится ОЗУ. Так что можно смотреть комфортно трансляции в FullHD с 60 fps на старых системах (при условии, что ваша видеокарта поддерживает аппаратное декодирование видео. Даже старые GF 8600gt поддерживают эту технологию).

Сейчас Twitch переходит на html5. HTML5 – это, конечно, хорошо, но новая технология крайне активно потребляет ресурсы ЦП. Например, у меня тормозят видеотрансляции даже в качестве «medium».



Итак, идея такова: сначала скачиваем кусочек стрима на на наш компьютер, в буфер. Размер буфера задаём сами, я рекомендую 32 мегабайта. Далее показываем не прямой эфир, а считываем данные из кеша (буфера). 32 мегабайта – это примерно 10 секунд стрима. Если даже передача видео со стрима остановится на некоторое время из-за нестабильного интернета или недостатки пиковой скорости, лагов не будет, данные берутся из заранее подготовленного кеша. 32 мегабайта в идеальных условиях обеспечат непрерывную трансляцию видео при потере интернет-соединия до 10-ти секунд. Далее буфер заполнится снова.
Приступим к делу. Linux
  1. Установить livestreamer.
    Для семейства Debian (Ubuntu, Mint и т.д.):
    sudo apt-get install livestreamer
    Для Fedora:
    yum install livestreamer
    Arch:
    pacman -S livestreamer
    Gentoo:
    emerge net-misc/livestreamer
    Если вашего дистрибутива нет в списке или программа не содержится в стандартных репозитоиях, то скачайте программу вручную с сайта.[github.com]

  2. Установить любой поддерживаемый плеер. Я рекомендую воспользоваться VLC, либо mplayer. К сожалению, mplayer для дистрибутива Ubuntu 15.10 скомпилирован с неправильными ключами, поэтому вы не сможете воспользоваться версией из репозитория в последней версии Ubuntu.
    Например, для дистрибутивов с поддержкой apt:
    sudo apt-get install vlc
    Для других дистрибутивов аналогично предыдущему пункту.

  3. Сконфигурировать livestreamer.
    Для этого открываем файл /home/$USER/.config/livestreamer/config. Для тех, кто не боится консоли:
    nano /home/$USER/.config/livestreamer/config

    Либо откройте в вашем любимом текстовом редакторе. Для Ubuntu:
    gedit /home/$USER/.config/livestreamer/config

    И напишите строки:
    player=vlc --file-caching=10000 hls-segment-threads=10 hds-segment-threads=10 ringbuffer-size=32M



    player – опция, отвечающая за выбор плеера. В данном случае используется vlc с внутренним кешем в 10 секунд. Для mplayer необходимо написать player=mpv --cache 8192.
    hXs-segment-threads=3 – скачивание трансляции будет идти в 3 потока. Можно увеличить до 10-ти, минимальное значение же 1. Я не уверен, стоит ли менять это значение, но в теории, нужна создать многопоточность. Если у вас возникнут проблемы, поставьте «1».
    ringbuffer-size=32M – собственно, наш буфер, 32 мегабайта. Если у вас всё равно будут лаги, то попробуйте увеличить до 64-х МБ.

  4. Всё, готово. Для просмотра стрима необходимо просто набрать в терминале
    livestreamer [ссылка на стрим] [качество]
    Напрммер,
    Доступные качества (от лучшего к худшего): source, high, medium, low, mobile.

    Для просмотра goodgame:
    Доступные качества: 720p, 480p, 240p

Но это ещё не всё! Программа поддерживает несколько десятков сервисов онлайн-стримминга и не только. Список всех сервисов доступен на сайте:
http://livestreamer.tanuki.se/plugin_matrix.html

Как можем убедиться, при просмотре стримов ЦП загружен всего лишь на 10-20%. Без этого способа загрузка CPU была бы 80-100%.
Windows
Поскольку программа консольная, а командная строка в системах Windows, на мой взгляд, отвратительная, да и система организации каталогов весьма странная, пользоваться программой на Windows не так удобно. Кроме того, пользователи Windows, как правило, боятся консоли. Но без паники! У вас всё получится.
  1. Устанавливаем саму программу
    Скачайте инсталятор:
    http://livestreamer.tanuki.se/install.html#windows-binaries (нажмите на большую надпись installer)
    Запустите и установите. Ничего сложного, всё время жмите «далее» и примите условия лицензионного соглашения в случае необходимости.

  2. Скачайте и установите плеер VLC, если он не установлен:
    http://www.videolan.org/vlc/download-windows.html

  3. Включите показ скрытых файлов при необходимости. Откройте блокнотом или другим текстовым редактором файл livestreamerrc, находящийся в каталоге
    C:/Пользователи(Users))/[ИМЯ УЧЁТНОЙ ЗАПИСИ]/AppData/Roaming/livestreamer/
    (Например, у меня это C:/Пользователи/vodka2/AppData/Roaming/livestreamer/)

    и добавьте в конец файла:
    player="C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" --file-caching=10000 hls-segment-threads=5 hds-segment-threads=5 ringbuffer-size=32M

    player="C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" --file-caching=10000 – путь к VLC плееру. Если у вас 32-х разрядная ОС, то это player="C:\Program Files\VideoLAN\VLC\vlc.exe"

    Остальные опции описаны в предыдущей главе.



  4. Готово. Программу необходимо открыть через командную строку (не бойтесь, далее мы автоматизируем процесс). Для этого открываем консоль (Пуск – выполнить – вписываем cmd и жмём enter. Либо находим командную строку в пуске в разделе стандартные).
    В консоли пишем:
    cd «C:\Program Files (x86)\Livestreamer\» либо «C:\Program Files\Livestreamer\» для 32-х разрядной ОС.
Запускаем саму программу командой livestreamer.exe [ссылка] [качество]
Например:
livestreamer.exe http://www.twitch.tv/welovegames source
Доступные качества (от лучшего к худшего): source, high, medium, low, mobile.

Для просмотра goodgame:
Доступные качества: 720p, 480p, 240p


Но это ещё не всё! Программа поддерживает несколько десятков сервисов онлайн-стримминга и не только. Список всех сервисов доступен на сайте:
http://livestreamer.tanuki.se/plugin_matrix.html



Создание bat-скрипта(по желанию)
Создайте текстовый файл и откройте его для редактирования. Впишите строку
"C:\Program Files (x86)\Livestreamer\livestreamer.exe" http://www.twitch.tv/princesschu source
(смените ссылку на нужного стримера и укажите верный путь до livestreamer)и сохраните. Смените расширение с txt на bat. Готово. Как только ваш любимый стример начнёт трансляцию. Вам лишь останется сделать двойной клик по этому файлу и наслаждаться потоковым видео.
Решение проблемы "error: No streams found on this URL:" на goodgame
API goodgame изменили, программа пока не обновлена. Для просмотра стримов необходимо набрать
Например, на Windows: Linux:
id стима можно узнать перейдя по адресу http://goodgame.ru/api/getggchannelstatus?id=XXX, где XXX -- ник стримера, например, http://goodgame.ru/api/getggchannelstatus?id=ilyamaddyson
Во второй строке будет id стрима:
<root><stream id="41677"><stream_id>41677</stream_id>
Эпилог
Конечно, у этого метода есть пару недостатков:
  • Отсутствует чат
  • Нет рекламы, что несколько неуважительно по отношению к стримеру
  • Стрим может запаздывать на несколько секунд
Если вы обнаружите грамматические, стилистические, смысловые ошибки, просьба написать в комментариях. Также если у вас есть другие советы и рекомендации, например, по настройке программы, не стесняйтесь. Поделитесь с другими.

Официальный сайт проекта: http://livestreamer.tanuki.se/index.html
Исходный код проекта: https://github.com/chrippa/livestreamer
< >
38 Comments
IIIIIIIIIIII Jul 14, 2017 @ 4:49am 
Чёт, я не очень понял! Но почему-то, на нормальном языке нигде не написано, что теперь ключ запуска содержет --http-header Client-ID=jzkbprff40iqj646a697cyrvl0zt2m6 - Это ключ (или Client-ID) (он у каждого пользователя твича индивидуальный) этот левый - рандомного пиндоса Client-ID можно взять свой. и команда сейчас примерно такая: C:\Users\Администратор>livestreamer.exe --http-header Client-ID=jzkbprff40iqj646a697cyrvl0zt2m6 https://www.twitch.tv/dtfru best
SCP-2316-1 (N8) Apr 2, 2017 @ 8:53pm 
FakeTaxi ( ͡° ͜ʖ ͡°) Mar 12, 2017 @ 1:30pm 
Ребят, есть новое отличное решение проблемы лагов на твиче!!! Устанавливаем расширение для браузера ZenMate. Проходим быструю регистрацию. Все, готово! Осталось только выбрать страну, через которую будет идти поток.
buzarini Feb 17, 2017 @ 3:18pm 
@Oink-oink Есть форк livestreamer'a, который часто обновляется. Называется streamlink. Еще есть специальное приложение для twitch'a. Называется streamlink-twitch-gui. Плеер конечно можно любой использовать, но я использую mpc-be.
https://github.com/streamlink/streamlink
https://github.com/streamlink/streamlink-twitch-gui
https://sourceforge.net/projects/mpcbe/
S1mn Feb 12, 2017 @ 10:34am 
Снова что-то намутил твич, не знаешь новое решение?
S1mn Jan 20, 2017 @ 12:05pm 
@Oink-oink делал по второму способу ютуб, работает, атвечаю! Спасибо!
Oink-oink  [author] Jan 20, 2017 @ 10:14am 
S1mn Jan 20, 2017 @ 9:56am 
C:\Program Files (x86)\Livestreamer>livestreamer.exe http://www.twitch.tv/ruhub_dotapit source
[cli][info] Found matching plugin twitch for URL http://www.twitch.tv/ruhub_dotapit
error: Unable to open URL: https://api.twitch.tv/api/channels/ruhub_dotapit/access_token.json (400 Client Error: Bad Request)
в чем проблема?
Mr.хуй Jan 19, 2017 @ 2:19pm 
Привет сдела все как написанно но выдает 404 ошибку win 7 помоги плз
Flavius Jan 9, 2017 @ 3:32pm 
Насчет нагрузки на цп, следуеют просто включить аппаратное декодирование и правильно настроить обработку видеопотока. Не проверял со стримами, но смысл один и тот же, должно помочь снизить нагрузку на процессор.