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

msd Lite - тестируем Замена udpxy если у кого оно ещё осталось

Бесплатная версия моей msd для вещания телека, BSD лицензия: http://www.netlab.linkpc.net/wiki/ru:software:msd:lite

И полная версия: https://github.com/rozhuk-im/msd

 

По идее должна 10G+ держать при правильном тюнинге ибо использует sendfile() для отсылки клиентам, что даёт ядру возможность использовать все доступные оффлоадинги а не заниматься копированием.

Share this post


Link to post
Share on other sites

На 2-x win и 2-х linux разные версии vlc не захотели подключаться, ругается

[0xb4400fb0] access_http access error: malformed header line: msd_lite/1.01 HTTP stream hub by Rozhuk Ivan

 

после исправления src/stream_sys.c

 

/* Base HTTP headers. */

if (0 != core_info_get_os_ver("/", 1, osver,

(sizeof(osver) - 1), NULL))

memcpy(osver, "Generic OS/1.0", 15);

shbskt->base_http_hdrs_size = snprintf((char*)shbskt->base_http_hdrs,

sizeof(shbskt->base_http_hdrs),

"HTTP/1.1 200 OK\r\n"

"Server: %s\r\n"

"Connection: close",

app_ver);

 

заработало

Share this post


Link to post
Share on other sites

Пофиксил, сейчас должен корректно отдавать заголовки.

 

Будем тестировать.

 

Раз пришлось поковыряться с мультикастом, может напишите, что-нибудь для удаленного тестирования качества работы iptv.

 

Хотя-бы по одному каналу. Задержки, дропы, может еще что.

Share this post


Link to post
Share on other sites

Будем тестировать.

 

Раз пришлось поковыряться с мультикастом, может напишите, что-нибудь для удаленного тестирования качества работы iptv.

 

Хотя-бы по одному каналу. Задержки, дропы, может еще что.

 

Astra : https://cesbo.com

 

для анализа потока : astra --analyze udp://адресс:порт

Share this post


Link to post
Share on other sites

Будем тестировать.

 

Раз пришлось поковыряться с мультикастом, может напишите, что-нибудь для удаленного тестирования качества работы iptv.

 

Хотя-бы по одному каналу. Задержки, дропы, может еще что.

 

Astra : https://cesbo.com

 

для анализа потока : astra --analyze udp://адресс:порт

 

Обертка над ffmpeg ? :)

Share this post


Link to post
Share on other sites

Иван, плз подскажите, msd-lite умеет разобрать mpeg4 во входящем мультикаст потоке ? mpeg2 работает нормально

Share this post


Link to post
Share on other sites

Строго говоря, mpeg2 / mpeg4 - играет разницу только для декодера, оба заворачиваются в mpeg2-ts перед передачей в эфир.

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

 

В лайт версии не происходит обработки потока вообще, кроме случая когда прилетает RTP мультикастом - от него отрезается rtp заголовок.

Полная версия умеет разбирать mpeg2-ts, чтобы показать пиды, ошибки и прочее.

Share this post


Link to post
Share on other sites

А я забыл, она под фряху только играет?

 

upd. Под линуха собралось нормально и запустилось. Правда потоки не отдает. ЧЯДНТ?

 

[2014-11-19 23:36:07]: /udp/237.5.1.3:1234@eth0.281: Created.
[2014-11-19 23:36:07]: /udp/237.5.1.3:1234@eth0.281 - 34.51.124.9:60265: attached, cli_count = 1
[2014-11-19 23:36:07]: /udp/237.5.1.3:1234@eth0.281 - 34.51.124.9:60266: attached, cli_count = 2
[2014-11-19 23:36:07] str_hub_send_to_clients, line 825: error 104: Connection reset by peer /udp/237.5.1.3:1234@eth0.281 - 34.51.124.9:60265: disconnected.
[2014-11-19 23:36:07]: /udp/237.5.1.3:1234@eth0.281 - 34.51.124.9:60265: deattached, cli_count = 1
[2014-11-19 23:36:07]: /udp/237.5.1.3:1234@eth0.281 - 34.51.124.9:60267: attached, cli_count = 2
[2014-11-19 23:36:08] str_hub_send_to_clients, line 825: error 104: Connection reset by peer /udp/237.5.1.3:1234@eth0.281 - 34.51.124.9:60266: disconnected.
[2014-11-19 23:36:08]: /udp/237.5.1.3:1234@eth0.281 - 34.51.124.9:60266: deattached, cli_count = 1
[2014-11-19 23:36:08] str_hub_send_to_clients, line 825: error 104: Connection reset by peer /udp/237.5.1.3:1234@eth0.281 - 34.51.124.9:60267: disconnected.
[2014-11-19 23:36:08]: /udp/237.5.1.3:1234@eth0.281 - 34.51.124.9:60267: deattached, cli_count = 0
[2014-11-19 23:36:08] str_hubs_bckt_timer_service, line 407: /udp/237.5.1.3:1234@eth0.281: No more clients, selfdestroy.
[2014-11-19 23:36:08]: /udp/237.5.1.3:1234@eth0.281: Destroyed.

 

