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

Анализатор мультикаста (MPEG-TS / RTP) принимаются пожелания

Кто как видит себе такую софтину для анализа мультикаст потока с mpeg-ts / rtp+mpeg-ts на ошибки последовательности?

Пока вижу только как считать ошибки CC и TEI пакеты для mpeg-ts, ошибки последовательности для RTP, примерную скорость потока, время простоя (сколько времени нет потока).

OS: FreeBSD/Linux.

 

 

Те как ей управлять, как забирать результаты.

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


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

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

 

Софтина должна аккумулировать данные за каждые последовательные 10 секунд или секунду или 5 секунд (не могу сказать как лучше), давать веб-морду мониторинга состояния потока и сбрасывать на диск в какой-нибудь rrd график количества проблем.

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


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

Еще полезно смотреть на PUS и на последовательность 0 0 1 в начале пейлоада на PES пидах.

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


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

PUS — это что?

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


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

По-моему, вебморда тут излишняя, и противоречит unix-way.

 

Лично я вижу эту софтину так:

на входе - плейлист с перечнем каналов, который она время от времени перечитывает

на выходе - что-то типа csv или по файлу на канал.

 

Файл на входе должен быть отдельным от конфига, чтобы он мог генериться автоматически, не задевая конфиг.

В конфиге, кроме всего прочего, задаются параметры порога мониторинга - например, такая-то величина ошибок или потерь является симптомом отказа.

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

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


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

По-моему, вебморда тут излишняя, и противоречит unix-way.

А как же net-way? (всё таки утилита для мониторинга сети а не процессинга stdXXX потоков в системе)

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


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

Так можно додуматься до встроенной вебморды у traceroute :-)

Изменено пользователем rdc

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


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

Чем плохо?

http://127.0.0.1:333/tools/traceroute?addr=8.8.8.8&proto=icmp

захотел в консоле - дёрнул через fetch/wget и посмотрел результат - те локальное использование на хосте не особо страдает.

А вот удалённо проще трейс сразу по хттп посмотреть в браузере, чем логинится туда сначала ссш/телнет.

 

С другой стороны мультикаст совсем не тоже что и трейс.

СС ошибки могут за 5 секунд не вылезти.

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


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

Можно еще последовательность мониторить по полю ID в заголовке IP. Вещательные системы его часто заполняют инкрементно для пакетов медиапотока.

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


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

Можно.

Линух с астрой ничего не увеличивает:

00:31:47.956728 IP (tos 0x0, ttl 32, id 0, offset 0, flags [DF], proto UDP (17), length 1344)
172.16.0.78.57160 > 239.0.5.3.1234: [udp sum ok] UDP, length 1316
00:31:47.962011 IP (tos 0x0, ttl 32, id 0, offset 0, flags [DF], proto UDP (17), length 1344)
172.16.0.78.57160 > 239.0.5.3.1234: [udp sum ok] UDP, length 1316
00:31:47.962270 IP (tos 0x0, ttl 32, id 0, offset 0, flags [DF], proto UDP (17), length 1344)
172.16.0.78.57160 > 239.0.5.3.1234: [udp sum ok] UDP, length 1316
00:31:47.967469 IP (tos 0x0, ttl 32, id 0, offset 0, flags [DF], proto UDP (17), length 1344)
172.16.0.78.57160 > 239.0.5.3.1234: [udp sum ok] UDP, length 1316

 

И всё равно потери будут видны по СС в мпеге и по SN в RTP, хотя с последним мне кое что ещё не ясно.

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


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

PUS — это что?

прошу пардону, выпал из темы -

PUS - это бит в MPEG заголовке - http://en.wikipedia.org/wiki/MPEG_transport_stream#Packet

Payload Unit Start - значит что в PES начался поток, а начинается он с последовательности 0 0 1.

 

Проблемы с раскодированием ловятся на раз.

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


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

Часто бывает что оно не PES при выставленном PUS?

 

PS: видел iptv2rtsp-proxy - можно помучить вопросами по мпегу гденить в IM?

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


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

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

Добавил, показывает шифрование в mpeg2-ts.

 

Софтина должна аккумулировать данные за каждые последовательные 10 секунд или секунду или 5 секунд (не могу сказать как лучше)

Зачем?

У меня сейчас пакеты копятся в буфере сокета, пока их там не станет "достаточно", потом они быстренько в цикле читаются и инфа раскидывается/обновляется в PID-ах, оно же доступно через хттп в реальном времени. Это чтобы меньше "дёргаться" - экономить CPU.

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


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

примерно это же делает https://github.com/erlyvideo/udpts

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


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

Кто как видит себе такую софтину для анализа мультикаст потока с mpeg-ts / rtp+mpeg-ts на ошибки последовательности?

 

А почему не реализовать полностью в соответствии с рекомендациями ETSI TR 101 290?

Или это уже подразумевается?

 

Те как ей управлять, как забирать результаты.

 

У меня STB пишет в MIBS, а я потом через SNMP забираю

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


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

Часто бывает что оно не PES при выставленном PUS?

 

PS: видел iptv2rtsp-proxy - можно помучить вопросами по мпегу гденить в IM?

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

 

Это как с IP фрагментацией, PUS только означает, что там начало пакета.

 

PS - напишу в лс

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


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

А почему не реализовать полностью в соответствии с рекомендациями ETSI TR 101 290?

Спасибо за наводку.

Все 5 частей, включая аналитические параметры?

 

Кроме этого можно же ещё и отображать не ошибки, но полезную инфу - это тоже актуально.

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


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

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

 

 


