nemo_lynx Опубликовано 3 июня, 2016 (изменено) · Жалоба Все, поборол! Засада была в /etc/login.conf - там было прописано ограничение на locked memory = 64k - рудимент от многочисленных апгрейдов ядра. После снятия ограничений msd_lite заработала. П.С. По первым впечатлениям msd явно получше udpxy. Все проблемные для udpxy каналы msd ретранслирует идеально. Автору респект! Изменено 3 июня, 2016 пользователем nemo_lynx Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 3 июня, 2016 · Жалоба Я всё не соберусь обновить - выложить, там внутри лочить память не принципиально, но пару % экономии проца оно точно даёт при больших нагрузках. Для HD рекомендую прекеш 8 мегабайт, а для SD 4 мегабайта. lite не умеет принимать когда клиентов нет, отчасти сделано для того чтобы не забивать память когда появляется продвинутый абонент который сканирует мультикаст группы. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ser970 Опубликовано 14 сентября, 2016 (изменено) · Жалоба добрый день. 2016-09-13 23:39:58] main, line 420: setpriority() error 13: Permission denied^M [2016-09-13 23:39:58]: Thread 7 started...^M [2016-09-13 23:39:58]: Bind thread 5 to CPU 5^M [2016-09-13 23:39:58]: Thread 6 started...^M [2016-09-13 23:39:58]: Bind thread 7 to CPU 7^M [2016-09-13 23:39:58]: Bind thread 6 to CPU 6^M [2016-09-13 23:39:58]: hostname: *^M [2016-09-13 23:39:58] http_srv_acc_add, line 502: io_net_is_tcp_cc_avail() fail, this is not fatal. error 22: Invalid argument^M [2016-09-13 23:39:58]: bind 10.254.0.3:1234 , backlog = 2048, cc_name = htcp^M [2016-09-13 23:39:58]: Thread 0 started...^M [2016-09-13 23:39:58]: Bind thread 4 to CPU 4^M [2016-09-13 23:39:58]: Bind thread 0 to CPU 0^M [2016-09-13 23:39:59]: /udp/239.0.0.87:4000@vlan1708: Created. (fd: 12)^M [2016-09-13 23:39:59]: /udp/239.0.0.87:4000@vlan1708 - 10.4.0.3:55255: attached, cli_count = 1^M [2016-09-13 23:39:59] str_src_r_buf_alloc, line 985: ... error 1: Operation not permitted^M [2016-09-13 23:39:59] str_src_recv_mc_cb, line 873: on receive error 1: Operation not permitted^M [2016-09-13 23:39:59]: /udp/239.0.0.87:4000@vlan1708 - 10.4.0.3:55255: deattached, cli_count = 0^M [2016-09-13 23:39:59]: /udp/239.0.0.87:4000@vlan1708: Destroyed.^M FreeBSD 9.3 amd64 а на 10.2 работает решил на 9 cc_htcp не загружалось.... Изменено 14 сентября, 2016 пользователем ser970 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 14 сентября, 2016 · Жалоба Попробуй: - увеличить sysctl vm.max_wired - запускай от рута - убедись что /tmp это md/tmpfs фс достаточного объёма с правами на запись выше уже пару раз обсуждалось что ещё можно подкрутить в таком случае, в частности в login.conf бывали рудименты. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ser970 Опубликовано 15 сентября, 2016 · Жалоба не протсо в 9 ветке /sbin/kldload cc_htcp Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Sonne Опубликовано 19 сентября, 2016 · Жалоба Можно вопросы по возможностям? Протокол трансляции только MPEG-TS over HTTP? Планируется ли поддержка HLS? Авторизация абонентов есть? Увидел, что упомянут Radius, это как то связано? Очень хотелось бы найти стриммер, который работает по радиусу. Что то типа приходит запрос от клиента, сервер дергает Радиус и разрешает доступ. В случае реджекта, клиенту крутится записанный рекламный ролик. Я, случаем, не хочу чего то странного? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 19 сентября, 2016 · Жалоба Это уже не в лайт версии явно :) Рабочий пока только mpeg2-ts@http. HLS планируется, и он уже в некотором виде есть, но сегментор не работает правильно либо я что то ещё упустил. С радиусом я застрял на схемах http авторизации, если забить и сделать просто по IP то можно быстрее. Про канал "денег дай" я думал уже давно, изначально в режекте у радиуса можно передавать текст, я планировал чтобы там было название канала/хаба. Аккаунтинг тоже не проблема, особенно если забить на возможные падения радиус сервера. Но сейчас у меня время уходит на прикручивание тюнеров. Я хочу помимо скучного статического приёма (когда один тюнер всегда принимает один транспондер и стримит его) сделать возможность динамически принимать по запросу, те допустим есть два тюнера и 4 транспондера, в конфиге прописаны все каналы со всех транспондеров и к любому из них можно в любой момент подключится. При обращении к каналу тюнер настраивается на нужный транспондер и начинает забирать все каналы с него. Если в это время кто то ещё захочет посмотреть каналы с др транспондера то его обслужит второй тюнер. Если приходит запрос на каналы с тарнспондера на который нет свободного тюнера то облом, если же есть тюнер который стримит каналы которые никто не смотрит то он пере настроится... Но это не для промышленного вещания а для домашнего удобства, чтобы по факту любой девайс мог рулить тюнерами прозрачно. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
No_name Опубликовано 20 сентября, 2016 (изменено) · Жалоба Бинарник, для скачивания у вас на сайте, под какую ОС(Freebsd)/32/64 собран? Изменено 20 сентября, 2016 пользователем Brainiac Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
No_name Опубликовано 21 сентября, 2016 · Жалоба root@convert:/usr/home/admin/msd_lite-1.08 # uname -a FreeBSD convert 8.4-RELEASE-p35 FreeBSD 8.4-RELEASE-p35 #0: Tue Jul 28 10:55:26 UTC 2015 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64 root@convert:/usr/home/admin/msd_lite-1.08 # make ... depbase=`echo src/core_log.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_log.o -MD -MP -MF $depbase.Tpo -c -o src/core_log.o src/core_log.c && mv -f $depbase.Tpo $depbase.Po 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 /usr/home/admin/msd_lite-1.08/src. *** Error code 1 Stop in /usr/home/admin/msd_lite-1.08/src. *** Error code 1 Stop in /usr/home/admin/msd_lite-1.08. Или все-таки надо под 9 или 10кой ставить? Из описания для лайт не понятно под какую версию ОС собирать Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 21 сентября, 2016 · Жалоба Под 8х можно собрать, нужно вот эту MAP_ALIGNED_SUPER удалить - это ничего не сломает. Следующую версию можно будет и под 7х собрать, но это никому видимо не надо уже :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
No_name Опубликовано 22 сентября, 2016 (изменено) · Жалоба Убрал как сказали, теперь следующее: ... epbase.Tpo $depbase.Po src/core_helpers.c: In function 'mmalloc_fd': src/core_helpers.c:95: error: expected expression before ')' token *** Error code 1 Stop in /usr/home/admin/msd_lite-1.08/src. *** Error code 1 Stop in /usr/home/admin/msd_lite-1.08/src. *** Error code 1 Stop in /usr/home/admin/msd_lite-1.08. Кстати, под FreeBSD 9.3-RELEASE-p42 собралось все отлично, но хотелось бы под 8ку Изменено 22 сентября, 2016 пользователем Brainiac Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 22 сентября, 2016 · Жалоба | MAP_ALIGNED_SUPER - вертикальную палочку тоже удалять надо :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
No_name Опубликовано 22 сентября, 2016 · Жалоба Ну вот, не знаю таких тонкостей. Теперь собралось. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
No_name Опубликовано 22 сентября, 2016 (изменено) · Жалоба Что-то пошло не так... msd.conf <?xml version="1.0" encoding="utf-8"?> <msd> <log> <file>/var/log/msd.log</file> </log> <threadPool> <threadsCount>0</threadsCount> <!-- 0 = auto --> <fBindToCPU>yes</fBindToCPU> <!-- Bind threads to CPUs. --> <fCacheGetTimeSyscall>yes</fCacheGetTimeSyscall> <!-- Cache gettime() syscalls.. --> <timerGranularity>100</timerGranularity> <!-- 1/1000 sec --> </threadPool> <systemResourceLimits> <!-- "unlimited" - value valid only in this section! --> <maxOpenFiles>8192</maxOpenFiles> <!-- Numbers only! --> <maxCoreFileSize>unlimited</maxCoreFileSize> <processPriority>-10</processPriority> <!-- Program scheduling priority. setpriority(). Hi: -20, Low: 20, Default: 0 --> </systemResourceLimits> <!-- HTTP server --> <!-- Sizes in kb, time in seconds --> <HTTP> <!-- HTTP server settings. --> <skt> <rcvBuf>4</rcvBuf> <sndBuf>256</sndBuf> <rcvTimeout>30</rcvTimeout> <sndTimeout>30</sndTimeout> </skt> <ioBufInitSize>4</ioBufInitSize> <!-- HTTP request receive buf initial size. --> <ioBufMaxSize>4</ioBufMaxSize> <!-- HTTP request receive max buf size. --> <bindList> <bind> <address>10.3.1.30:7088</address> <backlog>2048</backlog> <fAcceptFilter>yes</fAcceptFilter> <!-- Set SO_ACCEPTFILTER(httpready)/ TCP_DEFER_ACCEPT. --> <congestionControl>htcp</congestionControl> <!-- TCP_CONGESTION: replace cc from OS default --> </bind> </bindList> <hostnameList> <!-- This host names for all addresses. --> <hostname>*</hostname> </hostnameList> </HTTP> <hubProfileList> <!-- Stream hub profiles templates. --> <hubProfile> <fDropSlowClients>no</fDropSlowClients> <!-- Disconnect slow clients. --> <fSocketHalfClosed>no</fSocketHalfClosed> <!-- Enable shutdown(SHUT_RD) for clients. --> <fSocketTCPNoDelay>yes</fSocketTCPNoDelay> <!-- Enable TCP_NODELAY for clients. --> <fSocketTCPNoPush>yes</fSocketTCPNoPush> <!-- Enable TCP_NOPUSH / TCP_CORK for clients. --> <precache>512</precache> <!-- Pre cache size. Can be overwritten by arg from user request. --> <sndBlockSize>64</sndBlockSize> <!-- Send block size. Must be multiple of 4. --> <ringBufSize>256</ringBufSize> <!-- Stream receive ring buffer size. Must be multiple of sndBlockSize. --> <skt> <sndBuf>512</sndBuf> <!-- Max send block size, apply to clients sockets only, must be > sndBlockSize. --> <congestionControl>htcp</congestionControl> <!-- TCP_CONGESTION: this value replace/overwrite(!) all others cc settings: cc f </skt> <headersList> <!-- Custom HTTP headers (sended before stream). --> <header>Pragma: no-cache</header> <header>Content-Type: video/mpeg</header> <header>ContentFeatures.DLNA.ORG: DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000</header> <header>TransferMode.DLNA.ORG: Streaming</header> </headersList> </hubProfile> </hubProfileList> <sourceProfileList> <!-- Stream source profiles templates. --> <sourceProfile> <skt> <rcvBuf>512</rcvBuf> <!-- Multicast recv socket buf size. --> <rcvLowat>48</rcvLowat> <!-- Actual cli_snd_block_min if polling is off. --> <rcvTimeout>2</rcvTimeout> <!-- STATUS, Multicast recv timeout. --> </skt> <!-- Source connection specific info. --> <udp> <!-- For: udp, udp-rtp, multicast-udp and multicast-udp-rtp. --> <address>239.255.0.1:1234</address> </udp> <multicast> <!-- For: multicast-udp and multicast-udp-rtp. --> <ifName>vlan10</ifName> <!-- For multicast receive. --> </multicast> </sourceProfile> </sourceProfileList> </msd> При запуске в VLC http://10.3.1.30:7088/udp/239.255.0.1:1234 вываливается: root@convert:/usr/home/admin # msd_lite -v -c /usr/local/etc/msd.conf [2016-08-25 02:55:50]: Multi stream daemon lite 1.08: started [2016-08-25 02:55:50]: Build: Aug 24 2016 21:40:11, Release [2016-08-25 02:55:50]: CPU count: 4 [2016-08-25 02:55:50]: descriptor table size: 11095 (max files) [2016-08-25 02:55:50]: Thread 2 started... [2016-08-25 02:55:50]: Thread 1 started... [2016-08-25 02:55:50]: Thread 3 started... [2016-08-25 02:55:50]: Bind thread 1 to CPU 1 [2016-08-25 02:55:50]: Bind thread 2 to CPU 2 [2016-08-25 02:55:50]: hostname: * [2016-08-25 02:55:50]: Bind thread 3 to CPU 3 [2016-08-25 02:55:50] http_srv_acc_add, line 502: io_net_is_tcp_cc_avail() fail, this is not fatal. error 22: Invalid argument [2016-08-25 02:55:50]: bind 10.3.1.30:7088, backlog = 2048, cc_name = htcp [2016-08-25 02:55:50]: Thread 0 started... [2016-08-25 02:55:50]: Bind thread 0 to CPU 0 [2016-08-25 02:56:08] http_srv_new_conn_cb, line 866: error 55: No buffer space available 10.8.20.6:2813: io_net_snd_tune(), this is not fatal. [2016-08-25 02:56:08] str_hub_create_int, line 502: io_net_rcv_tune() error 55: No buffer space available ошибка сегментации(core dumped) А что? Конфиг немного правил под себя тот, что прилагается с исходниками. Изменено 22 сентября, 2016 пользователем Brainiac Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 23 сентября, 2016 · Жалоба http://www.netlab.li...BSD/sysctl.conf систему надо тюнить Чёртов парсер форума, короче скопипастишь из файла по ссылке абзацы: Хотя бы: # RESOURCE TUNINGS # NET TUNINGS Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
No_name Опубликовано 23 сентября, 2016 (изменено) · Жалоба Закинул копипасту, нормально, пошло, для теста пока хватит. Что интересно, на udpxy без крутилок взлетело, вот только как он было бы под большой нагрузкой - не знаю. Ну и под 8 тоже надо /sbin/kldload cc_htcp Изменено 23 сентября, 2016 пользователем Brainiac Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 23 сентября, 2016 · Жалоба Можно сделать чтобы и без крутилок, но результат будет похуже: каналы будут дольше переключатся и нагрузка на систему выше. Большая нагрузка для этого начинается после 10г. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
No_name Опубликовано 26 сентября, 2016 (изменено) · Жалоба Потестил. На клиентах где vlc вроде все четко, единственная проблема с дюной, почему то, были время от времени задержки(~0.1мс) в картинке и звуке. Хотя, тут же, переводя дюну на мультикаст, все выравнивалось. Буфера в настройках дюны крутил - бесполезно. И еще, я так и не понял, для кольцевого буфера, в лайте, можно менять место расположения или там жестко прописано? Кольцевой буфер, он должен быть в виде файлов, я так понимаю? Изменено 26 сентября, 2016 пользователем Brainiac Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 26 сентября, 2016 · Жалоба На каком этапе были задержки? На старте или заикалось уже во время просмотра? Если первое - то возможно потому что лайт не держит каналов на которых нет клиентов, и когда приходит первый клиент ему приходится немного подождать. Можно, но нужна будет перекомпиляция. Лайт демонстрирует основной принцип и плюс конфиг у него по проще - не все хотят читать мануалы а профит от зерокопи показать охота :) В полной версии с кольцевым буфером сложнее: - можно выключить ZeroCopyOnSend и тогда он будет всегда в памяти, на всех системах, но нагрузка на систему как минимум немного вырастет и вероятно чуть меньше будут использоваться оффлоадинги вида TSO в сетевухах при включённом ZeroCopyOnSend - на фре начиная с 10 оно создаёт "файлы" в памяти (не tmp и не md фс) (shm вариант) - на линуксе shm всегда падает в tmpfs раздел который система сама создаёт - вместо shm можно указать любой путь на фс, я обычно /tmp указываю Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
No_name Опубликовано 26 сентября, 2016 · Жалоба На каком этапе были задержки? На старте или заикалось уже во время просмотра? Если первое - то возможно потому что лайт не держит каналов на которых нет клиентов, и когда приходит первый клиент ему приходится немного подождать. Во время просмотра такие микрозатыки, картинка не сыпется, а на милисекунду притормаживается что-ли со звуком. Что-то сразу не додумался, надо еще на маге будет потестить. Под влц более-менее сносно время задержки между переключениями каналов, на дюне довольно существенно дольше, до 7-10 секунд доходит. Но это скорее всего ограничения лайт версии? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 26 сентября, 2016 · Жалоба Во время просмотра такие микрозатыки, картинка не сыпется, а на милисекунду притормаживается что-ли со звуком. Наблюдал похожую проблему давненько уже на реалтеках, возникала когда стример кидал данные большими блоками, те по 64к было нормально а по 1м оно затыкалось на этапе когда данные в приставку пришли и она копировала их из сокета в плеер, я так думаю. Чуть позже напишу какие крутилки крутить в мсд. Можно в качестве временной меры повесить wget чтобы канал стримил всегда в /dev/null и проверить, тогда кольцевуй буфер будет всегда доступен и задержек быть не должно. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 26 сентября, 2016 · Жалоба Если используется конфиг http://www.netlab.linkpc.net/download/software/msd/lite/msd_lite.conf <hubProfileList> / <hubProfile> / <sndBlockSize> = 1 <ringBufSize> = 32768 <sourceProfileList> / <sourceProfile> / <skt> / <rcvLowat> = 16 Это выровняет исходящий траф но увеличит нагрузку на проц. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
gebs Опубликовано 4 ноября, 2016 · Жалоба Здравствуйте, ткните носом в документацию, как разложить MPTS потоки. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 5 ноября, 2016 · Жалоба Никак. Лайт версия в содержимое вообще даже не смотрит, не говоря о модификации. В полной версии в планах, сразу после работы с тюнерами. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
gebs Опубликовано 7 ноября, 2016 (изменено) · Жалоба Спасибо, Иван, ждём, готовы приобрести платную версию. Сейчас сравниваем с астрой, скорость переключениея каналов у msd быстрее в среднем на 30-40% По срокам не сообщите? Изменено 7 ноября, 2016 пользователем gebs Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...