upd2. Помог солюшен из второго поста этой темы. Версия качалась 1.0.5, ошибка была той же самой "access_mms error: malformed header line: msd_lite/1.05 HTTP stream hub by Rozhuk Ivan"

Share this post


Link to post
Share on other sites

Под фряху должно проца меньше жрать.

У можете сдампить ответ tcpdump -A ... чтобы посмотреть что отдаёт такого страшного?

У меня под винду 2.1.5 влц не ругается.

Share this post


Link to post
Share on other sites

На MAG250 работает так же как и udpprxy, тормозит. Начинаю думать, что это приставка голимая какая-то. Но странно, конечно. На пк всё отлично, быстро, не сыпется, но на пк никому не нужно, у нас по крайней мере.

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

 

(не пойму есть звук или нет на видео, в реальности там оно подлагивает мальца, а на первом канале вообще тишина была)

 

VLC под винду был 2.1.4. Сдампить можно, попозже только.

Share this post


Link to post
Share on other sites

На MAG250 работает так же как и udpprxy, тормозит.

Тоже было что то, когда плей лист туда выткал без портала, с порталом нормально. Уже не помню деталей.

 

Начинаю думать, что это приставка голимая какая-то.

Попробуйте канал в начале открыть на компе, а потом приставкой открывать, чтобы она получала прекеш.

 

VLC под винду был 2.1.4. Сдампить можно, попозже только.

на 1.0.5 из УРЛ /stat выложите System info, тогда tcpdump не нужен будет чтобы подтвердить догадку.

1.0.7 попробуйте без патчей.

Share this post


Link to post
Share on other sites

На MAG250 работает так же как и udpprxy, тормозит. Начинаю думать, что это приставка голимая какая-то. Но странно, конечно. На пк всё отлично, быстро, не сыпется, но на пк никому не нужно, у нас по крайней мере.

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

 

 

если там приставка без портала то это скорее нормально

если с порталом то убедитесь что в плэйлисте указывается соответствующий солюшен

ffrt http://192.168.1.1:8888/127.0.0.1:8899/udp/239.1.1.1:1234

у нас пока не было _ffrt_ тоже были странности на юникасти с МАГ-ом

Share this post


Link to post
Share on other sites

не собирается на 7.2 i386, или нужны какие то доп либы?

