Сообщения

Сообщения за июль, 2020

walrus оператор в питоне

В питоне 3.8 существует walrus operator, который позволяет присваивать переменные доступные в теле, внутри выражений. Walrus operator получил такое название из-за своего сходства с мордой моржа. Этот синтаксис позволяет избегать повторения самого себя, например: a = [ 1 , 2 , 3 , 4 ] if (n := len (a)) > 10 : print ( f "List is too long ( { n } elements, expected <= 10)" ) Если не новый синтаксис, то вы бы не смогли назначить переменную внутри выражения. Вам пришлось бы создать переменную выше, что усложнит чтение кода: a = [ 1 , 2 , 3 , 4 ] n = len (a) if (n > 10 ): print ( f "List is too long ( { n } elements, expected <= 10)" ) Так-же Walrus operator помогает в регулярных выражениях: discount = 0.0 if (mo := re.search( r ' ( \d + ) % discount' , advertisement)): discount = float (mo.group( 1 )) / 100.0 Вам нужно было получить доступ к переменной в теле if, поэтому этот оператор очень полезен. Так же этот оператор полезен при чт

Как создать свой стриминг сервер на VPS

Изображение
Для создания своего стриминг сервиса вам потребуется 2 компонента: RTMP сервер, и сервер раздачи контента. Сделать все это позволяет nginx-rtmp-module. Этот RTMP модуль для сервера nginx позволяет вам создать RTMP сервер, который затем превращает видео поток в чанки например HLS или DASH, которые можно проигрывать в любимом плеере. Для хостинга рекомендуется использовать VPS сервер, тк потоковое видео создаёт большую нагрузку на сеть. Установка Код ниже можно просто скопировать и вставить в терминал тк комментарии игнорируются башем. # Установка зависмостей sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev # Скачивание nginx wget http://nginx.org/download/nginx-1.15.1.tar.gz # Распаковка tar tar -zxvf nginx-1.15.1.tar.gz # Заходим в папку с исходниками nginx cd  nginx-1.15.1 # Теперь скачаем плагин wget https://github.com/sergey-dryabzhinsky/nginx-rtmp-module/archive/dev.tar.gz tar -zxvf dev.tar.gz  # Распаковка плагина # Создаем Makefile ./configure --with-http_ssl