Особенности передачи и обработки видео данных....
TRANSCRIPT
Особенности передачи и обработки видео данных.Приправа из кодеков или с чем едят видеопотоки?
Дмитрий Валуев
Максет Лайнhttp://www.feelinhome.ru/
9-я конференция .NET разработчиков
12 октября 2014
dotnetconf.ru
2
Решаемые задачи Видеонаблюдение и видеофиксация
Системы видеонаблюдения, контент для взрослых, торговля
Стриминг и рестриминг (потоковое вещание и ретрансляция).
Транскодинг, Телевидение, IP телевидение
Телеконференции
Связь в реальном времени
Видеохостинг
Хостинг фильмов, контент для взрослых
Развитие каналов передачи данных
Видеоаналитика
Распознавания лиц, номеров автомобилей и.т.д., штрафы
БПЛА
Видеонаблюдение в реальном времени.
Наблюдение с телефонов и планшетов в реальном времени.
3
Ликбез Кодеки:
• MJPEG (Motion JPEG)
• H263
• H264
• H265
Расширение файла (URL потока)
• Может быть каким угодно. Не верь своим глазам Нео!
Контейнеры:
Контейнеры файлов:
• Mkv
• Avi
• MPEG
Контейнеры потоков:
• RTSP (UDP, TCP/IP) multicast broadcast unicast
• RTMP (TCP/IP)
• HLS (HTTP)
• HDS (HTTP)
4
Кодеки
MJPEG• Покадровый метод видеосжатия, основной особенностью которого является
Сжатие каждого отдельного кадра видеопотока с помощью алгоритма сжатия
изображений JPEG.
• При сжатии методом MJPG межкадровая разница не учитывается.
H263• Cтандарт сжатия видео, предназначенный для передачи видео. Применяется в
программном обеспечении для видеоконференций.
• Используемые алгоритмы охраняются патентами.
• ITU-T - Международный консультационный комитет по телефонии и телеграфии
H264• Жадность не порок?
• Cтандарт сжатия видео, предназначенный для передачи видео.
• Встроен в «железо» большинства устройств.
• Используемые алгоритмы охраняются патентами:
• Microsoft, Fujitsu, Philips, Apple, Samsung, Cisco, Toshiba, Panasonic
• ITU-T
• Стандарт ITU-T H.264 и ISO/IEC MPEG-4 Part 10
H265- Видишь суслика?
- Нет.
- А он есть!
5
Видео потоки RTSP (UDP, TCP/IP) multicast broadcast unicast
• Потоковый протокол реального времени (Real Time Streaming Protocol, RTSP), разработанный IETF в 1998 году и описанный в RFC 2326, является прикладным протоколом, предназначенным для использования в системах, работающих с мультимедиа данными, и позволяющий клиенту удалённо управлять потоком данных с сервера, предоставляя возможность выполнения команд, таких как «Старт», «Стоп», а также доступа по времени к файлам, расположенным на сервере.
• RTP
• RTCP
• Чем играть?
RTMP
(TCP/IP)
• Проприетарный протокол потоковой передачи данных, в основном используется для передачи потокового видео и аудиопотоков через интернет.
• Серверная часть реализована авторами протокола Adobe Inc, во Flash Media Server,
• Существуют недорогие аналоги протокола, например, Wowza Media Server. Модули для сервера должны быть написаны на Java.
• Только flash?
HLS (HTTP) - HTTP Live Streaming
• HTTP, Создан Apple Inc. Является частью QuickTime, Safari, OS X, and iOS software, есть аппаратнаяподдержка.
HDS (HTTP)
• Задержка на буфер.
• Google?
6
VLC media player
VLC — бесплатный и свободный кросс-платформенный медиаплеер имедиаплатформа с открытым исходным кодом.
http://www.videolan.org/vlc/
Может:
• Играть
• Писать
• Рестримить
• Транскодировать
• Менять кодек
А в чем подвох?
7
FFmpeg Набор свободных библиотек с открытым исходным кодом, которые позволяют записывать,
конвертировать и передавать цифровые аудио- и видеозаписи в различных форматах.
ffmpeg состоит из следующих компонентов:
• ffmpeg — утилита командной строки для конвертирования видео файла из одного формата в другой. С её помощью можно также захватывать видео в реальном времени с TV-карты.
• ffserver — HTTP- (RTSP в настоящее время разрабатывается) потоковый сервер для видео- или радиовещания.
• ffplay — простой медиаплеер, основанный на SDL и библиотеках FFmpeg.
• libavcodec — библиотека со всеми аудио/видеокодеками. Большинство кодеков были разработаны «с нуля» для обеспечения наилучшей производительности.
• libavformat — библиотека с мультиплексорами и демультиплексорами для различных аудио- и видеоформатов.
• libavutil — вспомогательная библиотека со стандартными общими подпрограммами для различных компонентов ffmpeg. Включает Adler-32, CRC, MD5, SHA1, LZO-декомпрессор, Base64-кодер/декодер, DES-шифровальщик/расшифровщик, RC4-шифровальщик/расшифровщик и AES-шифровальщик/расшифровщик.
• libpostproc — библиотека стандартных подпрограмм обработки видео.
• libswscale — библиотека для масштабирования видео.
• libavfilter — замена vhook, которая позволяет изменять видеопоток между декодером и кодером «на лету».
8
FluorineFx
.NET Транскодинг и рестриминг
Бесплатная, с открытым кодом.
http://www.fluorinefx.com/
9
Чем играть?
• VLC
• JWplayer
http://www.jwplayer.com/about-jwplayer/
• Flowplayer
https://flowplayer.org/
• Множество флеш плееров. Adobe Flash (ранее Macromedia Flash)
Когда будет HTML5 плеер?
10
Видеокамеры
• Аналоговые -ТВЛ
• IP камеры – разрешение(мегапиксели).
• WEB камеры – разрешение(мегапиксели).
Битрейт (ширина потока)
Фокусное расстояние
HDR
Выдержка
Диафрагма
Физический размер матрицы
Работа камеры на сером IP
11
Звук
• ACC
• G711
• G921
12
Рынок
Условно четыре группы:«Железные» решения
• Cisco VSM
• Huawei IMS
Десятки тысяч потоков
Коммерческие продукты
• Microsoft (Microsoft Lync Server 2013)
• Pelco (schneider electric)
• Flussonic (erlyvideo) – Erlang
Тысячи потоков
Opensource
• Wowza - Java
До 40 потоков
“Китайские” видеорегистраторы
До 16 потоков