Как сдампить мультикаст

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Abyrvalg
мл. сержант
Сообщения: 129
Зарегистрирован: 2009-03-04 10:24:44

Как сдампить мультикаст

Непрочитанное сообщение Abyrvalg » 2016-04-12 20:56:53

Привет тебе, All!

Есть такая утилита multicat. Она позволяет легко и непринуждённо сдампить прямо в консоли мультимедийный контент, идущий мультикастом.
Но, похоже, спроектирована она только для Linux. Попытки установить её на FreeBSD фейлятся. Попытки установить bitstream, от которого она зависит, - тоже.
В портах этих утилит нет.

Может быть, для FreeBSD существует аналог?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1331
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

Как сдампить мультикаст

Непрочитанное сообщение dekloper » 2016-04-12 21:25:42

Abyrvalg писал(а): Попытки установить её на FreeBSD фейлятся.
просто вы не умеете ее готовить..
The multicat suite of applications is very lightweight and designed to operate in tight environments. Memory and CPU usages are kept to a minimum, and they feature only one thread of execution. It is designed to run on Linux, FreeBSD and Mac OS X.
написано же - все пашет...
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

Abyrvalg
мл. сержант
Сообщения: 129
Зарегистрирован: 2009-03-04 10:24:44

Как сдампить мультикаст

Непрочитанное сообщение Abyrvalg » 2016-04-12 21:49:42

Буду признателен, если подскажете, что делать. Вроде бы ругань на отсутствие bitstream, но когда пытаюсь его установить, то требуются какие-то аргументы. Мне не приходилось ещё настолько плотно знакомиться с утилитой install, чтобы разобраться в этом.

Код: Выделить всё

[user@home /tmp/multicat-2.1]$ sudo make
Password:
cc -O2 -pipe  -Wall -Wformat-security -O3 -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -D_ISOC99_SOURCE -D_BSD_SOURCE -g -c multicat.c
multicat.c:55:32: error: bitstream/ietf/rtp.h: No such file or directory
multicat.c:56:31: error: bitstream/mpeg/ts.h: No such file or directory
multicat.c:57:32: error: bitstream/mpeg/pes.h: No such file or directory
In file included from multicat.c:59:
util.h:59: error: field 'iph' has incomplete type
multicat.c: In function 'raw_Write':
multicat.c:282: error: 'struct udphdr' has no member named 'len'
multicat.c:292: warning: implicit declaration of function 'writev'
multicat.c: In function 'GetPCR':
multicat.c:753: warning: implicit declaration of function 'ts_get_pid'
multicat.c:755: warning: implicit declaration of function 'ts_validate'
multicat.c:760: warning: implicit declaration of function 'ts_has_adaptation'
multicat.c:760: warning: implicit declaration of function 'ts_get_adaptation'
multicat.c:761: warning: implicit declaration of function 'tsaf_has_pcr'
multicat.c:763: warning: implicit declaration of function 'tsaf_get_pcr'
multicat.c:763: warning: implicit declaration of function 'tsaf_get_pcrext'
...

Код: Выделить всё

