Сегодня - про магию некоторых мастодонтов в медиа - Netflix и TikTok.
Итак, в период пандемии (да и раньше) подавляющее большинство пользователей с огромным энтузиазмом юзают и продолжают юзать всевозможные видео-платформы и онлайн-кинотеатры. Причины ясны: сидим дома, книги перечитаны, углы комнат изучены, скучно, а инет - вот он, зовет и манит.
Так почему же Netflix и TikTok настолько полюбились пользователям?
Естественно, это достаточно мощные продукты, которые позволяют развлекаться и самовыражаться, но если "кормить" пользователя абы-как - он расстроится и уйдет. И тут вступают в ход хитрости и "магия")
Начну пожалуй с TikTok.
Есть мнение, что человек, который говорит "Я в тик-токе пару минут посижу" пробудет там как минимум часик-полтора) И это достаточно реальная картина, сами попробуйте!
Но магия не в том "отборном контенте" платформы, а в способе и скорости ее подачи.
Контент в TikTok буквально "вываливается" на тебя.
Это создается из-за совокупности тонкостей устройства самого приложения и контента. Вот основные из них:
- видео подается в кодеках с макс сжатием
- видео раздается через мощную систему CDN
- на каждое видео есть легкая "превью"
Про сжатие в TikTok

ТикТок пользует контейнер MP4 с одним видео и аудио, в котором метаданные (описание потоков с их хар-ми) перенесены в самое начало файла (хедер) для инстантного плейбека по http. Так, при получении первых нескольких кбайт плеер может начать играть контент
Так как нет адаптивности (как например у Netflix или YouTube), плееру не кадо думать какой поток воспроизводить в текущем состоянии сети и стартовать много быстрее.
Также TikTok пользует свои плееры под каждую платформу. Их можно подкрутить как удобно, выигрывая время старта.
Сам флоу пост-обработки видео в TikTok такой:
-пользователь на телефоне жмет видео в самом распространенном кодеке H264, в котором видео сразу может быть проиграно где угодно
-на бэке оно в фоне сильно жмется в кодеки HEVC/VP8 и уже легким отдается на основную массу
Для сравнения порядков сжатия H264 и HEVC/VP8 небольшая статейка:
thebroadcastbridge.com/content/entry/…

Из нее видно, что видео прилично теряет в весе. Конечно же оно при сжатии теряет и в качестве, но в TikTok вывели середину, где вес файла минимальный, но и глаза не сильно кровоточат)
TikTok использует CDN (content delivery network) для быстрого доступа к контенту. Работает просто: при запросе к контенту видео проксируется на ноду, географически недалеко от пользователя. Второй пользователь будет смотреть это видео уже с этого сервера, миную поход в сторадж.
Для ощущения супер-быстро влетающего Вам в ленту видео, на стороне бэкенда в TikTok генерится первый кадр в виде JPEG. При запросе клиента ленты ему приходит JSON с сылками на превью, которые весят мало. При свайпе вы вначале видите именно JPEG, а уже после - подгруженное видео.
Очень важная "фича" - префетчинг видео. Если вы думаете, что первое показанное видео ТикТока грузится в момент открытия приложения - подумайте еще раз)
Первые несколько (!) видео частично (!!!) уже в вашем телефоне, готовые к проигрыванию первых нескольких секунд.
Конечно же очень влияет на качество как ты рендеришь (проигрываешь) видео. На телефонах например это делать можно software и hardware методами. В первом случае - телефон начинает декодить на CPU, что сильно бьет по батарейке и работе телефона в целом. HW декодинг намного лучше)
Также не могу пройти мимо и не осветить медиа-редактор TikTok. Оч быстрый (хотя местами очень кривоватый) редактор.
Интересный кейс с ускорением видео и аудио. В редакторе оно происходит почти мгновенно. Просто транскодить - оч долго и дорого, поэтому решение - оч элегантное)
Чтобы молниеносно ускорить медиа, нужно взять поток, пройтись в нем по семплам потока (кадрам/сегментам) и переписать внутри них timestamp-ы - временной параметр, который показывает когда на таймлайне должна быть воспроизведена та или иная часть медиа. Без перекодирования. ШИК!)
Учитывая, что на мобильном поприще особо в мощностях и возможностях не разгуляешься (относительно слабые процы, ПО от вендоров, технологические нюансы), TikTok - оч крутое приложение в технологическом плане.