[root@gw /usr/local/src/msd_lite-1.07]# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for pthread_create in -lpthread... yes
checking for clock_gettime... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/config.h
config.status: executing depfiles commands
[root@office-gw /usr/local/src/msd_lite-1.07]# make
Making all in src
make  all-am
depbase=`echo msd_lite.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; gcc -DHAVE_CONFIG_H -I.     -I ./include/ -pipe -O2 -DNDEBUG -DHTTP_SRV_XML_CONFIG -fstack-protector -fomit-frame-pointer -fPIE -ffast-math  -MT msd_lite.o -MD -MP -MF $depbase.Tpo -c -o msd_lite.o msd_lite.c && mv -f $depbase.Tpo $depbase.Po
depbase=`echo msd_lite_stat_text.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; gcc -DHAVE_CONFIG_H -I.     -I ./include/ -pipe -O2 -DNDEBUG -DHTTP_SRV_XML_CONFIG -fstack-protector -fomit-frame-pointer -fPIE -ffast-math  -MT msd_lite_stat_text.o -MD -MP -MF $depbase.Tpo -c -o msd_lite_stat_text.o msd_lite_stat_text.c && mv -f $depbase.Tpo $depbase.Po
msd_lite_stat_text.c: In function 'gen_sock_tcp_stat_text':
msd_lite_stat_text.c:120: error: 'struct tcp_info' has no member named 'tcpi_rto'
msd_lite_stat_text.c:120: error: 'struct tcp_info' has no member named 'tcpi_snd_mss'
msd_lite_stat_text.c:120: error: 'struct tcp_info' has no member named 'tcpi_rcv_mss'
msd_lite_stat_text.c:120: error: 'struct tcp_info' has no member named 'tcpi_last_data_recv'
msd_lite_stat_text.c:120: error: 'struct tcp_info' has no member named 'tcpi_snd_rexmitpack'
msd_lite_stat_text.c:120: error: 'struct tcp_info' has no member named 'tcpi_rcv_ooopack'
msd_lite_stat_text.c:120: error: 'struct tcp_info' has no member named 'tcpi_snd_zerowin'
msd_lite_stat_text.c:120: error: 'struct tcp_info' has no member named 'tcpi_rto'
msd_lite_stat_text.c:120: error: 'struct tcp_info' has no member named 'tcpi_snd_mss'
msd_lite_stat_text.c:120: error: 'struct tcp_info' has no member named 'tcpi_rcv_mss'
msd_lite_stat_text.c:120: error: 'struct tcp_info' has no member named 'tcpi_last_data_recv'
msd_lite_stat_text.c:120: error: 'struct tcp_info' has no member named 'tcpi_snd_rexmitpack'
msd_lite_stat_text.c:120: error: 'struct tcp_info' has no member named 'tcpi_rcv_ooopack'
msd_lite_stat_text.c:120: error: 'struct tcp_info' has no member named 'tcpi_snd_zerowin'
*** Error code 1

Stop in /usr/local/src/msd_lite-1.07/src.
*** Error code 1

Stop in /usr/local/src/msd_lite-1.07/src.
*** Error code 1

Stop in /usr/local/src/msd_lite-1.07.
[root@gw /usr/local/src/msd_lite-1.07]# uname -a
FreeBSD gw.ua 7.2-STABLE FreeBSD 7.2-STABLE #2: Tue Jun 16 11:11:44 UTC 2009     root@mer:/usr/src/sys/i386/compile/A  i386

Edited by t0ly

Share this post


Link to post
Share on other sites

у нас пока не было _ffrt_ тоже были странности на юникасти с МАГ-ом

Точно, оно и у меня было :)

 

не собирается на 7.2 i386, или нужны какие то доп либы?

Не либы, а хотя бы восьмёрка.

Можно руками поправить в файле msd_lite_stat_text.c, функция gen_sock_tcp_stat_text()

самое простое отключить нафик этот блок кода

заменив

#ifdef BSD /* BSD specific code. */

на

#if 0

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

Share this post


Link to post
Share on other sites

VLC под винду был 2.1.4. Сдампить можно, попозже только.

 

на 1.0.5 из УРЛ /stat выложите System info, тогда tcpdump не нужен будет чтобы подтвердить догадку.

1.0.7 попробуйте без патчей.

 

 

1.0.5 System info

 

System info
OS: Linux 3.2.0-4-amd64
Hostname: iptv-streamer-2.(none)
Version: #1 SMP Debian 3.2.60-1+deb7u3

 

На версии 1.0.7 история повторяется.

access_http error: malformed header line: msd_lite/1.07 HTTP stream hub by Rozhuk Ivan
access_http error: malformed header line: msd_lite/1.07 HTTP stream hub by Rozhuk Ivan
access_mms error: malformed header line: msd_lite/1.07 HTTP stream hub by Rozhuk Ivan

 

Дамп кину личкой, не хочу светить адрес сервера, там пока ничем не прикрытый зад :)

 

если там приставка без портала то это скорее нормально

если с порталом то убедитесь что в плэйлисте указывается соответствующий солюшен

ffrt http://192.168.1.1:8888/127.0.0.1:8899/udp/239.1.1.1:1234

у нас пока не было _ffrt_ тоже были странности на юникасти с МАГ-ом

 

Большое спасибо за подсказку, дам программистам пинка в понедельник за то что читать мануал не умеют. Это всё описано в javascript api, оказывается. Будем проверять.

Share this post


Link to post
Share on other sites

Запустил в тесте. Всё работает нормально, кроме HD-каналов на ipad\iphone (больше пока не на чем проверить, докатились), они через минуты 2 после старта сыпятся и в итоге встают.

 