[user@home /tmp/bitstream]$ sudo make install
INSTALL
usage: install [-bCcMpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 file2
       install [-bCcMpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 ... fileN directory
       install -d [-v] [-g group] [-m mode] [-o owner] directory ...
*** [install] Error code 64

Stop in /tmp/bitstream.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Как сдампить мультикаст

Непрочитанное сообщение Alex Keda » 2016-04-12 23:31:18

сдаётся мне, инсталл у вас не той системы.
недостататочно ГНУтый ....
Убей их всех! Бог потом рассортирует...

Abyrvalg
мл. сержант
Сообщения: 129
Зарегистрирован: 2009-03-04 10:24:44

Как сдампить мультикаст

Непрочитанное сообщение Abyrvalg » 2016-04-12 23:42:59

Уж какой есть... Где другой-то взять?

Система, если что, вот такая:
FreeBSD 9.1-RELEASE

pimlab
прапорщик
Сообщения: 483
Зарегистрирован: 2007-10-09 11:31:03

Как сдампить мультикаст

Непрочитанное сообщение pimlab » 2016-04-13 8:37:14

а если порпоробовать gmake

Abyrvalg
мл. сержант
Сообщения: 129
Зарегистрирован: 2009-03-04 10:24:44

Как сдампить мультикаст

Непрочитанное сообщение Abyrvalg » 2016-04-13 9:45:32

Сделал. Похоже, что-то получилось:

Код: Выделить всё

[user@home /tmp/bitstream]$ sudo gmake install
INSTALL  /usr/local/include/bitstream
И действительно:

Код: Выделить всё

[user@home /]$ ll /usr/local/include/bitstream
total 44
drwxr-xr-x   9 root  wheel   512B 13 апр 09:36 ./
drwxr-xr-x  90 root  wheel   5,0k 13 апр 09:36 ../
drwxr-xr-x   2 root  wheel   512B 13 апр 09:36 atsc/
-rw-r--r--   1 root  wheel   2,0k 13 апр 09:36 common.h
drwxr-xr-x   3 root  wheel   512B 13 апр 09:36 dvb/
drwxr-xr-x   2 root  wheel   512B 13 апр 09:36 ieee/
drwxr-xr-x   2 root  wheel   512B 13 апр 09:36 ietf/
drwxr-xr-x   3 root  wheel   512B 13 апр 09:36 mpeg/
drwxr-xr-x   2 root  wheel   512B 13 апр 09:36 scte/
drwxr-xr-x   2 root  wheel   512B 13 апр 09:36 smpte/
Далее, скопировал содержимое /usr/local/include/bitstream в каталог, где пытаюсь собрать multicat. Получаю всё ту же ошибку:

Код: Выделить всё

[user@home /tmp/multicat-2.1]$ sudo make
cc -O2 -pipe  -Wall -Wformat-security -O3 -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -D_ISOC99_SOURCE -D_BSD_SOURCE -g -c multicat.c
multicat.c:55:32: error: bitstream/ietf/rtp.h: No such file or directory
multicat.c:56:31: error: bitstream/mpeg/ts.h: No such file or directory
multicat.c:57:32: error: bitstream/mpeg/pes.h: No such file or directory
In file included from multicat.c:59:
util.h:59: error: field 'iph' has incomplete type
multicat.c: In function 'raw_Write':
multicat.c:282: error: 'struct udphdr' has no member named 'len'
multicat.c:292: warning: implicit declaration of function 'writev'
...
Хотя файлы-то есть!

Код: Выделить всё

[user@home /tmp/multicat-2.1]$ ll bitstream/ietf/rtp.h
-rw-r--r--  1 user wheel   5,5k 13 апр 09:36 bitstream/ietf/rtp.h
Где он их смотрит? Непонятно.
С gmake то же самое.

Abyrvalg
мл. сержант
Сообщения: 129
Зарегистрирован: 2009-03-04 10:24:44

Как сдампить мультикаст

Непрочитанное сообщение Abyrvalg » 2016-04-15 23:17:45

Проверил на FreeBSD 10.3: те же уши :(

Код: Выделить всё

% sudo make
cc -O2 -pipe   -Wall -Wformat-security -O3 -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -D_ISOC99_SOURCE -D_BSD_SOURCE -g -c multicat.c -o multicat.o
multicat.c:55:10: fatal error: 'bitstream/ietf/rtp.h' file not found
#include <bitstream/ietf/rtp.h>
         ^
1 error generated.
*** Error code 1

Stop.
make: stopped in /tmp/multicat-2.1
Правда, когда я скопировал содержимое +/usr/local/include/bitstream/+ в подкаталог каталога с исходниками multicat, картина изменилась:

Код: Выделить всё

% sudo make
cc -O2 -pipe   -Wall -Wformat-security -O3 -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -D_ISOC99_SOURCE -D_BSD_SOURCE -g -c multicat.c -o multicat.o
multicat.c:55:10: error: 'bitstream/ietf/rtp.h' file not found with <angled> include; use "quotes" instead
#include <bitstream/ietf/rtp.h>
         ^~~~~~~~~~~~~~~~~~~~~~
         "bitstream/ietf/rtp.h"
multicat.c:56:10: error: 'bitstream/mpeg/ts.h' file not found with <angled> include; use "quotes" instead
#include <bitstream/mpeg/ts.h>
         ^~~~~~~~~~~~~~~~~~~~~
         "bitstream/mpeg/ts.h"
multicat.c:57:10: error: 'bitstream/mpeg/pes.h' file not found with <angled> include; use "quotes" instead
#include <bitstream/mpeg/pes.h>
         ^~~~~~~~~~~~~~~~~~~~~~
         "bitstream/mpeg/pes.h"
In file included from multicat.c:59:
./util.h:59:19: error: field has incomplete type 'struct iphdr'
    struct  iphdr iph;
                  ^
./util.h:59:13: note: forward declaration of 'struct iphdr'
    struct  iphdr iph;
            ^
multicat.c:282:20: error: no member named 'len' in 'struct udphdr'
    pktheader.udph.len
    ~~~~~~~~~~~~~~ ^
multicat.c:292:19: warning: implicit declaration of function 'writev' is invalid in C99 [-Wimplicit-function-declaration]
    if ( (i_ret = writev( i_output_fd, iov, 2 )) < 0 )
                  ^
1 warning and 5 errors generated.
*** Error code 1

Stop.
make: stopped in /tmp/multicat-2.1
То есть, файлы в итоге как будто нашлись, но всё равно всё пошло кувырком.

Как же всё-таки "приготовить" multicat под FreeBSD? Похоже, разработчики соврали, для красного словца написали о поддержке Фри, а на самом деле и не тестировали даже :(


Abyrvalg
мл. сержант
Сообщения: 129
Зарегистрирован: 2009-03-04 10:24:44

Как сдампить мультикаст

Непрочитанное сообщение Abyrvalg » 2016-04-18 0:23:09

Поставлено, я написал об этом несколькими сообщениями выше.

Abyrvalg
мл. сержант
Сообщения: 129
Зарегистрирован: 2009-03-04 10:24:44

Как сдампить мультикаст

Непрочитанное сообщение Abyrvalg » 2016-04-19 12:57:03

Неужто никому не приходилось решать подобную задачу? :(

guest
проходил мимо

Как сдампить мультикаст

Непрочитанное сообщение guest » 2016-04-19 13:39:12

Abyrvalg писал(а):Неужто никому не приходилось решать подобную задачу? :(
далее, нужно правильно заменить __APPLE__ дефайны на __FreeBSD__, добавить опцию -D__FreeBSD__
и -lpthread, сборка разумеется gmake'ом, можно установить gcc и собирать им.

Если что-то не ясно, ну есть же список рассылки multicat-devel - спросите, подскажут, заодно, может
внесут соответствующие правки.

Abyrvalg
мл. сержант
Сообщения: 129
Зарегистрирован: 2009-03-04 10:24:44

Как сдампить мультикаст

Непрочитанное сообщение Abyrvalg » 2016-04-19 21:00:10

далее, нужно правильно заменить __APPLE__ дефайны на __FreeBSD__, добавить опцию -D__FreeBSD__
и -lpthread, сборка разумеется gmake'ом, можно установить gcc и собирать им.
Не подскажете ли, где и как правильно прописывать эти опции?
Пока я остановился на следующем:

Код: Выделить всё

$ sudo env CFLAGS=-I/usr/local/include gmake multicat
cc -I/usr/local/include -Wall -Wformat-security -O3 -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -D_ISOC99_SOURCE -D_BSD_SOURCE -g   -c -o multicat.o multicat.c
cc -I/usr/local/include -Wall -Wformat-security -O3 -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -D_ISOC99_SOURCE -D_BSD_SOURCE -g   -c -o util.o util.c
cc -o multicat multicat.o util.o -lrt
/usr/bin/ld: undefined reference to symbol `pthread_setschedparam@@FBSD_1.0' (try adding -lthr)
//lib/libthr.so.3: could not read symbols: Bad value
cc: error: linker command failed with exit code 1 (use -v to see invocation)
Makefile:32: ошибка выполнения рецепта для цели «multicat»
gmake: *** [multicat] Ошибка 1
Отправлено спустя 3 минуты 14 секунд:
Вывернулся, как и посоветовали:

Код: Выделить всё

sudo cc -o multicat multicat.o util.o -lthr
после чего инсталлировал, как выше.
Вроде прокатило. Буду проверять работоспособность завтра.

Abyrvalg
мл. сержант
Сообщения: 129
Зарегистрирован: 2009-03-04 10:24:44

Как сдампить мультикаст

Непрочитанное сообщение Abyrvalg » 2016-05-01 11:39:54

Всё работает как надо. Всем большое спасибо!