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)
Andrey Dyldin

Астра-4 тестирование

Recommended Posts

Сделал проверку, если битрейт больше 1/6 от предыдущего значения - это норма. меньше 1/6 - on_air = false

Есть смысл поставить 3 или 4 вместо 2 в первой проверке. Между 1/2 и 1/6 слишком большой промежуток. Сейчас очень редко у какого-то канала скачет битрейт больше, чем в 6 раз, но бывает и если такое такое случается, то канал еще долго (ну как долго, секунд 20-30 обычно) включается / выключается, потому что не может догнать 1/2 от last_bitrate и заменить его значение на что-то более адекватное.

 

P.S. В timer.c опечатка (reater):

asc_log_error("[timer] option 'interval' is required and must be reater than 0");

Share this post


Link to post
Share on other sites


$ cat version.h

#ifndef _VERSION_H_

#define _VERSION_H_ 1

 

#define ASTRA_VERSION_MAJOR 4

#define ASTRA_VERSION_MINOR 0

#define ASTRA_VERSION_DEV 223

 

#endif /* _VERSION_H_ */


$ sudo make install

INSTALL: /usr/bin/astra-4.0

INSTALL: /etc/astra/scripts-4.0/stream.lua

INSTALL: /etc/astra/scripts-4.0/json.lua

cp: cannot stat ‘./scripts/json.lua’: No such file or directory

make: *** [install] Error 1

Share this post


Link to post
Share on other sites

Андрей , Astra 4.0 dev:219 не убирает  ECM/EMM  на радуге и континент тв , проходят и на виасатах (Datacom) , увеличились показания в top с 20 до 40 % .

Поправил. Сделал автоматическое определение логики дешифрования (SSE2 на компах и более медленное для прочих девайсов (TBS2900 например)). Работало неправильно.

 

Есть смысл поставить 3 или 4 вместо 2 в первой проверке. Между 1/2 и 1/6 слишком большой промежуток. Сейчас очень редко у какого-то канала скачет битрейт больше, чем в 6 раз, но бывает и если такое такое случается, то канал еще долго (ну как долго, секунд 20-30 обычно) включается / выключается, потому что не может догнать 1/2 от last_bitrate и заменить его значение на что-то более адекватное.

 

P.S. В timer.c опечатка (reater):

asc_log_error("[timer] option 'interval' is required and must be reater than 0");

 

Опечатку исправил, спасибо.

Про срабатывание анализатора ещё думаю, все варианты не идеальны. Например возможна ситуация - резкий скачёк с 3-х до 10Мб и всё, все последующие значения попадают под низкий битрейт. Скорей всего сделаю расчёт среднего битрейта и на его основе переключение. Нужна более хитрая логика чем простое сравнение.

 

 

 

$ cat version.h
#ifndef _VERSION_H_
#define _VERSION_H_ 1

#define ASTRA_VERSION_MAJOR 4
#define ASTRA_VERSION_MINOR 0
#define ASTRA_VERSION_DEV 223

#endif /* _VERSION_H_ */
$ sudo make install
INSTALL: /usr/bin/astra-4.0
INSTALL: /etc/astra/scripts-4.0/stream.lua
INSTALL: /etc/astra/scripts-4.0/json.lua
cp: cannot stat ‘./scripts/json.lua’: No such file or directory
make: *** [install] Error 1

 

Исправил.

 

Заменил обработчик JSON (используется для мониторинга и ещё в некоторых приложениях). Раньше JSON обрабатывал скрипт написанный на lua, вчера сделал модуль для астры, его производительность на несколько порядков лучше.

 

PS: если кто-то использует в своих скриптах.

Переименовал функции:

utils.base64_encode() в base64.encode()

utils.base64_decode() в base64.decode()

utils.sha1() убрал, осталось только string:sha1()

добавил string:md5()

добавил string:hex()

например вывод md5: print(("Hello, world!"):md5():hex())

Share this post


Link to post
Share on other sites

Андрей , Astra 4.0 dev:219 не убирает  ECM/EMM  на радуге и континент тв , проходят и на виасатах (Datacom) , увеличились показания в top с 20 до 40 % .

Попробуйте пожалуйста с этим патчем : https://dl.dropboxusercontent.com/u/6788542/patch/decrypt.patch

(Я забыл про disable_emm, теперь должно всегда убирать CAT/ECM/EMM и информацию из PMT)

Share this post


Link to post
Share on other sites

Про срабатывание анализатора ещё думаю, все варианты не идеальны. Например возможна ситуация - резкий скачёк с 3-х до 10Мб и всё, все последующие значения попадают под низкий битрейт. Скорей всего сделаю расчёт среднего битрейта и на его основе переключение. Нужна более хитрая логика чем простое сравнение.

