🔥

Тред #4


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

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

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

Примеров таких - очень много. Медиа-инженеров они тоже не обошли стороной. Начну с одной относительно недавней истории, в которой я возненавидел Google и Apple за неумение договариваться. Она связана с риалтайм-стримингом через WebRTC в браузерах (ссылка webrtc.org)

Вкратцие про WebRTC - это peer-to-peer технология, которая позволяет в ВЕБе без Flash-a (господи прости) созваниваться друг с другом по видеосвязи, писать в чатиках и пересылать друг другу мемесы в рамках одной сессии без установки дополнительного софта и минуя сервера.

Связь двух юзеров происходит примерно след образом: -юзеры идут на хост для установки соединения между собой в виртуальной комнате для сигналинга -если соединение ОК - юзеры обмениваются возможностью передавать и принимать медиа-потоки -если потоки всеми поддерживаются - бинго!)

Для описания поддерживаемых медиа-потоков используется SDP, в котором указан: кодек, индекс потока, частота дискретизации и доп. инфо. Например, чтобы обменяться аудио в OPUS кодеке будет примерно такая строка: a=rtpmap:111 opus/48000/2 109-индекс,opus-кодек,48к-частота,2-стерео

И если с аудио все более-менее нормально, то вот с видео ты будешь делать танцы с бубном... жаркие танцы: - индексы в Сафари и Хроме на стримы отличаются - "вездесущий" H264 кодируется по разному В итоге вы друг друга не увидите, ибо декодеры в браузере просто не заведутся)

Разработчики из Zoom/Mail Group посмотрели на это вот все и просто сделали свои протоколы на основе WebRTC, естественно, не забыв про свои плееры, которые помогают избежать всей этой нездоровой движухи) Более подробно про опыт ОК с видеозвонками: youtu.be/2z4XO3fyn3U

Еще одна боль связана с HTTP стримингом и DRM. Немного информации для понимания дела) Есть основные виды HTTP стриминга: -HLS(Apple) -MSS (Microsoft) -DAHS (MPEG) Есть основные виды DRM для HTTP стриминга: -FairPlay(Apple) -PlayReady(Microsoft) -Widevine(Goolge)

DRM (en.wikipedia.org/wiki/Digital_r…) - штука, без которой в OTT нереально выжить. Именно благодаря системам DRM в стриминге вы можете смотреть Джентельменов Гая Ричи у себя дома на телевизоре через какой-нить Netflix или Кинопоиск, ибо DRM позволяет защитить контент от "слива" в сеть.

Как оно примерно работает: -контент сегментируется и шифруется уникальным ключом -в манифест контента (описание HTTP стрима) записывается payload для получения ключа дешифровки -при плейбеке контента, плеер идет за ключом уникального контента и, после верификации, получает его

Определенный вид стриминга может уметь только в определенный DRMи не уметь в другой. Например, MSS может только в PlayReady, но в Widevine он не умеет. Также, для разных типов устройств есть свои пересечения поддерживаемых типов HTTP стриминга и типов DRMa. Чувствуете проблему?)

В итоге, чтобы ОТТ сервис мог показать контент, который по договору правообладателя должен быть зашифрованный, на iOS, Samsung TV, XBox и вооон том андройд-свистке, нужно иметь достаточно приличный перечень по разному хранящегося контента. PS. И не факт что он еще заработает))

Кстати, относительно недавно Huawei решил накинуть на вентилятор - и запилил свой DRM. Естественно, радости для ОТТ компаний и инженеров в частности не прибавилось) Ссылка на инфу: medium.com/huawei-develop…

Сам зашифровать как тебе нужно ты не сможешь, так как: -есть добрый перечень видеоплееров, с которыми твое лихое шифрование не будет работать -есть правообладатель, который на твое "мамой клянусь, мое шифрование не взломать" просто не даст тебе показывать кинчик... ну или суды)

Есть конечно решения, которые делают весь зоопарк шифрованного контента поменьше. Например, хранить контент, зашифрованный набором ключей разных вендоров DRM и раздавать только разные манифесты на нужные плееры, но работает это, особенно со старыми устройствами, иногда никак)

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

Для понимания боли приведу такой факт. В 2014 году бахнул кризис. Люди побежали сметать все, что только можно в магазинах, в том числе и SmartTV. Чтобы вы понимали - смарты очень "тупенькие" на железо. Ну и 2014 год говорит о том, что телеки много чего из современного не могут)

Вопрос - сколько раз в год/два/пять вы меняете телевизор? Думаю ответ - "лол-што?") В России телевизор если меняют раз в 10 лет - это уже счастье для производителей! У Самсунга, кстати, если телевизору больше 5 лет, то его поддержка прекращается)

"А вот если бы был какой-то универсальный вид стриминга с DRM, аккредитованным для правообладателей..." - влажные мечты думаю если не каждого, то почти каждого инженера, так или иначе связанного с ОТТ. Кстати, Netflix решили эту проблему через свой протокол и свои плееры)

Кстати, есть немалое такое "ANTI-DRM" движение, которое против этого всего. Основные доводы: - даже аккредитованный DRM можно сломать (из недавнего: krebsonsecurity.com/2020/10/google…) - DRM усложняет жизнь и пользователям, и правообладателям, и артистам. - скринкапчуринг?)))

Мое мнение по этому всему следующее: Думаю, если бы люди из разных корпораций работали бы над одной и той же смежной проблемой/фичей в кооперативе и не бодались друг с другом - жизнь многих была бы намного проще и веселее. Каггрицца "Make love, not war"✌️