Jump to content
Калькуляторы

astra вещаем iptv

ВЫручите, подскажите что не так:

 

Файл конфига

 

 #!/usr/bin/astra


   log.set({ debug = true, stdout = true, filename = "/var/log/astra.log"})

   pidfile("/var/run/astra.pid")

   cam_1 = newcamd({
           name = "Reader",
           host = "х.х.х.х",
           port = "ххххх",
           username = "ххххх",
           password = "ххх",
           key = "010...21314",
   })


   dvb_1 = {
       adapter = 0, type = "S2",
       tp = "12034:h:27500",
       lnb = "10750:10750:10750"
   }

   s1 = make_stream({ name = "Stream 1", dvb = dvb_1 }, {
       { name = "Channel 1", pnr = 3120, cam = cam_1, addr = "239.255.1.1", analyze = true },
   })

При запуске ругается на:

 

PANIC: unprotected error in call to Lua API ([main] ./channel_orig.lua:8: attempt to call global 'newcamd' (a nil value))

Aborted (core dumped)

 

 

При выполнении ./configure.h следующее:

 

root@ubuntu:/etc/astra# ./configure.sh
Cleaning previous build...
CLEAN: astra

Compiler Flags:
 TARGET: x86_64-linux-gnu
     CC: gcc
 CFLAGS: -O2 -fomit-frame-pointer -I. -Wall -Wextra -Wstrict-prototypes -pedantic -fno-builtin -std=iso9899:1999 -D_GNU_SOURCE -msse -msse2 -march=native -pthread -DWITH_EPOLL=1 -DHAVE_CLOCK_GETTIME=1 -DHAVE_ENDIAN_H=1 -DHAVE_PREAD=1 -DHAVE_STRNDUP=1 -DHAVE_STRNLEN=1

Check modules:
    OK: ./main.c
    OK: ./core
    OK: ./lua
    OK: ./modules/asi
    OK: ./modules/astra
  SKIP: ./modules/biss_encrypt
./modules/biss_encrypt: error: libdvbcsa is not found. use --with-libdvbcsa option
    OK: ./modules/dvb
    OK: ./modules/file
    OK: ./modules/http
    OK: ./modules/inscript
  SKIP: ./modules/mixaudio
./modules/mixaudio: error: module is under development
    OK: ./modules/mpegts
  SKIP: ./modules/postgres
./modules/postgres: error: PostgreSQL or libpq not found
    OK: ./modules/softcam
    OK: ./modules/udp

Linker Flags:
VERSION: 4.4.184
    OUT: astra
LDFLAGS: -ldl -lm -lpthread -lrt -lrt -lcrypto

Install Path:
 BINARY: /usr/bin/astra

 

Вроде как модуль собрался без проблем. Запускал ./configure.h принудительно с выбором модуля. такая же ерунда. Если не использовать newcamd то астра нормально стартует показывает открытые каналы.

 

openssl и libssl-dev поставил. без изменений. и кстати файлик newcamd.o почему то не появляется

 

и при сборке астры непонятно почему валиться вот это

 

 

root@ubuntu:/etc/astra# make
  CC: main.o
  CC: core/clock.o
  CC: core/compat.o
  CC: core/event.o
  CC: core/list.o
  CC: core/log.o
  CC: core/loopctl.o
  CC: core/socket.o
  CC: core/strbuffer.o
  CC: core/thread.o
  CC: core/timer.o
  CC: lua/lapi.o
  CC: lua/lauxlib.o
  CC: lua/lcode.o
  CC: lua/lctype.o
  CC: lua/ldebug.o
  CC: lua/ldo.o
  CC: lua/ldump.o
  CC: lua/lfunc.o
  CC: lua/lgc.o
  CC: lua/llex.o
  CC: lua/lmem.o
  CC: lua/loadlib.o
