Ivan_83 Posted February 18, 2013 Posted February 18, 2013 Кто как видит себе такую софтину для анализа мультикаст потока с mpeg-ts / rtp+mpeg-ts на ошибки последовательности? Пока вижу только как считать ошибки CC и TEI пакеты для mpeg-ts, ошибки последовательности для RTP, примерную скорость потока, время простоя (сколько времени нет потока). OS: FreeBSD/Linux. Те как ей управлять, как забирать результаты. Вставить ник Quote
maxlapshin Posted February 18, 2013 Posted February 18, 2013 ещё не забудь такую вещь, как шифрованный поток. Если что-то случилось с дескремблингом, поток начинает литься шифрованный. Софтина должна аккумулировать данные за каждые последовательные 10 секунд или секунду или 5 секунд (не могу сказать как лучше), давать веб-морду мониторинга состояния потока и сбрасывать на диск в какой-нибудь rrd график количества проблем. Вставить ник Quote
vitalyb Posted February 18, 2013 Posted February 18, 2013 Еще полезно смотреть на PUS и на последовательность 0 0 1 в начале пейлоада на PES пидах. Вставить ник Quote
rdc Posted February 18, 2013 Posted February 18, 2013 По-моему, вебморда тут излишняя, и противоречит unix-way. Лично я вижу эту софтину так: на входе - плейлист с перечнем каналов, который она время от времени перечитывает на выходе - что-то типа csv или по файлу на канал. Файл на входе должен быть отдельным от конфига, чтобы он мог генериться автоматически, не задевая конфиг. В конфиге, кроме всего прочего, задаются параметры порога мониторинга - например, такая-то величина ошибок или потерь является симптомом отказа. На выходе в явном виде, удобном для парсинга, выдаётся результат "жив/мёртв", который кушает мониторинг. Вставить ник Quote
Ivan_83 Posted February 18, 2013 Author Posted February 18, 2013 По-моему, вебморда тут излишняя, и противоречит unix-way. А как же net-way? (всё таки утилита для мониторинга сети а не процессинга stdXXX потоков в системе) Вставить ник Quote
rdc Posted February 18, 2013 Posted February 18, 2013 (edited) Так можно додуматься до встроенной вебморды у traceroute :-) Edited February 18, 2013 by rdc Вставить ник Quote
Ivan_83 Posted February 19, 2013 Author Posted February 19, 2013 Чем плохо? http://127.0.0.1:333/tools/traceroute?addr=8.8.8.8&proto=icmp захотел в консоле - дёрнул через fetch/wget и посмотрел результат - те локальное использование на хосте не особо страдает. А вот удалённо проще трейс сразу по хттп посмотреть в браузере, чем логинится туда сначала ссш/телнет. С другой стороны мультикаст совсем не тоже что и трейс. СС ошибки могут за 5 секунд не вылезти. Вставить ник Quote
agr Posted February 19, 2013 Posted February 19, 2013 Можно еще последовательность мониторить по полю ID в заголовке IP. Вещательные системы его часто заполняют инкрементно для пакетов медиапотока. Вставить ник Quote
Ivan_83 Posted February 19, 2013 Author Posted February 19, 2013 Можно. Линух с астрой ничего не увеличивает: 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, хотя с последним мне кое что ещё не ясно. Вставить ник Quote
vitalyb Posted February 20, 2013 Posted February 20, 2013 PUS — это что? прошу пардону, выпал из темы - PUS - это бит в MPEG заголовке - http://en.wikipedia.org/wiki/MPEG_transport_stream#Packet Payload Unit Start - значит что в PES начался поток, а начинается он с последовательности 0 0 1. Проблемы с раскодированием ловятся на раз. Вставить ник Quote
Ivan_83 Posted February 20, 2013 Author Posted February 20, 2013 Часто бывает что оно не PES при выставленном PUS? PS: видел iptv2rtsp-proxy - можно помучить вопросами по мпегу гденить в IM? Вставить ник Quote
Ivan_83 Posted February 20, 2013 Author Posted February 20, 2013 ещё не забудь такую вещь, как шифрованный поток. Если что-то случилось с дескремблингом, поток начинает литься шифрованный. Добавил, показывает шифрование в mpeg2-ts. Софтина должна аккумулировать данные за каждые последовательные 10 секунд или секунду или 5 секунд (не могу сказать как лучше) Зачем? У меня сейчас пакеты копятся в буфере сокета, пока их там не станет "достаточно", потом они быстренько в цикле читаются и инфа раскидывается/обновляется в PID-ах, оно же доступно через хттп в реальном времени. Это чтобы меньше "дёргаться" - экономить CPU. Вставить ник Quote
maxlapshin Posted February 20, 2013 Posted February 20, 2013 примерно это же делает https://github.com/erlyvideo/udpts Вставить ник Quote
oleg_1956 Posted February 21, 2013 Posted February 21, 2013 Кто как видит себе такую софтину для анализа мультикаст потока с mpeg-ts / rtp+mpeg-ts на ошибки последовательности? А почему не реализовать полностью в соответствии с рекомендациями ETSI TR 101 290? Или это уже подразумевается? Те как ей управлять, как забирать результаты. У меня STB пишет в MIBS, а я потом через SNMP забираю Вставить ник Quote
vitalyb Posted February 21, 2013 Posted February 21, 2013 Часто бывает что оно не PES при выставленном PUS? PS: видел iptv2rtsp-proxy - можно помучить вопросами по мпегу гденить в IM? На пидах с видео-аудио (где PES и должен быть) не наблюдал такого, может и бывает в особо редких и кривых случаях. На пидах с PSI, конечно, эту проверку нельзя делать - там другой формат. Это как с IP фрагментацией, PUS только означает, что там начало пакета. PS - напишу в лс Вставить ник Quote
Ivan_83 Posted February 22, 2013 Author Posted February 22, 2013 А почему не реализовать полностью в соответствии с рекомендациями ETSI TR 101 290? Спасибо за наводку. Все 5 частей, включая аналитические параметры? Кроме этого можно же ещё и отображать не ошибки, но полезную инфу - это тоже актуально. Вставить ник Quote
Ivan_83 Posted February 22, 2013 Author Posted February 22, 2013 На пидах с видео-аудио (где 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 Вставить ник Quote
oleg_1956 Posted February 22, 2013 Posted February 22, 2013 Все 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 Вставить ник Quote
oleg_1956 Posted February 22, 2013 Posted February 22, 2013 Это хороший лог, но без явного анализа событий и, желательно, оценки для потока (в процентах или баллах) работать с ним смогут только те, кто "в теме". А у меня несколько иная задача - дать возможность "человеку с улицы" оценить качество потоков из плейлиста и время их переключения со стороны абонента. А логи принести на приборе тому, кто в состоянии в них разобраться :)) Вставить ник Quote
Ivan_83 Posted February 22, 2013 Author Posted February 22, 2013 Там (в доке) дальше и идут вычисления на базе эти параметров фишек типа: доступность сервиса, ошибки сервиса и чего то ещё, чтобы просто и понятно было обычным людям. А время переключения можно уменьшить радикально только если свалить с мультикаста на что то, что по запросу "вкл канал" вывалит сразу мегабайт(+-) кешированных данных. Вставить ник Quote
vitalyb Posted February 22, 2013 Posted February 22, 2013 На пидах с видео-аудио (где 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 Поста не понял. Он не опревергает мною написанного. Вставить ник Quote
Kompik Posted September 3, 2013 Posted September 3, 2013 А есть что-то что можно пощупать? :) Вставить ник Quote
Ivan_83 Posted September 6, 2013 Author Posted September 6, 2013 Всё скромно :) 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] Вставить ник Quote
Kompik Posted September 9, 2013 Posted September 9, 2013 А что-то что можно запустить у себя и пощупать свои потоки? Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.