Здесь зависит от целей этой проверки битрейта. Я пробовал сделать через среднеквадратичное отклонение по нескольким точкам, плюс отдельно сравнение на нулевой битрейт, чтобы отрабатывало моментально при полной пропаже сигнала. Это работало вполне замечательно. Но тестировать пришлось на гипотетических случаях. Во всех случаях, когда каналы не работали из-за погоды/положения тарелки - кроме пониженного битрейта присутствовали cc и/или cs ошибки (и даже pes ошибки, на тех каналах, которые и не кодируются, в этих случаях идет мусор со спутника). Чисто низкого битрейта в таких случаях и не припомню, при присутствии лока он еще был приемлем, потом лока уже нет (ну и битрейт уже 0). Это я к тому, что пока я не могу понять, при каких конкретно случаях должна помогать эта проверка.

Share this post


Link to post
Share on other sites

С патчем CAT не проходит , все нормализовалось , нагрузка на CPU тоже устаканилась на уровне астры-3. Исчезли ошибки целостности потока .Спасибо !

Share this post


Link to post
Share on other sites

Здесь зависит от целей этой проверки битрейта. Я пробовал сделать через среднеквадратичное отклонение по нескольким точкам, плюс отдельно сравнение на нулевой битрейт, чтобы отрабатывало моментально при полной пропаже сигнала. Это работало вполне замечательно. Но тестировать пришлось на гипотетических случаях. Во всех случаях, когда каналы не работали из-за погоды/положения тарелки - кроме пониженного битрейта присутствовали cc и/или cs ошибки (и даже pes ошибки, на тех каналах, которые и не кодируются, в этих случаях идет мусор со спутника). Чисто низкого битрейта в таких случаях и не припомню, при присутствии лока он еще был приемлем, потом лока уже нет (ну и битрейт уже 0). Это я к тому, что пока я не могу понять, при каких конкретно случаях должна помогать эта проверка.

Классное исследование. Спасибо.

Давайте тогда так и сделаю, если ноль - сразу переключаться. А остальное убираю.

 

С патчем CAT не проходит , все нормализовалось , нагрузка на CPU тоже устаканилась на уровне астры-3. Исчезли ошибки целостности потока .Спасибо !

Добавил патч. v4.0 dev:226

Share this post


Link to post
Share on other sites

 

Давайте тогда так и сделаю, если ноль - сразу переключаться. А остальное убираю.

Если уж делать 0, то надо добавить опционально настраиваемый критический битрейт. Значение низкого битрейта возможно зависит от оборудования. Во время сильно плохой погоды никогда не наблюдал битрейт 0. Когда каналы полностью отваливаются, битрейт всегда = 6.

Share this post


Link to post
Share on other sites

Обновился теперь проблема 

Aug 08 11:03:05: INFO: Starting Astra 4.0 dev:226
Aug 08 11:03:06: INFO: [dvb_input 9:0] fe has lock. status:SCVYL signal:74% snr:97%
Aug 08 11:03:06: ERROR: modules/softcam/decrypt.c:161: failed assertion `mod->__decrypt.cas != NULL'
Aug 08 11:03:06: ERROR: CAS with CAID:0x0000 not found
Aug 08 11:03:06: ERROR: [main] abort execution. Lua backtrace:
Aborted

И еще вопрос а остался параметр filter? Как можно выбрать язык трансляции?  

Share this post


Link to post
Share on other sites

Если уж делать 0, то надо добавить опционально настраиваемый критический битрейт. Значение низкого битрейта возможно зависит от оборудования. Во время сильно плохой погоды никогда не наблюдал битрейт 0. Когда каналы полностью отваливаются, битрейт всегда = 6.

Хотите сказать, что битрейт низкий, но при этом отсутствуют cc, cs и per ошибки? Здесь есть доля истины, оборудование у всех разное и по-разному может обрабатывать плохой сигнал, так что битрейт может быть минимальный, но если есть такой минимальный битрейт, значит есть и пакеты, а при таком низком битрейте эти пакеты обязательно "битые", из них не получится нормальная картинка, хоть один из счетчиков _error будет расти, для этого в общем-то они и сделаны (ну ладно, в том числе и для этого). Проверка на битрейт, ИМХО, именно для тех случаев, когда пакетов нет совсем, в этом случае и ошибок не будет. Во всяком случае, у меня три вида dvb тюнеров и на всех это справедливо.

Share this post


Link to post
Share on other sites

Обновился теперь проблема 

Aug 08 11:03:05: INFO: Starting Astra 4.0 dev:226
Aug 08 11:03:06: INFO: [dvb_input 9:0] fe has lock. status:SCVYL signal:74% snr:97%
Aug 08 11:03:06: ERROR: modules/softcam/decrypt.c:161: failed assertion `mod->__decrypt.cas != NULL'
Aug 08 11:03:06: ERROR: CAS with CAID:0x0000 not found
Aug 08 11:03:06: ERROR: [main] abort execution. Lua backtrace:
Aborted
И еще вопрос а остался параметр filter? Как можно выбрать язык трансляции?

 