lua/loadlib.c: In function ‘ll_sym’:
lua/loadlib.c:142:21: warning: ISO C forbids conversion of object pointer to function pointer type [-Wpedantic]
  lua_CFunction f = (lua_CFunction)dlsym(lib, sym);
                    ^
  CC: lua/lobject.o
  CC: lua/lopcodes.o
  CC: lua/lparser.o
  CC: lua/lstate.o
  CC: lua/lstring.o
  CC: lua/ltable.o
  CC: lua/ltm.o
  CC: lua/lundump.o
  CC: lua/lvm.o
  CC: lua/lzio.o
  CC: lua/lbaselib.o
  CC: lua/lbitlib.o
  CC: lua/lcorolib.o
  CC: lua/ldblib.o
  CC: lua/linit.o
  CC: lua/liolib.o
  CC: lua/lmathlib.o
  CC: lua/loslib.o
  CC: lua/lstrlib.o
  CC: lua/ltablib.o
  CC: modules/softcam/FFdecsa/FFdecsa.o
  CC: modules/softcam/cam/cam.o
  CC: modules/softcam/cam/newcamd.o
  CC: modules/softcam/cas/bulcrypt.o
  CC: modules/softcam/cas/conax.o
  CC: modules/softcam/cas/cryptoworks.o
  CC: modules/softcam/cas/dgcrypt.o
  CC: modules/softcam/cas/dre.o
  CC: modules/softcam/cas/exset.o
  CC: modules/softcam/cas/griffin.o
  CC: modules/softcam/cas/irdeto.o
  CC: modules/softcam/cas/mediaguard.o
  CC: modules/softcam/cas/nagra.o
  CC: modules/softcam/cas/viaccess.o
  CC: modules/softcam/cas/videoguard.o
  CC: modules/softcam/decrypt.o
BUILD: astra
modules/softcam/cam/newcamd.o: In function `__module_new':
newcamd.c:(.text+0x496): undefined reference to `module_option_string'
newcamd.c:(.text+0x4b1): undefined reference to `module_option_string'
newcamd.c:(.text+0x4ca): undefined reference to `module_option_number'
newcamd.c:(.text+0x4e5): undefined reference to `module_option_string'
newcamd.c:(.text+0x50a): undefined reference to `module_option_string'
newcamd.c:(.text+0x526): undefined reference to `md5_crypt'
newcamd.c:(.text+0x54c): undefined reference to `module_option_string'
newcamd.c:(.text+0x56e): undefined reference to `str_to_hex'
newcamd.c:(.text+0x57f): undefined reference to `module_option_boolean'
newcamd.c:(.text+0x58d): undefined reference to `module_option_number'
modules/softcam/cam/newcamd.o: In function `on_newcamd_read_packet':
newcamd.c:(.text+0x1089): undefined reference to `hex_to_str'
newcamd.c:(.text+0x118d): undefined reference to `hex_to_str'
newcamd.c:(.text+0x11a2): undefined reference to `hex_to_str'
modules/softcam/decrypt.o: In function `__pmt_check_desc':
decrypt.c:(.text+0x45b): undefined reference to `mpegts_psi_init'
modules/softcam/decrypt.o: In function `stream_reload':
decrypt.c:(.text+0x582): undefined reference to `mpegts_psi_destroy'
modules/softcam/decrypt.o: In function `on_pmt':
decrypt.c:(.text+0x6a6): undefined reference to `crc32b'
decrypt.c:(.text+0x8c8): undefined reference to `crc32b'
decrypt.c:(.text+0x955): undefined reference to `__module_stream_send'
modules/softcam/decrypt.o: In function `on_cat':
decrypt.c:(.text+0xbad): undefined reference to `crc32b'
decrypt.c:(.text+0xd4d): undefined reference to `mpegts_psi_init'
modules/softcam/decrypt.o: In function `on_pat':
decrypt.c:(.text+0xe11): undefined reference to `crc32b'
decrypt.c:(.text+0xf37): undefined reference to `mpegts_psi_init'
decrypt.c:(.text+0xf83): undefined reference to `mpegts_psi_init'
modules/softcam/decrypt.o: In function `__module_delete':
decrypt.c:(.text+0x1056): undefined reference to `__module_stream_destroy'
decrypt.c:(.text+0x10d5): undefined reference to `mpegts_psi_destroy'
decrypt.c:(.text+0x10fa): undefined reference to `mpegts_psi_destroy'
modules/softcam/decrypt.o: In function `__module_new':
decrypt.c:(.text+0x129d): undefined reference to `__module_stream_init'
decrypt.c:(.text+0x12f2): undefined reference to `module_option_string'
decrypt.c:(.text+0x1309): undefined reference to `mpegts_psi_init'
decrypt.c:(.text+0x131f): undefined reference to `mpegts_psi_init'
decrypt.c:(.text+0x1394): undefined reference to `module_option_string'
decrypt.c:(.text+0x13ca): undefined reference to `str_to_hex'
decrypt.c:(.text+0x147e): undefined reference to `module_option_number'
decrypt.c:(.text+0x14ae): undefined reference to `module_option_string'
decrypt.c:(.text+0x14ca): undefined reference to `str_to_hex'
decrypt.c:(.text+0x14db): undefined reference to `module_option_boolean'
decrypt.c:(.text+0x14ec): undefined reference to `module_option_number'
decrypt.c:(.text+0x1526): undefined reference to `module_option_number'
decrypt.c:(.text+0x15dc): undefined reference to `__module_stream_attach'
modules/softcam/decrypt.o: In function `on_ts':
decrypt.c:(.text+0x17fa): undefined reference to `mpegts_psi_mux'
decrypt.c:(.text+0x19eb): undefined reference to `__module_stream_send'
modules/softcam/decrypt.o: In function `on_cam_response':
decrypt.c:(.text+0x1c6f): undefined reference to `hex_to_str'
decrypt.c:(.text+0x1c83): undefined reference to `hex_to_str'
modules/softcam/decrypt.o: In function `on_pmt':
decrypt.c:(.text+0x968): undefined reference to `mpegts_psi_demux'
modules/softcam/decrypt.o: In function `on_ts':
decrypt.c:(.text+0x17e6): undefined reference to `mpegts_psi_mux'
decrypt.c:(.text+0x1a5f): undefined reference to `mpegts_psi_mux'
decrypt.c:(.text+0x1a6e): undefined reference to `__module_stream_send'
collect2: error: ld returned 1 exit status
make: *** [astra] Error 1

 

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

