Разработка Windows 8 приложений глазами WPF/Silverlight программиста
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем едят видеопотоки?
1. Особенности передачи и обработки видео данных. Приправа из кодеков или с чем едят видеопотоки?
Дмитрий Валуев
МаксетЛайн
http://www.feelinhome.ru/
9-я конференция .NETразработчиков
12 октября 2014
dotnetconf.ru
2. 2
Решаемые задачи
Видеонаблюдение и видеофиксация
Системы видеонаблюдения, контент для взрослых, торговля
Стриминг и рестриминг(потоковое вещание и ретрансляция).
Транскодинг, Телевидение, IP телевидение
Телеконференции
Связь в реальном времени
Видеохостинг
Хостинг фильмов, контент для взрослых
Развитие каналов передачи данных
Видеоаналитика
Распознавания лиц, номеров автомобилей и.т.д., штрафы
БПЛА
Видеонаблюдение в реальном времени.
Наблюдение с телефонов и планшетов в реальном времени.
4. 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. 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. 6
VLC media player
VLC —бесплатныйисвободныйкросс-платформенныймедиаплееримедиаплатформас открытым исходным кодом.
http://www.videolan.org/vlc/
Может:
•Играть
•Писать
•Рестримить
•Транскодировать
•Менять кодек
А в чем подвох?
7. 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. 8
FluorineFx
.NET Транскодинг и рестриминг
Бесплатная, с открытым кодом.
http://www.fluorinefx.com/
9. 9
Чем играть?
•VLC
•JWplayerhttp://www.jwplayer.com/about-jwplayer/
•Flowplayer
https://flowplayer.org/
•Множествофлешплееров. Adobe Flash (ранее Macromedia Flash)
Когда будет HTML5плеер?
10. 10
Видеокамеры
•Аналоговые-ТВЛ
•IPкамеры–разрешение(мегапиксели).
•WEBкамеры–разрешение(мегапиксели).
Битрейт (ширина потока)
Фокусное расстояние
HDR
Выдержка
Диафрагма
Физический размер матрицы
Работа камеры на сером IP
12. 12
Рынок
Условно четыре группы:
«Железные» решения
•Cisco VSM
•Huawei IMS
Десятки тысяч потоков
Коммерческие продукты
•Microsoft (Microsoft Lync Server 2013)
•Pelco (schneider electric)
•Flussonic(erlyvideo) –Erlang
Тысячи потоков
Opensource
•Wowza-Java
До 40 потоков
“Китайские”видеорегистраторы
До 16 потоков
13. 13
Спасибо за внимание
Дмитрий Валуев
Группа компаний РОН-Телеком
valuev@rontel.ru