SteamDB

» » Убираем лаги при просмотре стримов с TwitchGoodgame и разгружаем CPU

Убираем лаги при просмотре стримов с TwitchGoodgame и разгружаем CPU

Пролог

Если у вас быстрый интернет (6 мегабит и более), но трансляции на Twitch в качестве source всё равно тормозят, то читайте это руководство! Также это руководство поможет, если у вас малопроизводительный ПК и при просмотре видео мало fps и работа ПК парализуется.

Немного теории

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

Кроме того, данный способ позволяет смотреть трансляции без flash-плеера и вообще без браузера. Ещё загруженность ЦП станет меньше (особенно актуально для Linux, поскольку flash-плеер этой ОС не поддерживает аппаратное ускорение). Например, при просмотре через браузер на Linux мой ЦП (Core 2 Duo [email protected]) загружен на 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
Если вашего дистрибутива нет в списке или программа не содержится в стандартных репозитоиях, то скачайте программу вручную:
https://github.com/chrippa/livestreamer

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
ringbuffer-size=32M

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




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

Для просмотра goodgame:
livestreamer http://goodgame.ru/channel/ilyamaddyson/ 720p
Доступные качества: 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)VideoLANVLCvlc.exe" --file-caching=10000
hls-segment-threads=10
ringbuffer-size=32M

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

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

4) Готово. Программу необходимо открыть через командную строку (не бойтесь, далее мы автоматизируем процесс). Для этого открываем консоль (Пуск – выполнить – вписываем cmd и жмём enter. Либо находим командную строку в пуске в разделе стандартные).
Вписываем
cd «C:Program Files (x86)Livestreamer» либо «C:Program FilesLivestreamer» для 32-х разрядной ОС.

Запускаем саму программу командой livestreamer.exe [ссылка] [качество]
Например:
livestreamer.exe http://www.twitch.tv/welovegames source
Доступные качества (от лучшего к худшего): source, high, medium, low, mobile.

Для просмотра goodgame:
livestreamer http://goodgame.ru/channel/ilyamaddyson/ 720p
Доступные качества: 720p, 480p, 240p

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


5) Создание bat-скрипта
Создайте текстовый файл и откройте его для редактирования. Впишите строку
"C:Program Files (x86)Livestreamerlivestreamer.exe" http://www.twitch.tv/princesschu source
(смените ссылку на нужного стримера и укажите верный путь до livestreamer)и сохраните. Смените расширение с txt на bat. Готово. Как только ваш любимый стример начнёт трансляцию. Вам лишь останется сделать двойной клик по этому файлу и наслаждаться потоковым видео.

Эпилог

Если вы обнаружите грамматические, стилистические, смысловые ошибки, просьба написать в комментариях. Также если у вас есть другие советы и рекомендации, например. По настройке программы, не стесняйтесь. Поделитесь с другими.

Официальный сайт проекта: http://livestreamer.tanuki.se/index.html
Исходный код проекта: https://github.com/chrippa/livestreamer скачать dle 10.6фильмы бесплатно