Share this post


Link to post
Share on other sites

Удалить папку с астрой и ещё раз распаковать и попробовать собрать.

Если не поможет - на форум автора, он там отвечает.

Share this post


Link to post
Share on other sites

user = "ххххх",

pass = "ххх",

Не помогло. На форуме автора отписался, пока молчит

 

Пересобрал астру. все прошло уже бюез проблем но при старте все равно точно такая же шибка вылазит

Edited by Eagle18

Share this post


Link to post
Share on other sites

Помогите принять второй тпдер на астре c TBS6905.

Ямал 55 11265 V принимается и стримится отлично.

Когда хочу добавить второй транс 12732 V каналы сканит и находит, но маленький поток всего несколько кб.

Сделать отдельный процесс астры для второго транса? перегружать сервер?

Share this post


Link to post
Share on other sites

Ямал 55 11265 V принимается и стримится отлично.

Когда хочу добавить второй транс 12732 V.............

у 11265 и 12732 разные гетеродины (диапазоны) у первого 22кГц откл., у второго вкл.

и принимать одновременно можно только с конвертера с 2-мя и более независимыми выходами по отдельному кабелю

Edited by pashafil

Share this post


Link to post
Share on other sites

голова twin и отдельный кабель до каждого входа TBS.

В моем случае перегруз помог. Сейчас работает отлично, thx!

 

Как снимать уровни сигнала по snmp?

Share this post


Link to post
Share on other sites

Никто не подскажет как в фоне запускать Астру?

Вписал в автозапуск rc.local astra путь к конфигу, при загрузке лог в консоль льет.

Share this post


Link to post
Share on other sites

Как обычно: КОМАНДА > /dev/null 2>&1 &

Плюс лог можно вырубить в луаскрипте где все настройки приёма прописываете.

Share this post


Link to post
Share on other sites

Мы поставили TBS MOI Pro принимаем два DVB-S и два DVB-T потока.

 

Железка стоит под крышей, рядом с антеннами в небольшом ящике. Изначально планировали ставить ее только на прием потоков. Дальше уже поставим стримминг сервер. На ресивере курутится dvblast.

 

Кандидаты на стримминг обычные:

 

1. Nginx

2. Wowza

3. Flussonic

 

