Перейти к содержимому
Калькуляторы

RTP для передачи мультикаст

Последнее время заметил, что операторы стали все чаще использовать RTP over UDP для передачи мультикаста. Какие преимущества дает RTP перед "чистым" UDP?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вроде бы можно добавить избыточное кодирование из коробки, только это никто не делает.

реально какую библиотеку готовую прицепить было в софте проще,такую и прицепили

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

RTP имеет последовательность пакетов, UDP нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

11 минут назад, LostSoul сказал:

вроде бы можно добавить избыточное кодирование из коробки, только это никто не делает.

реально какую библиотеку готовую прицепить было в софте проще,такую и прицепили

 

А в теории, переход на RTP может повысить качество мультика? Или опять же от железа зависит (энкодеров)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

без теории известно

что если навесить на каждый маршрутизатор амулет

11-500x500.jpg

то он не только пакеты перестает терять

но еще и денег по концу месяца приносит

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

С RTP можно собирать довольно красивые схемки. Как уже сказали выше, пакеты пронумерованы, а это дает следующие преимущества:

Можно видеть, сколько именно пакетов потерялось в потоке, и потерялось ли вообще, возможно пакеты просто перепутались местами.

Также можно пускать один и тот же поток двумя, тремя.. путями и в точки приёма собирать один поток без потерь. Дубликаты будут отбрасываться.

В общем если хочется сделать красиво, и улучшить качество сервиса то лучше юзать RTP.

С UDP всегда будет тяп ляп, даже если юзать железки для резервирования типа DCM9902, то если один канал грохнется, на второй переключение произойдет но ошибок не избежать.

 

На практике делал не маленький проект и всё было сделано на UDP.

Потом было сильно обидно но уже поздно что-то менять) 

Изменено пользователем Sergey R.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

в mpegts есть все тоже самое что есть в rtp

так что ничего кроме оверхеда к mpegts - rtp не дает

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не согласен, в mpegts есть счётчик который обнуляется.

Ну вижу я сс еррор, это значит счётчик сбился.

А почему? Пакеты местами поменялись? Потерялись? А сколько их потерялось?

Какая железка имея на входе два потока в голом udp/mpegts сможет бесшовно прыгнуть с потока на поток? У кого есть DCM попробуйте)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вам в секту тех кто верит амулеты(выше картинку дал)

а если на проводной или оптический шнурок повесить подкову которая висела год на стене плача

то данные начинают передаваться по нему, не хуже чем поток с fec

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот они возможности голого UDP/MPEGTS

Мало информативно всё и нормального бесшовного склеивания не видать.

Вот в моем проекте было безумие когда этот голый UDP гонялся от Парижа до Владивостока.

Ни нормального резервирования не защиты от потерь сделать было не возможно.

Нужно с нуля всё переделывать. Если бы сразу знать всё это...

 

CC errs: The number of times a discontinuity has been detected for all the MPEG-2 Transport Stream continuity counters. This value is the total number of discontinuities detected for all PIDs present. Note that this value does NOT represent the number of MPEG-2 TS packets lost because any continuity counter mismatch detected for an IP-frame will increase CC errs by one. CC errors are serious as they will in practice usually result in visual video artifacts (‘blocking’) if occurring on the video PIDs. CC errors can be due to an erroneous input signal to the streaming head-end (e.g. from satellite rain fading or changes in the uplink). Alternatively, CC errors can arise from IP packets being dropped in the network.

 

 

 

А на самом деле всё от задач зависит. Ест-но пользователям такого нет смысла включать.

Я делал мультикаст для IX. А там без этого ппц вышел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Так. Еще дополню важный момент. С помощью RTP делается реодеринг. Например, пакеты перепутались местами, в сетях MPLS это не редкость. Так вот если клиентская STB умеет реодеринг, то она соберет пакеты и картинка не рассыпится.

Короче я бы рекомендовал использовать RTP как у магистралов, без RTP им как следует транспорт не организовать: гоню поток из Парижа во Владивосток - по пути куча транзита который лагает. Пускаю потоки одинаковые через несколько транзитов и во Владике склеиваю и получаю идеал.

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

плохо когда инженеры пытаются быть программистами....

реордеринг в rtp такой же как и в mpegts

разницы никакой

можно пофантазировать о том что какой то горе прогер взял готовую rtp либу  в которой по умолчанию на входе есть джиттер

но так можно такой же джиттер поставить и на mpegts, если не криворукий прогер писал мидлваре для приставки 

или плеер, смотря чем играется

и получить тоже самое

 