PS. Контент судить не буду - это, каггрицца, на вкус и цвет)
Следующие - Netflix.

Эти ребята всегда и во всем лично для меня были референсом №1. Это можно просмотреть как на уровне обработки и доставке контента, так на просто интерфейсе их приложений.

Ссылку на их технобложек оставлю тут для любознательных:
netflixtechblog.com
Приведу пару кейсов почему ребята крутые:
- свой протокол стриминга с DRMом, адаптивом и полным фаршем и свой нативный клиент на всём, до чего можно добраться и посмотреть медиа
- контенто-ориентированный транскодинг
- свои "очеловеченные" метрики оценки качества транскодинга
Свой протокол и плеер.

Из-за войн корпораций (об этом скоро) есть оооочень много проблем и нюансов с воспроизведением контента, особенно если он должен быть зашифрован. Ну и доставка по TCP контента в мобильные сети с большими потерями - очень неприятная история.
Свой протокол инженеры из Netflix сделали из всего приятного, что предлагали уже имеющиеся HTTP протоколы для стриминга (HLS/DASH/MSS), и, естественно, сделали свои плееры под это.
Вот небольшой подкаст от русского разработчика в Netflix:
В Netflix каждая единица контента анализируется на обилие сменяемых сцен. По анализу выбирается "жирность" пресета на транскодинг. Например, "Мстители" со взрывами и погонями будут откодированы с бОльшим битрейтом, чем нежели "Прибытие" с большим кол-вом статичных сцен.
У Netflix есть VMAF - это алгоритм оценки качества видео. Ссылочка на него:
github.com/Netflix/vmaf

Смысл в том, что оценка "глазами" - очень субъективна, нужны цифры, метрики. Такие есть - SSIM, PSNR, VIF и прочее. Но для полноты картины - их нужно комбинировать.
Даже если ты знаешь, что такое эти ваши SSIM, PSNR и прочие абры-кадабры - метрики, которые они показывают, тяжеловато интерпретировать и показать людям не особо осведомленным в них. VMAF же выдает просто процент схожести референсного потока к оригиналу, используя спец модели.
Тем самым, с использованием VMAF от Netflix можно более глобально и очевиднее дать результат анализа видео.
Вот кейсы, где это очень полезно:
- на сколько хуже стало пожатое видео
- на сколько отличаются видео в H264 и VP8
- на сколько хуже транскодинг на GPU чем на CPU и т.д.
В треде я попытался рассказать о некоторых, на мой взгляд, простых, но крутых медиа-решениях и нюансах, которые и делают Нетфликс с ТикТок такими крутыми.

PS: надеюсь, было как минимум не скучно)

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Человек из IT

Человек из IT Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @itunderhood

8 Jun
Про мир IT и свое призвание в нем.
Во-первых: нужно понимать зачем тебе это всё. Очевидно, что делать что-то только ради денег - очень глупая затея.
Во-вторых: важно понимать от чего тебя прёт. Нравится делать модные кнопки - делай, кайфуй от себя, это очень важно.
В-третьих: мир IT разнообразен, пробуй, не ссы)
Я поработал в разных сферах (от тренера по спортивным бальным танцам до звукорежиссёра) и пробовал разные вещи именно в IT(от инженера связи до геймдева) и понял: не попробуешь - не поймешь. Естественно везде есть плюсы и минусы, и тут уже вопрос личных компромиссов и желаний.
Read 14 tweets
7 Jun
Ну-с приступим)
Как оно вообще в мире медиа и как лично меня затянуло на это поприще. Начну с небольшой школьной предыстории.
Началось все с телефона Siemens S65)
Это был мой первый телефон с возможностью смотреть видео и слушать музыку. И так как показать братюням мощные клипы с Linkin Park на телефоне оч хотелось - я нашел на диске Игромании какую-то программулину по конвертации видео и пошло-поехало.
Там я дотошно изучал все возможные ручки и настройки для видео и аудио, чтобы уместить на MMC карте телефона в 64МБ максимум своей муз-коллекции, но чтобы при этом картинка не разваливалась, fps не падал, а звук был приемлемый. Так начало моей страсти к медиа и было положено.
Read 22 tweets
1 Jun
Ещё один частый аргумент в пользу карьеры в IT: деньги. Ведь там деньги-деньги-деньги, а нигде больше денег нет.