И вот, внезапно, увидили что во-первых, Астра хорошо работает и как ресивер на MOI Pro, а так же в новой версии пилят HLS. Почему бы не попробовать этот продукт, учитывая что мы запускаем свою станцию с нуля?

 

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

Share this post


Link to post
Share on other sites

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

Допилить приём DVB в свой msd руки всё никак не дойдут, хотя там по идее сложного ничего нет.

 

Если HLS не нужен можешь msd_lite заюзать для раздачи.

Share this post


Link to post
Share on other sites

Увы, для раздачи нужен только HLS, там уже коммерческие потоки HLS из интернета, нужно подмешать бесплатные FTA каналы в виде готовых HLS ссылок.

 

С ресивера на стриминг сервер каким протоколом лучше потоки отадвать при условии, что соединение прямым VLAN по Ethernet ?

 

UDP/TCP, RTMP? Мультикаст включить или выключить?

Share this post


Link to post
Share on other sites

Мультикаст включить или выключить?

Смысл использовать мультикаст в вашей схеме, я так понимаю основные его преимущества тут не нужны, можете http гонять.

Share this post


Link to post
Share on other sites

Мультикаст включить или выключить?

Смысл использовать мультикаст в вашей схеме, я так понимаю основные его преимущества тут не нужны, можете http гонять.

 

Речь скорее не про преимущества, а про надежность и удобство. Есть ли отличия в качестве приема в случае мультикаст/юникаст и http/udp?

 

Например, dvblast умеет только по мультикасту но позволяет выбрать rtp/udp. Он бесплатный и совершенно не грузит систему.

Share this post


Link to post
Share on other sites

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

RTP - по сути просто обёртка, толку с неё нет в таком применении.

Share this post


Link to post
Share on other sites

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

 

1. HLS на астре 5.63 работает плохо, изображение дергается, скачет темп и теряется синхронизация. Вобще непригодно. HTTP/Mpeg-http работает ровно

 

2. Убрали dvblast, поставили астру на ресивер. Визуально без объяснений качество отдельно Астры выглядит лучше, чем Dvblast + Astra. К сожалению, для ресивера MOI не выпущена версия с поддержкой HLS, так что опять гоняем HTTP.

 

3. Лишний раз убедились, что для радиосети - HTTP категорически не подходит. Нужен только HLS!

 

И одна нерешенная проблема - все потоки хоть в связке Dvblast+Astra, хоть Astra standalone идут упорно в формате 4:3, хотя вес контент естественно 16:9. На VLC отображается все корректно, на наших кривых китайских приставках - сплюстнуто.

 

Кто знает, может быть, возможно ли эту проблему решить на Астре?

Share this post


Link to post
Share on other sites

3. Лишний раз убедились, что для радиосети - HTTP категорически не подходит. Нужен только HLS!

Потому что ты в сетях не разбираешься :)

Нужно же тюнить систему а не просто так чего то поставил и дальше оно само.

Начни хотя бы с замены cubic на htcp или hybla, отключению delayask, включению sack и увеличению буферов сокетов.

 

И одна нерешенная проблема - все потоки хоть в связке Dvblast+Astra, хоть Astra standalone идут упорно в формате 4:3, хотя вес контент естественно 16:9. На VLC отображается все корректно, на наших кривых китайских приставках - сплюстнуто. Кто знает, может быть, возможно ли эту проблему решить на Астре?

Астра в поток практически не лезет и помочь не сможет.

Соотношение сторон закопано в скорее всего в заголовках mpeg2/mpeg4, хотя может и где то в mpeg2-ts есть, нужно освежить знания.

То что приставки это не читают - проблема приставок и их настроек. Посмотри, может там где то 4х3 нужно на авто переключить.

Share this post


Link to post
Share on other sites

3. Лишний раз убедились, что для радиосети - HTTP категорически не подходит. Нужен только HLS!

Потому что ты в сетях не разбираешься :)

Нужно же тюнить систему а не просто так чего то поставил и дальше оно само.

Начни хотя бы с замены cubic на htcp или hybla, отключению delayask, включению sack и увеличению буферов сокетов.

 

Да вот ладно прямо так сурово.

 

Sack - включен, за подсказку по замене алгоритма tcp - спасибо. После изучения различных алгоритмов решил включить westwood. Буфера и тюнинг OS будем делать под нагрузкой.

