<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://www.wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B9_%D1%81%D0%B5%D1%82%D0%B8_%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B8_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0._%28%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%29</id>
	<title>Разработка динамической сети доставки потокового видеоконтента. (командный проект) - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://www.wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B9_%D1%81%D0%B5%D1%82%D0%B8_%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B8_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0._%28%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%29"/>
	<link rel="alternate" type="text/html" href="https://www.wikicshse.ru/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B9_%D1%81%D0%B5%D1%82%D0%B8_%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B8_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0._(%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82)&amp;action=history"/>
	<updated>2026-06-06T20:25:22Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://www.wikicshse.ru/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B9_%D1%81%D0%B5%D1%82%D0%B8_%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B8_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0._(%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82)&amp;diff=2356&amp;oldid=prev</id>
		<title>imported&gt;Dkorolev: Migrated current public revision from wiki.cs.hse.ru</title>
		<link rel="alternate" type="text/html" href="https://www.wikicshse.ru/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B9_%D1%81%D0%B5%D1%82%D0%B8_%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B8_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0._(%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82)&amp;diff=2356&amp;oldid=prev"/>
		<updated>2017-09-20T14:01:07Z</updated>

		<summary type="html">&lt;p&gt;Migrated current public revision from wiki.cs.hse.ru&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Карточка_командного_проекта&lt;br /&gt;