Еще такой вопрос.

retransmits: 0

total_retrans: 1673

 

В чем разница?

Share this post


Link to post
Share on other sites

Система тюнингованная?

htcp модуль загружается?

http://www.netlab.linkpc.net/download/software/msd/tunings/linux/

 

В чём разница не скажу.

Это вывод структуры TCP_INFO, она под фрёй и линухом разная, и как то без документации.

Share this post


Link to post
Share on other sites

не собирается на

FreeBSD mcast.-.od.ua 8.3-RELEASE FreeBSD 8.3-RELEASE #2 r236167: Thu Sep 27 15:19:18 EEST 2012 root@mcast.-.od.ua:/usr/src/sys/amd64/compile/GENERIC_MCAST amd64

 

после make

пишет

 

Making all in src
make  all-am
depbase=`echo src/core_helpers.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; gcc -DHAVE_CONFIG_H -I.     -I ./include/ -pipe -O2 -DNDEBUG -DHTTP_SRV_XML_CONFIG -fstack-protector -fomit-frame-pointer -fPIE -ffast-math  -MT src/core_helpers.o -MD -MP -MF $depbase.Tpo -c -o src/core_helpers.o src/core_helpers.c && mv -f $depbase.Tpo $depbase.Po
src/core_helpers.c: In function 'mmalloc_fd':
src/core_helpers.c:93: error: 'MAP_ALIGNED_SUPER' undeclared (first use in this function)
src/core_helpers.c:93: error: (Each undeclared identifier is reported only once
src/core_helpers.c:93: error: for each function it appears in.)
*** Error code 1

Stop in /root/src/msd_light/msd_lite-1.08/src.
*** Error code 1

Stop in /root/src/msd_light/msd_lite-1.08/src.
*** Error code 1

Stop in /root/src/msd_light/msd_lite-1.08.

Edited by t0ly

Share this post


Link to post
Share on other sites

 

не собирается на 7.2 i386, или нужны какие то доп либы?

Не либы, а хотя бы восьмёрка.

Можно руками поправить в файле msd_lite_stat_text.c, функция gen_sock_tcp_stat_text()

самое простое отключить нафик этот блок кода

заменив

#ifdef BSD /* BSD specific code. */

на

#if 0

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

 

теперь так

Making all in src
make  all-am
depbase=`echo msd_lite.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; gcc -DHAVE_CONFIG_H -I.     -I ./include/ -pipe -O2 -DNDEBUG -DHTTP_SRV_XML_CONFIG -fstack-protector -fomit-frame-pointer -fPIE -ffast-math  -MT msd_lite.o -MD -MP -MF $depbase.Tpo -c -o msd_lite.o msd_lite.c && mv -f $depbase.Tpo $depbase.Po
depbase=`echo msd_lite_stat_text.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; gcc -DHAVE_CONFIG_H -I.     -I ./include/ -pipe -O2 -DNDEBUG -DHTTP_SRV_XML_CONFIG -fstack-protector -fomit-frame-pointer -fPIE -ffast-math  -MT msd_lite_stat_text.o -MD -MP -MF $depbase.Tpo -c -o msd_lite_stat_text.o msd_lite_stat_text.c && mv -f $depbase.Tpo $depbase.Po
depbase=`echo stream_sys.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; gcc -DHAVE_CONFIG_H -I.     -I ./include/ -pipe -O2 -DNDEBUG -DHTTP_SRV_XML_CONFIG -fstack-protector -fomit-frame-pointer -fPIE -ffast-math  -MT stream_sys.o -MD -MP -MF $depbase.Tpo -c -o stream_sys.o stream_sys.c && mv -f $depbase.Tpo $depbase.Po
stream_sys.c: In function 'str_hubs_bckt_timer_service':
stream_sys.c:393: warning: this decimal constant is unsigned only in ISO C90
stream_sys.c:394: warning: this decimal constant is unsigned only in ISO C90
stream_sys.c: In function 'str_hub_send_to_client':
stream_sys.c:778: warning: cast from pointer to integer of different size
stream_sys.c: In function 'str_hub_thrpt_get_by_name':
stream_sys.c:143: warning: passing argument 1 of 'md5_get_digest' discards qualifiers from pointer target type
depbase=`echo src/core_http_srv.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; gcc -DHAVE_CONFIG_H -I.     -I ./include/ -pipe -O2 -DNDEBUG -DHTTP_SRV_XML_CONFIG -fstack-protector -fomit-frame-pointer -fPIE -ffast-math  -MT src/core_http_srv.o -MD -MP -MF $depbase.Tpo -c -o src/core_http_srv.o src/core_http_srv.c && mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/xml.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; gcc -DHAVE_CONFIG_H -I.     -I ./include/ -pipe -O2 -DNDEBUG -DHTTP_SRV_XML_CONFIG -fstack-protector -fomit-frame-pointer -fPIE -ffast-math  -MT src/xml.o -MD -MP -MF $depbase.Tpo -c -o src/xml.o src/xml.c && mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/HTTP.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; gcc -DHAVE_CONFIG_H -I.     -I ./include/ -pipe -O2 -DNDEBUG -DHTTP_SRV_XML_CONFIG -fstack-protector -fomit-frame-pointer -fPIE -ffast-math  -MT src/HTTP.o -MD -MP -MF $depbase.Tpo -c -o src/HTTP.o src/HTTP.c && mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/core_r_buf.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; gcc -DHAVE_CONFIG_H -I.     -I ./include/ -pipe -O2 -DNDEBUG -DHTTP_SRV_XML_CONFIG -fstack-protector -fomit-frame-pointer -fPIE -ffast-math  -MT src/core_r_buf.o -MD -MP -MF $depbase.Tpo -c -o src/core_r_buf.o src/core_r_buf.c && mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/core_thrp.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; gcc -DHAVE_CONFIG_H -I.     -I ./include/ -pipe -O2 -DNDEBUG -DHTTP_SRV_XML_CONFIG -fstack-protector -fomit-frame-pointer -fPIE -ffast-math  -MT src/core_thrp.o -MD -MP -MF $depbase.Tpo -c -o src/core_thrp.o src/core_thrp.c && mv -f $depbase.Tpo $depbase.Po
src/core_thrp.c: In function 'thrp_flags_to_kq':
src/core_thrp.c:287: error: 'EV_DISPATCH' undeclared (first use in this function)
src/core_thrp.c:287: error: (Each undeclared identifier is reported only once
src/core_thrp.c:287: error: for each function it appears in.)
src/core_thrp.c: In function 'thrpt_data_event_init':
src/core_thrp.c:301: error: 'EVFILT_USER' undeclared (first use in this function)
src/core_thrp.c:303: error: 'NOTE_FFNOP' undeclared (first use in this function)
src/core_thrp.c: In function 'thrpt_msg_send':
src/core_thrp.c:388: error: 'EVFILT_USER' undeclared (first use in this function)
src/core_thrp.c:390: error: 'NOTE_TRIGGER' undeclared (first use in this function)
src/core_thrp.c: In function 'thrpt_loop':
src/core_thrp.c:523: error: 'EVFILT_USER' undeclared (first use in this function)
*** Error code 1

Stop in /root/src/msd_lite-1.08/src.
*** Error code 1

Stop in /root/src/msd_lite-1.08/src.
*** Error code 1

Stop in /root/src/msd_lite-1.08.

Share this post


Link to post
Share on other sites

'MAP_ALIGNED_SUPER'

Можно просто удалить.

 

FreeBSD mcast.-.od.ua 8.3-RELEASE
src/core_thrp.c:301: error: 'EVFILT_USER' undeclared (first use in this function) src/core_thrp.c:303: error: 'NOTE_FFNOP' undeclared (first use in this function) src/core_thrp.c: In function 'thrpt_msg_send': src/core_thrp.c:388: error: 'EVFILT_USER' undeclared (first use in this function) src/core_thrp.c:390: error: 'NOTE_TRIGGER' undeclared (first use in this function) src/core_thrp.c: In function 'thrpt_loop': src/core_thrp.c:523: error: 'EVFILT_USER' undeclared (first use in this function)

Не сочетается малость.

Начиная с 8.1 они уже есть, а в 8.0 их ещё не было.

Может у вас мир не обновлён?

Share this post


Link to post
Share on other sites

все логично

в t0ly (26 декабря 2014 - 12:31)

речь шла о 7.2 (не собрал)

а в t0ly (26 декабря 2014 - 12:21)

о 8.3 (собрал следуя советам)

 

я так понима на 7.2 никак не получится собрать?

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.