Share this post


Link to post
Share on other sites

С ресивера на стриминг сервер каким протоколом лучше потоки отадвать при условии, что соединение прямым VLAN по Ethernet ?

 

UDP/TCP, RTMP? Мультикаст включить или выключить?

 

Я на свой вопрос отвечу. Очень не люблю, когда другие так не поступают.

 

Когда на ресивере с DVB картами Астра раздавала поток udp/мультикаст, нагрузка на процессор была в несколько раз выше по сравнению с http mpeg-ts. Сейчас на дешевенькой MOI Pro c ARM процессором при трафике 30 Мбит, загрузка CPU составляет 10%, из которых 5% на Астру и 5% на систему. Честно говоря порадовался, что на коробочке Гигабитный порт эзернет :)

 

Для раздачи udp/multicast был запущен штатный dvblast. После его замены на астру и переход на http/mpeg-ts качество картинки визуально выросло.

 

На данный момент Астра стоит и делает то, для чего была предназначено изначально - принимает DVB сигналы и раздает их по http mpeg-ts.

 

Вопрос о стримминге HLS пока остается открытым. На тесте три сервера: astra 5.63-test, nimble strimer, ffmpeg + nginx

Пока что первые два кандидата просто обосрались перед третьим вариантом :)

 

Если говорить про мультикаст, то для Астры его использовать не нужно. Если мы принимаем 20-30 потоков, то отдать их даже дважды на 2 сервера не составит труда даже для такой слабой железки как MOI PRO.

 

Судя по всему тренд индустрии - полные переход на HTTP.

Share this post


Link to post
Share on other sites

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

Юзаем 4-ю версию с открытыми исходниками, чуть правленными под себя, проблем нет.

Share this post


Link to post
Share on other sites

Да вот ладно прямо так сурово.

Не принимай остро на свой счёт, тут большая часть форума в сетях не шибко понимает, только железки настраивать умеют.

 

Sack - включен, за подсказку по замене алгоритма tcp - спасибо. После изучения различных алгоритмов решил включить westwood. Буфера и тюнинг OS будем делать под нагрузкой.

Боюсь спрашивать как ты разные алгоритмы изучал и пришёл к такому выводу. )

Надеюсь не после чтения хабра и их тупых тестов?

Сделай свои тесты и ты увидишь что вествуд даже не в первой пятёрке для иптв.

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

 

Для раздачи udp/multicast был запущен штатный dvblast. После его замены на астру и переход на http/mpeg-ts качество картинки визуально выросло.

Это из области особенностей психики и восприятия :)

Открою секрет: и астра и двбласт и 100500 других программ и железок делают одно и тоже: они настраивают тюнер на нужную частоту с нужными параметрами, после чего они вычитывают поток из него и выплёвывают в сеть, внутри потока они ничего не меняют, кроме служебки при демультиплексировании.

Те на мпег2/4 и мпег3/ацц потоки они вообще никак не влияют.

Говоря языком сетевиков стриммер это медиаконвертер который из DVB перекладывает в IP.

 

Судя по всему тренд индустрии - полные переход на HTTP.

Нет тренда.

Производители железа делают что хотят.

Большинство не парится и юзает обычный хттп потому что это ацки просто и надёжно в пределах своих сетей. И потому что это часть длна который один хер делать приходится.

Яблоко двигает свой херо хлс потому что там крайне легко раздавать: и шифрование всего один раз и ретрансляция любым прокси или хттп сервером ну и потому что они делают железо и могут себе позволить такое. Для клиента это всё выглядит как полная херня уровня костыль на костыле. Собственно многие клиенты и написаны вообще не по спекам, они тупо выкачивают плей лист и потом выкачивают всё что в нём и болт они клали на всякие там тэги и шифрования и тп. Те если бы яблоко не делало свои фуфлоны и планшеты у хлс вообще бы не было шанса.

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

Тут и всякие RTP/rtsp и rtmp которые не оправданно сложные и торрент тв.

Только щас понял что не написал про мультикаст. Признаюсь - я не знаю истории возникновения вещания в нём. С точки зрения программиста плеера он даже в чём то легче хтпп.

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.