|name=Разработка динамической сети доставки потокового видеоконтента&lt;br /&gt;
|company=On-Air.Pro&lt;br /&gt;
|semester=Осень 2017&lt;br /&gt;
|course=3&lt;br /&gt;
|number_of_students=4-6&lt;br /&gt;
|categorize=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Что это за проект? ===&lt;br /&gt;
Видеотрансляции в интернет стали совсем обычным делом с тех пор, как ими вплотную занялись Youtube и, позже, соцсети. До них раздача видеопотоков зрителям решалась или своими силами, или через сети доставки контента (CDN). Суть задачи в том, что, в отличие от телевидения, которое посылает один сигнал всем, а смотрят его те, кто хотят, в интернет работает только метод передачи данных от точки к точке (unicast), что для сервера трансляций оборачивается необходимостью каждому зрителю индивидуально отправить поток. Тот же самый, что другому зрителю, в то же время, но отправить персонально. В итоге нагрузка на канал связи растет пропорционально аудитории трансляции. И задерживать такой поток нельзя. &lt;br /&gt;
&lt;br /&gt;
Решается это созданием сети серверов, между которыми распределяется нагрузка по трафику. Суть данного проекта заключается в создании такой сети серверов не в собственном датацентре, а на виртуальных машинах и в управлении созданием и отключением этих машин, в распределении потоков между ними.&lt;br /&gt;
&lt;br /&gt;
Для эффективной работы CDN требуется диагностика и мониторинг каналов связи на серверах, ресурсов самих серверов -- это отдельная подтема в проекте.&lt;br /&gt;
&lt;br /&gt;
Вторая часть проекта -- это frontend. Если при трансляции через Youtube зритель видит плеер Youtube, то при трансляции через собственный CDN зрителю надо показать какой-то свой плеер. А может быть и не только плеер. Есть множество &amp;quot;фич&amp;quot;, которые становится возможным реализовать, если вести раздачу потоков через свои ресурсы: обратная связь, учет зрительской активности, взимание платы за трансляции, учет географии и других данных о пользователе, многопоточный звук для трансляции многоязычных конференций, субтитры (у нас есть распознавание голоса в текст). Можно организовать чат, голосования и даже принимать от зрителей видеопотоки, звук и файлы через WebRTC. Разумеется, здесь задачи будут выбираться исходя из состава и готовности проектной группы.&lt;br /&gt;
&lt;br /&gt;
=== Чему научатся студенты? Что самое интересное в проекте? ===&lt;br /&gt;
Проект в первую очередь -- сетевой, в чистом виде -- облачный. Это разработка распределенной системы, динамически меняющейся в зависимости от нагрузки. Более того, практика показывает, что нельзя привязываться к одному провайдеру услуг: там тоже бывают перебои. &lt;br /&gt;
В результате разработки CDN должна иметь REST API и хотя бы минимальную админ-панель, для зрителей должен предлагаться плеер (как минимум -- HLS) и страница для просмотра.&lt;br /&gt;
&lt;br /&gt;
=== Организация работы (Как студенты будут работать в команде?) ===&lt;br /&gt;
Роли и точный состав работ формируется по итогам регистрации желающих участвовать (команда может быть смешанной, в т.ч. со студентами МИЭМ и других факультетов, аналогичная тема заявлена на ярмарке проектов.&lt;br /&gt;
&lt;br /&gt;
Далее организуется slack и трекер (обычно trello), где ведется рабочее общение и трекинг задач. &lt;br /&gt;
Встречи -- по договоренности (на первых порах это понадобится точно) на Кочновском, альтернативный и более частый вариант -- аудио/видеосвязь. Удобно, т.к. можно собираться по актуальному вопросу безотлагательно и в любое время в любом составе.&lt;br /&gt;
&lt;br /&gt;
=== Компоненеты (Из каких частей состоит проект?) ===&lt;br /&gt;
1. Работа с API хостинг-провайдеров. &lt;br /&gt;
&lt;br /&gt;
2. Балансировщик &lt;br /&gt;
&lt;br /&gt;
3. REST API для сервиса трансляций.&lt;br /&gt;
&lt;br /&gt;
4. Плеер и фронтенд (для зрителя, для админа)&lt;br /&gt;
&lt;br /&gt;
5. WebRTC обвеска (в дополнение к предыдущему пункту)&lt;br /&gt;
&lt;br /&gt;
=== Какие будут использоваться технологии? ===&lt;br /&gt;
Облачные серверы запускаются с использованием API соответствующего провайдера. Некоторые провайдеры используют OpenStack, но это (на практике) не решает проблем унификации работы. &lt;br /&gt;
Сетевой мониторинг -- само по себе важное направление в инфраструктуре ИТ. Конкретные инструменты предстоит выбрать.&lt;br /&gt;
Плеер и фронтенд -- есть смелая идея раздавать поток через WebRTC (а это пиринговая технология, то есть, на стороне серверов будет о чем подумать), через него же собирать обратную связь. Но это отдельная часть проекта, для смелых веб-разработчиков, причем, ее можно реализовывать независимо от успехов в CDN (можем запустить в действующем проекте).&lt;br /&gt;
Однозначно можно сказать, что Flash использовать нельзя, но при этом доставить на все платформы поток в едином виде можно лишь http-based протоколами (HLS, например), а у них есть свои недостатки -- большая задержка, от которой теряется смысл в обратной связи реального времени. Поэтому нужно предусматривать запасные протоколы:  WebRTC - RTMP - HLS. Это в порядке увеличения задержки.&lt;br /&gt;
&lt;br /&gt;
=== Какие начальные требования? ===&lt;br /&gt;
CDN -- это серверная разработка под Linux. Язык жестко не регламентирован, попытки что-то сделать уже предпринимались на Java. &lt;br /&gt;
Веб-разработка -- основной проект написан на Ruby on Rails, желательно не вносить разнообразие языков, но это не блокирующее требование. &lt;br /&gt;
Плеер -- если беретесь за плеер, то хорошо бы иметь хоть какой-то опыт общения с ними. Задача может оказаться сложнее, чем кажется на первый взгляд.&lt;br /&gt;
&lt;br /&gt;
=== Темы вводных занятий ===&lt;br /&gt;
Не в порядке изложения: &lt;br /&gt;
&lt;br /&gt;
1. Архитектура проекта. API, внешние связи и зависимости.&lt;br /&gt;
&lt;br /&gt;
2. Специфические технологии и используемые инструменты.&lt;br /&gt;
&lt;br /&gt;
3. Доступные ресурсы, организация доступа. &lt;br /&gt;
&lt;br /&gt;
4. Разделение ролей&lt;br /&gt;
&lt;br /&gt;
=== Критерии оценки ===&lt;br /&gt;
Про работу и оценки почитайте здесь: https://d.pr/143bq&lt;br /&gt;
Обратите внимание, что проект составной и то, какие части пойдут в работу, мы поймём, когда сформируется состав рабочей группы. То есть, отсутствие в итоге какой-то из частей, не блокирующей работу (например, WebRTC не запустили, но HLS плеер есть -- его поставить недолго) никак не снижает оценки проделанной работы по тем частям проекта, которые выполнены. Участники проекта имеют свою область ответственности и оценки получают в соответствии с успехами в этих областях.&lt;br /&gt;
&lt;br /&gt;
Постарайтесь отнестись к этому с пониманием. Очень часто бодрое начало длится 3-4 недели и потом наступает тишина. Очень хочется, чтобы проекты доводились до запуска, а вы получали опыт успешной разработки и, возможно, работу в этих проектах уже в другом статусе. Но пока это для вас учебная работа, поэтому будем придерживаться описанных по ссылке правил и критериев. Спасибо!&lt;br /&gt;
&lt;br /&gt;
=== Похожие проекты ===&lt;br /&gt;
CDNVideo, NGenix -- российские CDN, классические, на физических серверах. Akamai и т.д. -- зарубежные, их много. Но они решают больше задач: DVR -- запись с timeshift, раздача статического контента (про это есть отдельный проект среди предложенных здесь, и он базируется на бесконечных GoogleDrive)&lt;br /&gt;
&lt;br /&gt;
FaceCast -- интересная организация, скоро запускают новую версию своей платформы с API. Но у них нет задачи работы в реальном времени, чат там тоже внешний и не сохраняется, и вообще они предлагают полный цикл от отправки сигнала с камер, а не только доставку потоков. CDN они тоже сделали на своих серверах, хотя и использовали подход Google -- много дешевых машин, распределенное хранение, резервирование. &lt;br /&gt;
&lt;br /&gt;
По использованию WebRTC: appear.in -- видеочат. Но чат связывает участников одного уровня между собой, причем, всех со всеми, а тут задача другая -- на противоположной стороне от зрителя будет сервер.&lt;br /&gt;
&lt;br /&gt;
=== Контактная информация ===&lt;br /&gt;
Денис Королев,&lt;br /&gt;
&lt;br /&gt;
https://www.hse.ru/staff/dkorolev (там есть ссылки на соцсети)&lt;br /&gt;
&lt;br /&gt;
+7 903 610 3290 (месенджеры по вкусу)&lt;br /&gt;
&lt;br /&gt;
d.korolev@gmail.com&lt;/div&gt;</summary>
		<author><name>imported&gt;Dkorolev</name></author>
	</entry>
</feed>