Jump to content
Cesbo Community
  • Announcements

    • RadioSintetica

      Information   10/21/18

      Registration on the forum temporarily closed! For support requests, please contacat us: https://cesbo.com/help
      Our community in Telegram: @cesbo_en (English language) , @cesbo_ru (Russian language) , @cesbo_es (Spanish Language)
Pasha_49

Анализаторы потока

Recommended Posts

Посоветуйте какие-нибудь анализаторы потока. Для анализа TS потока с транспондера и для анализа уже декодированного потока. На этом форуме нашел только для декодированного (TSReader, StreamGuru). И что означает в StreamGuru "continuity_count_error"?

Share this post


Link to post
Share on other sites

countinuity counter - счётчик последовательности TS-пакетов, если пакет выпадает, то последовательность нарушается (точное количество потерянных пакетов рассчитать нельзя, поэтому показывает сам факт потери пакетов.

 

постепенно пишу модуль analyze, сейчас он контроллирует только базывае параметр: заголовки TS пакетов, заголовки PES пакетов, зашифрован или нет канал, countinuity counter, проверяет PAT/CAT/PMT таблицы, расчитывает битрейт

есть простой скрипт:

./astra ./helpers/analyze.lua 239.255.1.1

со временем станет полноценным средством анализа :-)

Share this post


Link to post
Share on other sites

А что должно происходить при запуске этого скрипта? У меня никакой информации не бежит, и запроса к мультикасту нету. Пробовал с мультикастом с локального компа и с другого. (Есть vlan'ы на этом сервере, пробовал прокинуть маршрут, всё равно не идет трафик.)

Share this post


Link to post
Share on other sites

$ ./astra ./helpers/analyze.lua 239.255.2.1
Aug 03 17:02:51: INFO: [analyze Channel] TS header: OK
Aug 03 17:02:51: INFO: [PAT Channel] pid: 291 PMT pnr:410
Aug 03 17:02:51: INFO: [PAT Channel] crc:0xBE5D5F56
Aug 03 17:02:51: INFO: [PMT Channel] pnr:410
Aug 03 17:02:51: INFO: [PMT Channel] pid: 411 PCR
Aug 03 17:02:51: INFO: [PMT Channel] > cas: caid:0x4AE1 pid:50 data:02
Aug 03 17:02:51: INFO: [PMT Channel] > cas: caid:0x4AE1 pid:44 data:11
Aug 03 17:02:51: INFO: [PMT Channel] > cas: caid:0x4AE0 pid:37
Aug 03 17:02:51: INFO: [PMT Channel] > cas: caid:0x4AE0 pid:47 data:15
Aug 03 17:02:51: INFO: [PMT Channel] pid: 411 VIDEO:0x02
Aug 03 17:02:51: INFO: [PMT Channel] pid: 412 AUDIO:0x04
Aug 03 17:02:51: INFO: [PMT Channel] > language: rus
Aug 03 17:02:51: INFO: [PMT Channel] crc:0x2FC6E2B5
Aug 03 17:02:51: INFO: [analyze Channel] Scrambled: YES
^CAug 03 17:02:53: INFO: [main] exit

 

Он просто создаёт два модуля udp_input и analyze. Можно попробовать в скрипте добавить в настройке udp_input, добавить адрес локального интерфейса localaddr

Share this post


Link to post
Share on other sites

Спасибо)

А ещё вопрос. Например запускаю анализатор на стримире, и на 3-х компах-приемниках. Если CC ошибки иногда, но синхронно появляются только на компах-приемниках, то проблема где-то в сети? Или может быть проблема и в сетевой карте стримера?

И во втором случае, если СС ошибки синхронно появляются на всех 4-х компах (на стримире и на приемниках), то в чем может быть проблема?

Share this post


Link to post
Share on other sites

Первый случай - вероятность процентов 90, что срезалось часть пакетов при скачке битрейта. Или на сетевом оборудовании или вообще на сетевой стримера.

Второй случай - это скорей всего на входе проблемы, надо смотреть параллельно с femon.

Share this post


Link to post
Share on other sites

Ок, с первым случаем попробую поэкспериментировать с оборудованием сначала. А вот во втором случае не понятно. В femon всё впорядке(femon без задержек, выводит статистику десятками строк в секунду). В логе стримера астры всё впорядке. А анализатор поток берет уже с интерфейса? Можно ли в логе астры(стримера) выводить инофрмацию о CC ошибках?

Share this post


Link to post
Share on other sites

Модуль анализатора подключается параллельно с udp_output (для анализа поток не обязательно должен попадать на интерфейс)

Схемотично :-) :

input -> demux +-> channel -> decrypt +-> udp_output
              |                      +-> analyze
              +-> channel +-> udp_output
                          +-> analyze

 

Для вывод CC надо дописать в скрипте:

s = make_stream(...)

function dump_cc()
   for _,ch in pairs(s.channels) do
       if ch.analyze then
           local stat = ch.analyze:status()
           print("Channel: " .. ch.config.name .. " cc:" .. tostring(stat.cc_error))
       end
   end
end
timer({ interval = 5, callback = dump_cc })

Share this post


Link to post
Share on other sites

Пробую разные софтовые анализаторы. Больше всего понравились:

StreamGuru MPEG2 TS Analyzer, Elecard Stream Inspector

К счатью их можно опробовть в демо версии. Вот что интересное заметил:

При просмотре ТВ с астры и с люминаты(проф. железка) проблем никаких нету. Везде картинка хорошая, ничего не сыпится. Открываю с помощью Elecard Stream Inspector потоки(HD) с астры и с люминаты, и наблюдаю такое:

1. Любой HD канал(трик.) с люминаты:

339144_kiss_52kb.png

Никаких ошибок в "First priority"

 

2. Любой HD канал плюсов с астры:

339148_kiss_52kb.png

Тут сразу появляются и постоянно идут PAT и PMT error. Справа в логе написано что за ошибки.

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

P.S. Попробовал выходящий с люминаты поток пропустить через астру и выплюнуть обратно в сеть. Ошибок никаких нету.

Share this post


Link to post
Share on other sites

PAT & PMT 

можно попробовать выличить за счет уменьшения значения в опредиление

 

 
modules/mpegts/channel.c:#define PAT_PMT_INTERVAL 500
 
PC + Linux это всетаки не realtime %)
 
О том какой интервал должен быть можно посмотреть тут
Цитаты 
 
"
MPEG-2 does not specify how frequently a PAT must be transmitted, but ATSC A/53 requires a PAT to be transmitted at least once every 100 milliseconds.However, if the PAT is comprised of so many large sections that pid 0 might exceed the maximum of 80,000 bits per second permited for pids carrying MPEG-2 PSI sections, the repetition rate can be extended to no more than 140 milliseconds.  As explained below, it is unlikely that this extended repetition rate will ever be needed.
"

Share this post


Link to post
Share on other sites

Кстати iso13818-1 вот что говорит...

 
In systems where random access is a consideration, it is recommended to re-transmit PSI sections several times, even 
when changes do not occur in the configuration, as in the general case, a decoder needs the PSI data to identify the 
contents of the Transport Stream, to be able to start decoding. This Recommendation | International Standard does not 
place any requirements on the repetition or occurrence rate of PSI sections. Clearly though, repeating sections frequently 
helps random access applications, whilst causing an increase in the amount of bitrate used by PSI data. If program 
mappings are static or quasi-static, they may be stored in the decoder to allow faster access to the data than having to 
wait for it to be re-transmitted. The trade-off between the amount of storage required and the desired impact on channel 
acquisition time may be made by the decoder manufacturer

Share this post


Link to post
Share on other sites

А вот если копнуть

ETSI TR 101 290

раздел 5

 

Measurement and analysis of the MPEG-2 Transport Stream

(документ можно скачать отсюда http://www.etsi.org/deliver/etsi_tr/101200_101299/101290/01.02.01_60/tr_101290v010201p.pdf)

 

стает понятно, что между PAT таблицами или PMT таблицами 0.5s это максимально возможное значение.

 

А eutelsat рекомендует слать с частотой 1 таблица в 0.1s

ttp://www.eutelsat.com/satellites/pdf/Diseqc/Reference%20docs/recom_trans_para_broadcasters&operators_DVB_multiplexes_using_EUTELSAT_syst.pdf

 

2 Pasha_49:

нет возможности собрать астра с таким вот define?

modules/mpegts/channel.c:#define PAT_PMT_INTERVAL 100

вместо текущего 500?

 

Собрал бы сам - но нет возможности с "измерителями" к серверам добираться - все очень далеко от меня %(

Edited by Alexey Misyurenko

Share this post


Link to post
Share on other sites

Спасибо!

"#define PAT_PMT_INTERVAL 100" - полностью убрало PAT & PMT error в анализаторе.

Андрей, а что скажите вы? Лучше оставить 100 или 500? Анализатор перестал ругаться при 100.

Share this post


Link to post
Share on other sites

Это мелочи.

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

Share this post


Link to post
Share on other sites

2 Pasha_49 рабочий StreamGuru - я на руборде выкладывал.
но кажется у меня он слетал через пару дней работы,
если смотреть через dektec/asi. (хотя может то плата виновата)

сам иногда пользуюсь дектековским DTA-245, он больше для ASI, для IP - он скорее как донгл, 
но мне нравится интерфейс в дектековском анализаторе.

канешно это все анализаторы для ноута, не серверные. wireshark вообшем.

Share this post


Link to post
Share on other sites

По поводу интервала между PSI таблицами (PAT/PMT).

С одной стороны интервал (iso13818-1) в стандарте не регламентирован да и 

С другой стороны в методологии оценки качества в DVB есть требование, что данный интервал должен быть не более 0.5s

Некоторые "вещатели", такие как Eutelset требуют на вход поток, в котором интервал должен быть не более 0.1s (походу тут они ссылаются на ATSC A/53).

 

В iso13818-1 в таблице C.3 есть расчетные значения полосы занимаемой PAT/PMT таблицами в зависимости от кол-ва каналов
в потоке и интервала следования между таблицами

 

Так же в iso13818-1 есть зачетная фраза

"Any implementation of an ITU-T Rec. H.222.0 | ISO/IEC 13818-1 bitstream must make reasonable bandwidth demands 

for PSI information and, in applications where random access is a consideration, should promote fast signal acquisition. 
This subclause analyses this issue and gives some broadcast application examples."
 
Но описание что такое "reasonbale" нет %) Понимай как знаешь
Ниже приводится пример расчета для разных вариантов вещания, где предлагается интервал в 40ms (25Hz).
Но почему предложен именно такой вариант не понятно.
 
В силу этого, есть предложение выпустить patch, который ранее упомянутый #define разрешит переопределять
конфигурационной опцией.

Share this post


Link to post
Share on other sites

если касательно обзора, из того чем еще иногда пользуюсь:
бесплатная  4t2 analyzer.
и две донглозависимые: DVBAnalyzer(DVBControl) + упоминаемый уже StreamXpert(Dektec) 

UDP умеют все, ну а SDI/ASI/BDA и прочее - уже по возможностям.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×