так что разницы вообще нет и я бы не стал надеяться что в какой то там приставке более умная rtp реализация

 

а так вообщем для инженеров уже есть srt, тесты которого уже делали в теме dvb

все работает как надо на целых mpts потоках а не только на отдельных spts

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На mpegts реализовать ничего нельзя из того  что может RTP.

Есть счётчик cc counter в mpegts , который меняется от 0 до 16. Когда он сбоит, как алгоритм должен выглядеть чтобы получить реодеринг?

Он обнуляется в секунду не по одному десятку раз.

Как потоки пустить двумя путями и склеить по счетчику?

SRT да есть. Но на практике какое железо мы будем использовать для него?

И тут речь не о тестах а о продакшн среде) Железки cisco, harmonic и прочее.

И тот же FEC только с RTP работает. И FEC бывает как один поток с избыточностью так и много копий потоков без избыточности которые склеиваются. Всё это на RTP.

 

Кстати если есть идеи и силы то кликай :-D

Рук не хватает катастрофически.

https://hh.ru/vacancy/30810201

 

 

 

 

 

 

 

 

Правильнее сказать не идеи а силы. Всё уже изобретено за нас, осталось реализовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

если бы вы имели представление о том как теряются пакеты и о реальном реордеринге

то не говорили бы то вам сс=15 не хватит

вообщем не вам мне рассказывать как работает iptv

 

касательно ссылки это какая то бомжатьня - от 120 000 до 150 000 руб

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Согласен про бомжатину. Замену мне и ищут. Давно ищут. (но могут найтись люди кто хотят развития)

А так ты прав только в плане SRT.

mpetgs/udp в плане коррекции ошибок может почти нечего. Ничего он не может.

RTP как чуть больший оверхед может куда больше, может всё. Почти всё. Но джиттер этой штукой не компенсируешь.

Идеал что-то вроде SRT, вроде как и джиттер может компенсировать но практик использования нет.

Все на практике испытано. Если ты сам для себя сервис делаешь всё хорошо, тебе нравиться. А если для бизнеса то далеко не уедешь. Рассказывать как работает iptv придется мегафонам билайнам и мтс ам. У которых мониторинг на каждом шагу.  А они за день порвут. Программистов нет, техподдержки нет. Всё-таки сервис узко специализированный, саппорта и инженеры на дороге не валяются. 

 

Но всё же ТС интересовали отличия RTP от голову UDP. Тут всё очевидно. Больше не меньше. Копеечный оверхед на современные каналы не влияет и может решить все проблемы кроме джиттера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 25.04.2019 в 11:30, fox_m сказал:

А в теории, переход на RTP может повысить качество мультика? Или опять же от железа зависит (энкодеров)?

Да, именно от железа энкодеров. Или даже от их ПО.

Если энкодер умеет то круто.

Опенсорс тоже это умеет https://code.videolan.org/videolan/multicat можно почитать

 

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

 

RTP тут на помощь придет.

И в плане клиентов придет, уже и до клиентов смотрю во все районы CWDM/DWDM пошли от разных операторов, один резервирует другого.

 

А на UDP практика есть, вон вакансию кликать не хотят все разбежались)

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 25.04.2019 в 11:28, Butch3r сказал:

RTP имеет последовательность пакетов, UDP нет.

Послеловательность в mpeg2-ts есть.

 

 

10 часов назад, Sergey R. сказал:

Можно видеть, сколько именно пакетов потерялось в потоке, и потерялось ли вообще, возможно пакеты просто перепутались местами.

Также можно пускать один и тот же поток двумя, тремя.. путями и в точки приёма собирать один поток без потерь. Дубликаты будут отбрасываться.

В общем если хочется сделать красиво, и улучшить качество сервиса то лучше юзать RTP.

 

5 часов назад, Sergey R. сказал:

С помощью RTP делается реодеринг. Например, пакеты перепутались местами, в сетях MPLS это не редкость. Так вот если клиентская STB умеет реодеринг, то она соберет пакеты и картинка не рассыпится.

 

4 часа назад, Sergey R. сказал:

Есть счётчик cc counter в mpegts , который меняется от 0 до 16. Когда он сбоит, как алгоритм должен выглядеть чтобы получить реодеринг?

Он обнуляется в секунду не по одному десятку раз.

Как потоки пустить двумя путями и склеить по счетчику?

RTP - фап-фап-фап.

Ты сам лично видел софт который умеет и делает реаордеринг на rtp?

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

 

4 часа назад, Sergey R. сказал:

