devpoint2 video in internet
TRANSCRIPT
![Page 2: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/2.jpg)
Требования к видео
![Page 3: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/3.jpg)
Требования к видео
•Получше качество
![Page 4: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/4.jpg)
Требования к видео
•Получше качество
•Пониже битрейт
![Page 5: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/5.jpg)
Требования к видео
•Получше качество
•Пониже битрейт
•Поменьше задержка от прямого эфира
![Page 6: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/6.jpg)
Выберите два пункта?
![Page 7: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/7.jpg)
Нет, надо все три
![Page 8: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/8.jpg)
Как уменьшить битрейт, повысив качество?
![Page 9: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/9.jpg)
Улучшение качества и снижение битрейта —
вопрос к кодекам
![Page 10: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/10.jpg)
Обратить внимание на:
•H.264 — MPEG-LA. Платный, с внятной схемой лицензирования.
•VP8 — Google. Обещают свободу от патентов.
![Page 11: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/11.jpg)
Как работает видеокодек?
![Page 12: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/12.jpg)
25 раз в секунду захватывается сырое
изображение с матрицы
![Page 13: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/13.jpg)
![Page 14: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/14.jpg)
![Page 15: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/15.jpg)
![Page 16: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/16.jpg)
![Page 17: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/17.jpg)
![Page 18: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/18.jpg)
1 секунда из жизни эмигранта занимает 9 MB
сырых кадров
![Page 19: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/19.jpg)
В сжатом виде 20 KB
![Page 20: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/20.jpg)
Видео разрезается на GOP-ы
![Page 21: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/21.jpg)
GOP — Group Of Pictures
![Page 22: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/22.jpg)
В начале GOP-а идет I-Frame
![Page 23: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/23.jpg)
I-Frame — по сути JPEG из сырого кадра
![Page 24: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/24.jpg)
За ним идут P-Frame
![Page 25: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/25.jpg)
Основная магия сжатия в Motion Vector
![Page 26: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/26.jpg)
![Page 27: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/27.jpg)
CPU тратится на вычисление движений в
кадре
![Page 28: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/28.jpg)
Нет возможности ускорить аппаратно
![Page 29: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/29.jpg)
Размер кадра снижается с 230KB вплоть до 35 байт
![Page 30: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/30.jpg)
Невозможно перемотать на произвольный кадр
![Page 31: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/31.jpg)
Проблема контейнеров
•Либо потоковая запись: flv
•Либо перемотка в файле: mp4
![Page 32: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/32.jpg)
После записи потока требуется постпроцессинг
![Page 33: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/33.jpg)
Оптимальный вариант: паковать в mp4
![Page 34: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/34.jpg)
Уменьшение каждого кадра: конфиг декодера
![Page 35: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/35.jpg)
В FLV и VP6 дублирование достигает 25% от кадра
![Page 36: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/36.jpg)
В H.264 это исправлено, вынесением наружу
![Page 37: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/37.jpg)
Поток нельзя воспроизвести без конфига декодера
![Page 38: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/38.jpg)
Мультибитрейт
![Page 39: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/39.jpg)
Один файл/поток кодируется несколько раз
![Page 40: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/40.jpg)
Для деградации потока надо:
•Что бы совпадали конфиги декодеров у видео разного качества
•Дождаться I-Frame на видеопотоке нужного качества
•Переключить клиента на щадящий битрейт
•Молиться, что бы видеопотоки были синхронизированы
•А как поднять обратно?
![Page 41: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/41.jpg)
Есть изыскания по однократному сжатию с
мультибитрейтом
![Page 42: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/42.jpg)
Как же уменьшать задержку?
![Page 43: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/43.jpg)
Источники задержки
•Задержка кодирования
•Задержка транспорта
•Буфер у клиента
•Декодирование
![Page 44: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/44.jpg)
libx264 умеет отдавать кодированные
кадры через 30 мс
![Page 45: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/45.jpg)
Можно играть в игры через видеопоток
![Page 46: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/46.jpg)
В ближайшее время будет использоваться на
практике
![Page 47: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/47.jpg)
Пытаются передавать видео по UDP вместо TCP
![Page 48: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/48.jpg)
Голова поворачивается, уши остаются
![Page 49: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/49.jpg)
Проблема не-TCP каналов:чем замещать нехватающую информацию?
![Page 50: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/50.jpg)
Работающая практика:
•Звук замещать тишиной
•Видео предыдущим кадром, если есть время на пережатие
![Page 51: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/51.jpg)
Хочется иметь видеокодек,
проставляющий QoS метки пакетам
![Page 52: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/52.jpg)
Транспорт в видеотелефонах должен
был бы уметь перезапрашивать кадры
по UDP
![Page 53: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/53.jpg)
Мало кто умеет
![Page 54: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/54.jpg)
Плотность информации в видеопотоке
диктует выбор TCP
![Page 55: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/55.jpg)
Каким транспортом доставлять?
![Page 56: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/56.jpg)
Файлы
•Самый надежный и простой транспорт
•Нет отчета о доставке и просмотре
•Большая задержка
•Apple HTTP Live Streaming — очень плохой протокол
•Microsoft Smooth Streaming — годный протокол
![Page 57: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/57.jpg)
MPEG-TS
•Идет со спутника
•Работает без IP сетей
•Может в себе нести что угодно
•Огромные издержки на контейнер: до 25%
•Поддерживает мультикаст
•Используется для IP-TV из-за мультикаста
![Page 58: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/58.jpg)
RTSP
•Близок к SIP-у (тот же транспорт для контента)
•По сути остался для мобильников
•Ютуб раздает этим протоколом видео на мобильники
•Отмирает
![Page 59: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/59.jpg)
RTMP•Дизайн протокола по принципу надстройки курятника
•Закрытый
•Поддерживается флешем
•Основной способ доставить прямую трансляцию в интернете
•Есть наработки по Peer-to-peer: RTMFP
•RTMFP уже взломан, в течении года расползется код
![Page 60: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/60.jpg)
HTML5 <video>
![Page 61: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/61.jpg)
Разброд и шатание
![Page 62: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/62.jpg)
Реалии тега <video>•Опера и Firefox не хотят покупать H.264
•Apple не видит смысла в VP8
•Гугл пропихивает всем VP8, доставляющийся по WEBM (Matroska)
•Microsoft готов согласиться со всеми
•VP8 ощутимо хуже H.264
•Остальной IT мир только в процессе миграции на H.264
•Возможно получится два основных кодека: общий и «для веба»
![Page 63: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/63.jpg)
Что творится на клиенте?
![Page 64: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/64.jpg)
Буферизация видео
•Сглаживает неравномерность скорости сети
•Увеличивает задержку
•Непросто подобрать размер буфера
•Хорошее правило: буфер размером в GOP
![Page 65: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/65.jpg)
Декодирование
•Пожалуй, самая развитая часть видеотракта
•Аппаратная поддержка
•Хорошие результаты даже на маломощных телефонах
![Page 66: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/66.jpg)
Что же использовать сегодня
•Adobe Flash Media Live Encoder или Wirecast для захвата видео в интерактивном режиме
•VLC для транскодирования
•RTMP сервер
•Флеш для доставки пользователю
•HTTP Live Streaming, если есть пользователи с iPad-ами
•RTSP на мобильные телефоны
![Page 67: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/67.jpg)
Проблемы при трансляции
•Очень сложно выбрать нужный пользователю битрейт
•Сильные флукуации качества канала
•На сервере сложно узнать, видно видео или нет
•Корпоративные прокси мешают RTMP/RTSP
•Комфорт от просмотра живой трансляции гарантированно ниже, чем от скачанных с торрентов фильмов
![Page 68: Devpoint2 video in internet](https://reader036.vdocuments.net/reader036/viewer/2022062707/557ed996d8b42a331d8b46bd/html5/thumbnails/68.jpg)
Выводы
•Видеокодеки подошли к порогу оптимизируемости живым человеком
•Впереди основательная проработка инфраструктуры: мультибитрейт, QoS и т.п.
•С транспортами видео вавилонское столпотворение: будут развиваться HTTP способы доставки
•Пока что целиковые файлы или поток по RTMP + HLS