Старперы наносят хипстерам ответный удар: SDI vs SMPTE-2110

May 12, 2024 17:45


Есть в телевидении такая тема, как SDI. Это коаксиальный кабель, по которому передается видео на частотах до 10 гигабит. 4K в сыром несжатом виде, по 4 байта на пиксель - как нехрен делать. Очень удобно работает: воткнул провод и сразу всё видно (конечно же нет, но об этом попозже).

Но мир требует перехода на IP, а с ним беда: он в десятки раз дешевле, что недопустимо для старых компаний. Значит что надо сделать? Надо придумать такой типа-IP протокол, в который нельзя влезть без FPGA плат, обеспечивающих синхронный риалтаймовый ethernet на скоростях порядка 10 гигабит в секунду.


SDI

В чём вообще с ним проблема и зачем от него отказываться?

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

Причина вторая (следствие первой): он дорогой. Плата, передающая 10 гигабит будет стоить от 700 до 4000 долларов. Аналогичная плата ethernet будет стоить от 20 долларов.

Причина третья: он очень, очень старый и негибкий. В этом его удобство, потому что худо бедно уже все друг к другу притерлись (нет, всё подглючивает по мелочам, особенно на переходных процессах), но только подумайте: звук передается во время вертикальной паузы. Т.е. на дворе уже прошла четверть 21 века, нам уже прогулы ставят за космические межзвездные полеты, а мы делаем цифровые системы, рассчитывающие на то, что лучу в ЭЛТ нужны миллисекунды на переток заряда для VBI (vertical blanking interface).

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

Но есть у SDI и ещё плюсы:

  1. По нему нельзя взломать, а для телевизионщиков, не имеющих возможности нанимать квалифицированные сетевые кадры, это очень существенно. Правда это никак не спасает их от взломов
  2. Он синхронный и это очень облегчает работу. Более того: это дает возможность сохранять рабочие места для интересного пласта людей, которые написать скрипт под линукс не могут, а прошивку на FPGA собрать могут. Конечно же она будет без тестов, написанная не в команде и вообще паршивой, но она будет.

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

При этом надо понимать, что существует очень и очень большой вопрос: а нужна ли будет студия за 5 млн баксов через 10 лет или её заменит генеративная нейросеть? Конечно не заменит, но очень здорово изменит.

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

Web streaming

А что там у нового поколения? Штурмуются сотни гигабит в секунду с одного сервера, под сотню каналов транскодирования на одном сервере, UGC. А это всё возможно благодаря кратному удешевлению стоимости создания сигнала, а SDI именно там.

Там же возникла технология NDI, суть которой в следующем: давайте возьмем сырое видео и сожмем его, потеряв, например, 5% качества. Это полная фигня, учитывая что запаса по качеству хватает, а дальше на тракте телевизионщики всё равно своим DVB испоганят всё очень сильно.

Это сжатие позволит снизить битрейты с 1-3 гигабит примерно в 10 раз и сделает возможным работу по бытовым гигабитным линкам. При этом весь видеотракт рассчитан на передачу кадров, буферизацию, задержки и всё ок, так все живут.

За этим подходом будущее, но он убивает старую индустрию, значит так делать нельзя, надо по-другому.

SMPTE 2110

Старые хитрожопые засранцы не могли просто так пройти мимо такого и решили сделать удар под дых тем, кто решил сваливать туда, где всё мокрее и задорнее торчит всё дешевле и делается на надежном commodity железе.

Стандарт SMPTE 2110 на вид начинается очень адекватно: давайте засунем сырое видео в RTP кадры и будем его слать. С той стороны сети примем и оно будет работать.

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

  1. RTP взят без RTCP. Т.е. не существует механизма привязки RTP таймстемпа к UTC, а значит нельзя связать таймстемпы с аудио и видео потоков, идущих даже от одного источника. Почему? Пойдем дальше.
  2. В стандарте неоднократно упомянут протокол PTP, но без описания: зачем и как им пользоваться. Просто он есть и всё тут, а зачем - непонятно. А я разобрался и восхищен этим уровнем подлости.
  3. Дело в том, что в этом протоколе таймстемпы должны браться не из пакетов данных, а из реального времени(!). Чтобы маркировать кадры реальным временем, нужно чтобы это время ставила сетевая карта, которая сконфигурировалась протоколом PTP
  4. Тут то и раскрывается первый обман: это не IP протокол, а Ethernet. Оно в принципе не работает без сетевой карты, которая конфигурируется протоколом, который броадкастом разлетается по сегменту. Эти люди умудрились вместо IP сделать просто другой кабель!!!
  5. RTP таймстемпы вообще никак не работают, не используются и нужны только чтобы понять, что начался следующий кадр.
  6. Безопасности в сети нет и не может быть патологически. Всё это живет только в защищенном L2 сегменте
  7. А теперь подходим к сладкому: тот, кто рассылает пакеты на скорости под 100 тыс пакетов в секунду, должен очень точно выдерживать тайминг между ними, чтобы всё работало. Всё это специально проектировалось так, чтобы нельзя было делать это из линукса, а надо было отгружать в FPGA плату и слать из неё
  8. На раздачу есть милые прелести: после почти 10 лет жизни стандарта, поддержки его пиксельформата нет в ffmpeg (как и вообще формата от SDI), в отличие от NDI, который использует стандартный v210

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

На выходе получаем 10-гигабитную сетевую карту за $2000, что дешевле чем Aja Kone, но всё ещё в 100 раз дороже 10G SFP.

Это хорошая иллюстрация тому, как опасно садиться в хвост развития вражеской индустрии и делать всё по чужим стандартам. Ну а мы в Flussonic как обычно будем налаживать мосты между мирами и делать возможным то, что планировать сделать нельзя.
Previous post
Up