TE = 0, PUS = 1, TP = 0, PID = 370, SC = 0, AFE = 1, CC = 3
mpeg2_pes_hdr - PSCP invalid = 11534848!!!
mpeg2_pes_hdr - sid = 37

TE = 0, PUS = 1, TP = 0, PID = 371, SC = 0, AFE = 1, CC = 15
mpeg2_pes_hdr - VIDEO


TE = 0, PUS = 1, TP = 0, PID = 0, SC = 0, AFE = 1, CC = 0
mpeg2_pes_hdr - PSCP invalid = 8388608!!!
mpeg2_pes_hdr - sid = 13

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


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

Все 5 частей, включая аналитические параметры?

Все три приоритета.

Этого достаточно, чтобы оценить качество потока.

Именно так и реализованы аппаратные тестеры IPTV (мои интересы именно в этой области).

 

Если два анализатора, работающие в соответствии с рекомендациями ETSI TR 101 290, выдают отличающиеся цифры на одном и том же "битом" потоковом файле, то сразу возникает вопрос - кому верить? Отличия, обыкновенно, не принципиальные, но они есть и это, иногда, смущает...

 

Кроме этого можно же ещё и отображать не ошибки, но полезную инфу - это тоже актуально.

Я сотрудничаю с Elecard и пользуюсь их Elecard Stream Inspector. Очень много полезной информации. Слишком много. Они, как раз, результаты отработки сохраняют в csv.

Вот фрагментик

Time Level Event

16:13:22 Message TS sync. restore Offset = 0x00000000

16:13:23 First Priority PAT error. Repetition period of table > 500 ms (time diff = 532 ms) Offset = 0x000257C1

16:13:23 First Priority PMT error. Table with do not occure > 500 ms Pid = 4096 ( 0x1000 ) Offset = 0x00025913

16:13:23 Third Priority Unreferenced PID error. Not referred to by a PMT within 0,5 s%s Pid = 256 ( 0x100 ) Offset = 0x00025C64

16:13:23 Third Priority Unreferenced PID error. Not referred to by a PMT within 0,5 s%s Pid = 257 ( 0x101 ) Offset = 0x00026010

16:13:23 Third Priority EIT actual error. Repetition period of section with table_id = 0x4E < 25ms (time diff = 0 ms) Offset = 0x00035324

16:13:23 Third Priority SI repetition error. EIT_actual section 1 min. interval < 25 ms Offset = 0x00035324

16:13:23 Third Priority EIT actual error. Repetition period of section with table_id = 0x4E < 25ms (time diff = 6 ms) Offset = 0x00035904

16:13:23 Third Priority SI repetition error. EIT_actual section 0 min. interval < 25 ms Offset = 0x00035904

16:13:23 Third Priority EIT actual error. Repetition period of section with table_id = 0x4E < 25ms (time diff = 0 ms) Offset = 0x000359C0

16:13:23 Third Priority SI repetition error. EIT_actual section 1 min. interval < 25 ms Offset = 0x000359C0

16:13:23 Third Priority EIT actual error. Repetition period of section with table_id = 0x4E < 25ms (time diff = 13 ms) Offset = 0x000364C4

16:13:23 Third Priority SI repetition error. EIT_actual section 0 min. interval < 25 ms Offset = 0x000364C4

16:13:23 Third Priority EIT actual error. Repetition period of section with table_id = 0x4E < 25ms (time diff = 0 ms) Offset = 0x00036580

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


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

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

 

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

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


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

Там (в доке) дальше и идут вычисления на базе эти параметров фишек типа: доступность сервиса, ошибки сервиса и чего то ещё, чтобы просто и понятно было обычным людям.

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

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


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

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

 

TE = 0, PUS = 1, TP = 0, PID = 370, SC = 0, AFE = 1, CC = 3
mpeg2_pes_hdr - PSCP invalid = 11534848!!!
mpeg2_pes_hdr - sid = 37

TE = 0, PUS = 1, TP = 0, PID = 371, SC = 0, AFE = 1, CC = 15
mpeg2_pes_hdr - VIDEO


TE = 0, PUS = 1, TP = 0, PID = 0, SC = 0, AFE = 1, CC = 0
mpeg2_pes_hdr - PSCP invalid = 8388608!!!
mpeg2_pes_hdr - sid = 13

 

Поста не понял. Он не опревергает мною написанного.

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


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

Всё скромно :)

 

Stream hub: /http/ХХХ.ХХХ.ХХХ.ХХХ:7088
	[status: 0, cpu: 0, sources: 1, clients: 0, refs: 0, no clients time: 718]
  Source: tcp-http http://ХХХ.ХХХ.ХХХ.ХХХ:7088/udp/239.0.0.116:4000 [iP: ХХХ.ХХХ.ХХХ.ХХХ:7088, index = 0]	[status: 16, priority: 0, rate: 4047266, error rate: 11, pids: 5, no data recv time: 0]
	PID: 321 [Packets: 2673086, Size: 490761 kb, Scrambling: 0, CC errors: 59, TE count: 0]
	PID: 401 [Packets: 169797, Size: 31173 kb, Scrambling: 0, CC errors: 44, TE count: 0]
	PID: 0 [Packets: 9238, Size: 1696 kb, Scrambling: 0, CC errors: 24, TE count: 0]
	PID: 3301 [Packets: 3340, Size: 613 kb, Scrambling: 0, CC errors: 24, TE count: 0]
	PID: 17 [Packets: 550, Size: 100 kb, Scrambling: 0, CC errors: 17, TE count: 0]
	PIDs summary [Packets: 2856011, Size: 524345 kb, CC errors: 168, TE count: 0]

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


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

А что-то что можно запустить у себя и пощупать свои потоки?

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


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

Join the conversation

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

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

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

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

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

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

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