Я не преуменьшаю их важность: деньги создают комфорт, лечат людей, дают безопасность и независимость. Конечно, их нужно заработать и зарабатывать.
А когда я предлагаю посмотреть в сторону, мол, там могут быть и деньги, и самореализация-удовольствие-азарт - нет, вы что, я буду тащить этот чемодан без ручки и дальше.

Хотя уже не нравится, и уже заработал, и уже скучно давным-давно. И вообще, страшно! Риск!
Это передёргивание, конечно, но в какой момент и кто сказал, что риска в жизни нет? По-моему, риск и неопределённость - это единственное, что любая жизнь гарантирует.

Да, можно купить страховку от болезни (и наверное стоит), но чураться неизвестности как дикого зверя?
Read 5 tweets
1 Jun
Сегодня поговорим про самореализацию.

Не важно, пришли вы в IT за деньгами, либо по призванию - рано или поздно вас накроет ощущение, что деньги больше не мотивируют, а делать хочется что-то интересное, получая за это признание и удовлетворение.
Интересно каждому своё, но вот механизмов самореализации, кажется, не так уж много. Мне приходит в голову реализация амбиций через построение карьеры, публичную деятельность и предпринимательство.
Под самореализацией я понимаю достижение состояния, когда вы вовлечены в жизнь, к вам прислушиваются, вы делаете не просто одну и ту же работу, а что-то важное - по крайней мере, двигаетесь к этому.

А не просто зарабатываете на жизнь.
Read 50 tweets
31 May
А знаете, почему я так категоричен про короны (и цинизм)?

Потому что завышенная самооценка (мне все должны - зарплату, офис, интересную работу) и цинизм ("мы обречены" - отличный пример, где все вот это нытьё про сложную и глупую работу) не совместимы логически.
То есть пользоваться благами индустрии мы (они) хотим, а что-то для этого делать - нет.

Работать в лучших компаниях - да, а проходить "тупые" собеседования - нет.

Рубить бабло почти за просто так, но считать, что это ты такой крутой.
Фактически, не создавать ничего нового, не идти на риск, не изучать что-то за пределами уютного Хабра - но считать, что разработчикам все обязаны.

Так вот, это полная дурь. Вы либо крестик снимите (и перестаньте считать себя богами), либо трусы наденьте (и примите свою роль).
Read 4 tweets
31 May
Для начала про деньги.

Когда я только начал работать разработчиком, в 2007 году, денег в айтишке не было. Программист или любой другой айтишник были примерно на уровне слесаря - и по заработку, и по влиянию на бизнес. Из плюшек были туалет на этаже и курилка под лестницей.
Я торговал железками на радиорынке, был эникейщиком, и денег, как и перспектив, не видел. В некотором смысле мне повезло войти в IT, когда это ещё не было популярно.

В первой аутстаффинговой конторе, продававшей нашу команду за рубеж, платили немного, 5 тысяч рублей за полдня.
Я ушёл через год, потому что мне надоел веб. Но этот опыт приоткрыл для меня двери индустрии.

Мне хотелось делать что-то более интересное, и я почти устроился плюсовиком в местную компанию, автоматизирующую погрузочные горки на железной дороге. Но с ними не сложилось.
Read 48 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(