Архив рубрики: Статьи

Использование double dispatch на примере разработки системы потокового вещания

Одна из задач, которые приходится решать при разработке системы потокового вещания — как правильно организовать передачу информации внутри системы.

0. Проблема

Для потокового вещания общепринятой является архитектура, согласно которой система состоит из отдельных модулей-фильтров, которые обмениваются сообщениями, в простейшем случае — в одном направлении, от источника данных через разнообразные фильтры в приёмники данных. Например, источником данных может являться спутниковый ресивер, фильтрами — декодер, кодер, а приёмник — модуль воспроизведения мультимедиа, или плейер. Таким образом, структурно система стриминга представляет собой граф (обычно однонаправленный), вершинами которого являются объекты-обработчики, а по рёбрам следуют объекты-сообщения.

Как видно из описания, объекты-обработчики, или “фильтры”, наиболее естественно могут быть представлены в виде иерархии полиморфных классов, имеющих общего предка, единственной задачей которого будет приём и обработка пакетов медиаданных:

Читать далее

Библиотеки для автоматического распознавания номеров авто и их практическое использование

Введение

В настоящее время существует тенденция сокращения расходов автотранспортных предприятий и предприятий, сфера деятельности которых связана с охраной и безопасностью. Достигается это в том числе и путем внедрения современных информационных систем. Одной из таких систем является система автоматического распознавания номеров авто (ANPR).
Помимо платных программ, предназначенных для распознавания автомобильных номеров, существуют бесплатные программы и библиотеки, которые не уступают платным аналогам в плане функционала. В данной работе мы рассмотрим существующие библиотеки для анализа изображений и их работу на конкретном примере.

Обзор существующих библиотек для распознавания номеров авто

Поиск в сети показал, что существуют несколько свободных проектов библиотек для распознавания номеров авто, реализованных для разных языков программирования.

1. Проект Opos.

Реализация – С#. Проект располагается по адресу http://opos.codeplex.com. Анализ исходного кода показал, что для распознавания номера авто используется порт библиотеки компьютерного зрения opencv на C#, а для, собственно, распознавания символов номера используется обертка на C# над библиотекой OCR CuneiFrom – Puma.NET. Библиотека имеет один серьезный недостаток – изображение для последующей передачи в Puma.NET сначала сохраняется на диск, что затрудняет использование этой библиотеки в системах реального времени.

Читать далее

Как раздать защищённый контент при помощи nginx

Как мы уже рассказывали, сегодня один из основных методов потоковой доставки видео – это так называемый HTTP Dynamic Streaming (HDS), или “динамическое потоковое вещание по HTTP”, предложенный компанией Adobe. Заключается этот метод в разбивке медиафайла (или потока) на относительно небольшие файлы-фрагменты в определённом формате и затем отправке пользователю этих файлов по протоколу HTTP. Если у вас есть видеофайл в формате mp4, то вы можете (при помощи специального программного обеспечения) либо разбить его на такие файлы-фрагменты, либо, как мы описали в предыдущей статье, просмотреть файл, построить специальный индекс и затем изготавливать требуемые короткие фрагменты “на лету”, по запросу – это удобно тем, что не требует хранения большого количества мелких файлов.

В нашей предыдущей статье мы описали разработанный нами инструментарий, который можно использовать для этой цели.

Решение, предложенное нами, отлично служит нам и нашим заказчикам, однако у него есть недостаток: оно не поддерживает DRM. DRM (Digital Rights Management) – это средства защиты медиаконтента от несанкционированного доступа – просмотра, копирования и тому подобного. Если вам нужно защитить контент, и вы используете Adobe Flash, то очевидным решением для DRM является использование Flash Access – решения, предлагаемого компанией Adobe. Однако, как и многие подобные системы,  Flash Access совершенно не предназначен для использования с программами сторонних разработчиков – протокол закрыт; так что, если вы хотите использовать Adobe Flash Access, единственное, что вам остаётся – воспользоваться для подготовки контента также программным обеспечением Adobe.

Читать далее

1 2 3 4 5 6 7 8 9