Ко мне с таким уже приставали какие то хрюки, но я считаю что инженегром-эксплуатантом бесперспективно вообще :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Иван, про софт, да видел и юзал. Точнее не совсем софт а cisco dcm9902 и ресиверы гармоник.

И вот эта штучка думаю тебе знакомая умеет разбивать на две копии и склеивать наверняка с реодером. https://code.videolan.org/videolan/multicat Но её не юзал.

 

В mpeg-ts последовательность ввиде счётчика, если я не прав поправь. Склеивать и делать реодеринг по счётчику который обнуляется по 100 раз за секунду есть безумие.

 

С tcp тоже верно,  я  пол года назад  оставил тех что к тебе приставали) и спокойно теперь раздаю тв по HLS либо http. Проблем меньше.

 

Но в условиях что у меня были просто без вариантов. Здоровая сеть ты представь. Там и STP  и MPLS и LACP  на всём этом резервирование поднято, на перестроение время нужно.

И там выход только пускать несколькими путями и склеивать.

TCP там тоже не поплодишь, потоков тысяча. 

RTP очень хорошо себя в этом плане показало.

Но на то, чтобы всё там переделать нужна сильная мотивация которую обеспечить не могут, потому я оставил это дело.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

+ еще интересная практика дебага.

На канале Хабаровск-Владивосток у меня были CC errors. Владельцы каналы не могли найти причину, дотошно спрашивали подробности чем вызваны CC.

Вот навешивал на тестовые стримы RTP, прогонял их и расписывал что происходит. Думали сперва что потери а нет, через mpls кольцо у них там пакетики иногда разными путями летали и давали CC. 

RTP выручил.

Ест-но после этого не фига там ничего не починили, потом к реодеру еще прибавились обрывы связи на минут 5ть а там и tcp не спасет.

Был запущен параллельно канал от второго оператора, нужно было пустить двумя путями и склеить.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А ну и еще забыл важный момент) RTP и дупликаты детектирует. Почитал про то что мониторинг детектирует.

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

 

RTP packet drop:

Number of consecutive dropped RTP packets exceeds the error- thresholds – only available if RTP headers are present

 

RTP duplicates:

Number of RTP packets with iden- tical RTP counters – only available if RTP headers are present

 

RTP out of order:

There are RTP packets received out of order – only available if RTP headers are present

 

CC skips:

Number of transport stream discon- tinuities due to packet loss. Note that the CC skips number does not necessarily equal the number of lost packets, as several consecutive packets lost will be counted as one CC skip.

 

Во вложении наглядно расписано насколько ущербный голый mpegts в плане диагностики.

bt.png

Изменено пользователем Sergey R.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ему про фому а он про ерёму

вам осталось прочитать стандарт rtp

что бы понять по дефолту, джиттера на ртп не реализовывают

и в случае реордеринга ртп, отставшие пакеты по seq отбрасываются

 

в случае mpegts, сс тоже собьется

 

и в том и в другом случае вы ничего не сделаете

 

и вместо того что бы забивать сеть избыточностью, подстроили мту и размер удп пакетов от источника к приемнику

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не вижу смысла спорить. Был вопрос про rtp, я поделился практикой использования. Буду рад если кто-то также поделиться практикой голово мпегтс. Может тоже есть пути бесшовного склеивания, качественного мониторинга. Названо железо, которое с этим работает. Пока вижу только гон на какой- то оверхед) В мск икс вот я проект гонял там линки есть 64х10г т е по 640гигабит) смешно слушать про оверхед в данном случае. Да и все современные сети сейчас такие. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тут какой-то холивар уже начался  , но я на всякий случай оставлю это здесь.

Для mpeg-ts для linux есть эффективный модуль ядра, позволяющий подписываться и мониторить  multicast mpegts потоки , собирая статистику cc reorder , drop и прочего.

причем работает он так шустро, что не грузит cpu даже на слабеньких stb ,  а средний сервер легко мониторит гигабиты.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 минуты назад, LostSoul сказал:

Тут какой-то холивар уже начался  , но я на всякий случай оставлю это здесь.

Для mpeg-ts для linux есть эффективный модуль ядра, позволяющий подписываться и мониторить  multicast mpegts потоки , собирая статистику cc reorder , drop и прочего.

причем работает он так шустро, что не грузит cpu даже на слабеньких stb ,  а средний сервер легко мониторит гигабиты.

 

но ссылку и название не скажу?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

9 минут назад, vurd сказал:

но ссылку и название не скажу?

да почему не скажу-то.   xt_mpeg2ts.ko

 

вот тут он https://github.com/netoptimizer/IPTV-Analyzer/tree/master/iptables-module

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.