Баг исправлен.

filter пока ещё не реализован.

Share this post


Link to post
Share on other sites

Хотите сказать, что битрейт низкий, но при этом отсутствуют cc, cs и per ошибки? Здесь есть доля истины, оборудование у всех разное и по-разному может обрабатывать плохой сигнал, так что битрейт может быть минимальный, но если есть такой минимальный битрейт, значит есть и пакеты, а при таком низком битрейте эти пакеты обязательно "битые", из них не получится нормальная картинка, хоть один из счетчиков _error будет расти, для этого в общем-то они и сделаны (ну ладно, в том числе и для этого). Проверка на битрейт, ИМХО, именно для тех случаев, когда пакетов нет совсем, в этом случае и ошибок не будет. Во всяком случае, у меня три вида dvb тюнеров и на всех это справедливо.

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

Share this post


Link to post
Share on other sites

Хотите сказать, что битрейт низкий, но при этом отсутствуют cc, cs и per ошибки? Здесь есть доля истины, оборудование у всех разное и по-разному может обрабатывать плохой сигнал, так что битрейт может быть минимальный, но если есть такой минимальный битрейт, значит есть и пакеты, а при таком низком битрейте эти пакеты обязательно "битые", из них не получится нормальная картинка, хоть один из счетчиков _error будет расти, для этого в общем-то они и сделаны (ну ладно, в том числе и для этого). Проверка на битрейт, ИМХО, именно для тех случаев, когда пакетов нет совсем, в этом случае и ошибок не будет. Во всяком случае, у меня три вида dvb тюнеров и на всех это справедливо.

Если есть проверка на ошибки, то согласен, битрейт можно оставить нулевым. Я этот пример приводил для случая, если проверка для резерва идет только по битрейту. И да, если битрейт = 6, ошибок очень много.

Share this post


Link to post
Share on other sites

6 килобит - это как раз получается PAT+PMT таблица (каждая 2 раза в секунду = 188байт * 4пакета * 8бит = 6016 бит/сек)

может тогда сделать проверку: ошибка, если битрейт < 32Кбит/сек?

Share this post


Link to post
Share on other sites

Поток на модуляторе без входящего канала 32 -64 , ноль не бывает , со спутника тоже самое - шумы декодятся как поток . Ноль не есть правильно. Не бывает ноль.

Share this post


Link to post
Share on other sites
$ cat version.h
#ifndef _VERSION_H_
#define _VERSION_H_ 1

#define ASTRA_VERSION_MAJOR 4
#define ASTRA_VERSION_MINOR 0
#define ASTRA_VERSION_DEV 229

#endif /* _VERSION_H_ */

 

чтоб собралось - нужно удалить папку ./contrib/build/ и запустить ./contrib/ffmpeg.sh

Share this post


Link to post
Share on other sites

Добрый день. Не планируется ли ближайшее время автоопределение типа входящего потока в udp? особенно интересует rtp

Share this post


Link to post
Share on other sites

Добрый день. Не планируется ли ближайшее время автоопределение типа входящего потока в udp? особенно интересует rtp

да планирую. по срокам пока не знаю.

Share this post


Link to post
Share on other sites

Astra v4.0 dev:236 http://cesbo.com/download/astra-dev4.tar.gz

 

Добавил модуль biss_encrypt (BISS-шифрование)

Implemented the biss_encrypt module (BISS-encryption)

 

require("stream")
require("biss_encrypt")

make_channel({
    name = "Channel Name",
    input = { ... },
    output = { "module://address#biss=1122330044556600" },
})
Исправил ошибки в модуле mixaudio

Bugs fixed in the mixaudio module

 

configure.sh по умолчанию подключает только модули: astra, dvb, file, http, mpegts, softcam, udp

Чтобы добавить другие модули необходимо использовать --with-modules: ./configure.sh --with-modules=*:modules/biss_encrypt

 

By default the configure.sh include next modules: astra, dvb, file, http, mpegts, softcam, udp

To include other modules use the --with-modules option: ./configure.sh --with-modules=*:modules/biss_encrypt

Share this post


Link to post
Share on other sites

Андрей , как дела с мониторингом ?  Хотя -бы как в астре-3 что-нибудь отправлял на апач .... там и потестили-б с битрейтом.

Share this post


Link to post
Share on other sites

Собрал на FreeBSD 9.1

udp_input биндится без ошибок, на интерфейс начинает литься мультикаст, а в analyze нулевой битрейт.

Пересобрал с WITH_SELECT - все появилось.

Т.е. дефолтная сборка с kqueue не работает нормально.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×