<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://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%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D1%8B_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%B2_%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://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%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D1%8B_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%B2_%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://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%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D1%8B_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%B2_(%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-06T13:55:37Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://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%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D1%8B_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%B2_(%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=2392&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://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%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D1%8B_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%B2_(%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=2392&amp;oldid=prev"/>
		<updated>2017-09-13T19:39:38Z</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=3-8&lt;br /&gt;
|categorize=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Что это за проект? ===&lt;br /&gt;
Матрица -- это узел, куда в телевизионном центре сходятся все сигналы и оттуда распределяются по потребителям. Технически это коробка с N входами и M выходами. И каждый выход m может быть сопоставлен входу n, при этом, на один вход может быть скоммутировано сколько угодно выходов. Ко входам подключаются камеры, выходы пультов, спутниковые приёмники с сигналами  от выездных студий и внешних источников, а выходы подаются на пульты, рекордеры и эфирные кодеры. &lt;br /&gt;
В нашем случае коммутироваться будут не сигналы в проводах, а потоки в сети. Представьте здания Вышки, в каждом по несколько оборудованных видеокамерами залов. В итоге по сети мы получаем множество потоков, но одновременно  нужны далеко не все. И для режиссера эфира удобно иметь перед глазами только нужные камеры. Микшер подключен, например, к выходам 1-8 матрицы, а эти выходы коммутируются на нужные входы. Выходы матрицы также могут отдавать потоки на телевизионные панели в зданиях, сетевые рекордеры (такая тема тоже есть по соседству) и т.д.&lt;br /&gt;
&lt;br /&gt;
Этот проект в минимальном виде за час собирается &amp;quot;на коленке&amp;quot; -- связка из двух VLC образует цепочку &amp;quot;переключатель/выход&amp;quot;, где на переключателе указывается адрес входного потока, а выходной поток формируется вторым vlc (он является сервером RTSP. Количество таких пар определяет количество выходов, а входы -- это любые адреса потоков. Важно, что если к одной камере напрямую подключится много зрителей, то она не справится -- она является сервером, но не предназначена для массового доступа. Матрица выполняет роль прокси. &lt;br /&gt;
&lt;br /&gt;
Технически это сервис на виртуальной машине. Он не должен перекодировать видео, только пересылать его. Зато матрице позволительно делать подрыв при переключении (это как при переключении каналов на телевизоре -- на время звук и картинка пропадают, потом появляется новый канал). &lt;br /&gt;
Внешне это веб-интерфейс, представляющий собой минимально админ-панель, где вводятся адреса и имена источников и выходов, а в полной версии -- есть предпросмотр для всех входов и выходов. Сервис должен быть многопользовательским с возможностью делегировать доступ, группировать каналы и т.д.&lt;br /&gt;
&lt;br /&gt;
=== Чему научатся студенты? Что самое интересное в проекте? ===&lt;br /&gt;
1. Работа с linux-серверами. &lt;br /&gt;
&lt;br /&gt;
2. Поближе познакомитесь с сетями. Unicast/Multicast, TCP/UDP -- все это станет роднее и понятнее. VPN, куда же без него. &lt;br /&gt;
&lt;br /&gt;
3. Манипуляции с медиапотоками в сети. Придется разобраться в RTSP серверах (в простейшем случае это многим знакомый VLC)&lt;br /&gt;
&lt;br /&gt;
4. Разработка пользовательского интерфейса (личный кабинет с настройками, групповой доступ, отображение предпросмотра с минимизацией трафика) -- здесь достаточно ruby on rails (для совместимости поддержки с соседними проектами) и верстки bootstrap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Такой работающий сервис позволяет собрать воедино множество источников и легко формировать индивидуальные управляемые программы на выходах. Так, например, можно легко сделать масштабируемое университетское ТВ: каждый телевизор в коридоре подключается к декодеру (это небольшая коробочка), настроенному на индивидуальный номер в матрице. Все остальное управление производится на матрице.&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. Каналы: пара RTSP приёмник и RTSP сервер для каждого канала. Таких каналов должно поддерживаться значительное количество (сотни, пределы определяются возможностями серверов). Отдельно стоит рассмотреть возможность запуска на нескольких серверах.&lt;br /&gt;
2. Личный кабинет: аутентификация, настройки источников (включая ONVIF discovery), группировка каналов, делегирование доступа, статистика/логи.&lt;br /&gt;
3. Пользовательский интерфейс, предпросмотр&lt;br /&gt;
4. REST API / ONVIF&lt;br /&gt;
&lt;br /&gt;
=== Какие будут использоваться технологии? ===&lt;br /&gt;
* RTSP потоки и RTSP сервер -- протокол передачи видео в реальном времени, широко используется в системах IPTV и видеонаблюдения. В быту RTSP сервер легко сделать из VLC, но есть и другие варианты (FFSERVER, Live555 и т.д.). &lt;br /&gt;
&lt;br /&gt;
* ONVIF -- стандарт управления для систем видеонаблюдения. Очень пригодится для обнаружения источников в сети и адресов потоков в этих источниках. Также, полезно сделать управление матрицей совместимым со стандартами управления прочим видеооборудованием.&lt;br /&gt;
&lt;br /&gt;
* REST API -- не технология, но очевидно, что программное взаимодействие с матрицей будет необходимо, в частности, для автоматизации вещания (расписание -- это уже тема отдельного проекта)&lt;br /&gt;
&lt;br /&gt;
* OAuth -- общее требование по аутентификации пользователей. Встречается повсеместно, освоить всегда полезно. &lt;br /&gt;
&lt;br /&gt;
* Ruby on Rails -- веб-разработка крайне желательная на этой связке. &lt;br /&gt;
&lt;br /&gt;
* FFMPEG/GStreamer -- на случай необходимости все-таки обработать поток. Например, чтобы сгенерировать превью или сделать транскодирование в RTSP или в нужный формат (если такое указано для данного канала).&lt;br /&gt;
&lt;br /&gt;
=== Какие начальные требования? ===&lt;br /&gt;
* Навыки программирования (рельсы можно изучить. После Python вы не будете очень страдать). &lt;br /&gt;
&lt;br /&gt;
* Ожидается, что разработчики умеют пользоваться поисковыми системами и stackoverflow. Руководитель может консультировать вас по предметной области (видео/тв), но не по программной разработке. &lt;br /&gt;
&lt;br /&gt;
* Разработка обычно имеет недельный цикл трекинга, встречи (как индивидуальные, так и групповые) по умолчанию -- по видеосвязи, но порой надо и очно (на факультете). Необходимые технические и серверные ресурсы предоставляются.&lt;br /&gt;
&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;
&lt;br /&gt;
Постарайтесь отнестись к этому с пониманием. Очень часто бодрое начало длится 3-4 недели и потом наступает тишина. Очень хочется, чтобы проекты доводились до запуска, а вы получали опыт успешной разработки и, возможно, работу в этих проектах уже в другом статусе. Но пока это для вас учебная работа, поэтому будем придерживаться описанных по ссылке правил и критериев. Спасибо!&lt;br /&gt;
&lt;br /&gt;
=== Похожие проекты ===&lt;br /&gt;
Как выглядит матрица сигналов (не потоков), можно посмотреть по программным оболочкам к аппаратным телевизионным матрицам. Например, Blackmagic VideoHub. Но в нашем случае это сомнительный аналог. &lt;br /&gt;
Технологически чуть ближе сетевые видеорекордеры. Вы видели такие у охранников: на экране сетка из разных камер, при этом все потоки записываются. Это не матрица, но суть та же: в сетевом рекордере (NVR) записываются адреса камер и сопоставляются с номерами каналов записи, просто их не меняют на ходу. Поток при этом не перекодируется.&lt;br /&gt;
&lt;br /&gt;
Этот проект на Ярмарке проектов ВШЭ: https://pf.hse.ru/207816915.html&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>