Перейти к содержимому
Калькуляторы

VLC сервер и закрытые каналы

ну ***, тогда уже купите картридер с феникс интерфейсом - стоит копейки! подрубите к ком-порту, суньте карту, настройте эмуль на кртридер - и будет всё открываться бюджетными картами наура. или локальный к-шаринг сделайте темже картридером
Вот где бы еще под этот феникс найти кардсервер с поддержкой Long ECM? Перерыл всё, попадается только патченный newcs под PowerPC платформу (то бишь ресиверы), а под обычный линукс или даже винду - хрен найдешь. Пришлось нагородить временное "решение" с использованием Sezam 7700 в качестве кардсервера. Так у него от количества запросов загрузка cpu - 100%, и не думаю что он долго протянет.

 

Может подскажешь где есть нормальный кардсервер под нормальную платформу?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А под виндой кто-нить настраивал VLC для вещания хотя бы не закодированных каналов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А под виндой кто-нить настраивал VLC для вещания хотя бы не закодированных каналов?

А в чем проблема с незакодированными каналами? Включай, вещай...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А кто вещал с этого спутника http://www.lyngsat.com/eam1.html в MPEG4?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

могу сказать, что связка sasc-ng и vlc работает. вот только vlc много цпу кушает. поэтому его вполне можно заменить getstream'ом:

http://silicon-verl.de/home/flo/projects/streaming/

А не знаешь, как заставить эту связку декодировать более 7 каналов с одного транспондера? До семи идет все нормально, а если еще хотя бы один добавить - ничего не идет ни на одном канале. При этом видно, что sasc-ng запрашивает ключи от всей кучи каналов, получает ответы, но декодировать не пытается (загрузка CPU маленькая - явно не похоже что он декодирует).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Настраиваем sasc-ng на нужный кардшаринг эккаунт и адаптер (например, нулевой)
Если можно на этом моменте подробней, куда вводить эти самые данные? Если не сложно привести пример.

у sasc-ng есть конфиг - /etc/sasc-ng/cardclient.conf. вот туда и вводить. пример - пожалуйста:

newcamd:ip-адрес сервера кардашаринга:порт:1/0500/FFFF:логин:пароль:ключ

1/0500/FFFF - emm/caid/mask

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А не знаешь, как заставить эту связку декодировать более 7 каналов с одного транспондера?

До семи идет все нормально, а если еще хотя бы один добавить - ничего не идет ни на одном канале. При этом видно, что sasc-ng запрашивает ключи от всей кучи каналов, получает ответы, но декодировать не пытается (загрузка CPU маленькая - явно не похоже что он декодирует).

может на сервере кардшаринга стоит ограничение на кол-во одновременных запросов?
Изменено пользователем Alexander

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

open-sasc-ng и sasc-ng - в чем отличия? у меня откомпилился open-sasc-ng, а просто sasc не захотел, не смотря на все мои ухищрения - говорит что не известен тип кернела

должен ли запускаться ./sasc-ng -j 0:1 без конфигов (cardclient,softcam и т.д.)?

правда при компиляции open-sasc выдается сообщение

echo 'const char *source_version =' '"'`(svnversion /win1/open-sasc-ng/open-sasc-ng 2>/dev/null) || echo Unknown`/`(svnversion /win1/open-sasc-ng/open-sasc-ng/dvbloopback 2>/dev/null) || echo Unknown`'";' > .vers.new ; diff .vers.new objs/version.cpp > .vers.diff 2>&1 ; if test -s .vers.diff ; then mv -f .vers.new objs/version.cpp ; fi ; rm -f .vers.new .vers.diff

make -C ./sc/PLUGINS/src/sc-src CXX=g++ CXXFLAGS="-O2 -fPIC -Wall -Woverloaded-virtual -g" SASC=1 STATIC=1 all

sed: can't read ../../../ci.c: No such file or directory - вот это сообщение мне не нравится

...

дальше все нормально, ошибок не выдает, sasc создается
$insmod dvbloopback.ko

$dmesg

[ 2635.146970] /win1/open-sasc-ng/open-sasc-ng/dvbloopback/module/dvb_loopback.c: frontend loopback driver v0.0.1

[ 2635.146981] dvbloopback: registering 1 adapters

[ 2635.150273] DVB: registering new adapter (DVB-LOOPBACK)

$./sasc-ng -j 0:1

Jan 18 15:31:40.157 : Version: 0.0.2-58M/58

Jan 18 15:31:40.157 CAM: initializing plugin: SoftCam (0.9.0-Unknown): A software emulated CAM

Jan 18 15:31:40 [general.info] SC version 0.9.0-Unknown initializing

Jan 18 15:31:40.158 CAM: starting plugin:

Jan 18 15:31:40 [general.info] SC version 0.9.0-Unknown starting

Jan 18 15:31:40 [core.load] ** Plugin config:

Jan 18 15:31:40 [core.load] ** Key updates (AU) are enabled (active CAIDs) (no prestart)

Jan 18 15:31:40 [core.load] ** Local systems DON'T take priority over cached remote

Jan 18 15:31:40 [core.load] ** Concurrent FF recordings are NOT allowed

Jan 18 15:31:40 [core.load] ** Force transfermode with digital audio

Jan 18 15:31:40 [core.load] ** ScCaps are 1 2 0 0 0 0 0 0 0 0

Jan 18 15:31:40 [core.load] ** Ignored CAIDs 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

Jan 18 15:31:40 [general.info] loading cardclient config from ./sc_files/cardclient.conf

Jan 18 15:31:40 [general.info] loading Viaccess cards from ./sc_files/Viaccess.KID

Jan 18 15:31:40 [core.load] loaded 1 Viaccess cards from ./sc_files/Viaccess.KID

Jan 18 15:31:40 [general.info] loading keys from ./sc_files/SoftCam.Key

Jan 18 15:31:40 [core.load] loaded 2 keys from ./sc_files/SoftCam.Key

Jan 18 15:31:40 [general.info] loading smartcard data from ./sc_files/smartcard.conf

Jan 18 15:31:40 [core.load] loaded 0 smartcard data from ./sc_files/smartcard.conf

Jan 18 15:31:40 [core.load] ** registered systems:

Jan 18 15:31:40 [core.load] ** Cardclient (pri -15)

Jan 18 15:31:40 [core.load] ** Conax (pri -10)

Jan 18 15:31:40 [core.load] ** ConstCW (pri -20)

Jan 18 15:31:40 [core.load] ** Cryptoworks (pri -10)

Jan 18 15:31:40 [core.load] ** Irdeto (pri -10)

Jan 18 15:31:40 [core.load] ** Nagra (pri -10)

Jan 18 15:31:40 [core.load] ** Nagra2 (pri -10)

Jan 18 15:31:40 [core.load] ** SC-Conax (pri -5)

Jan 18 15:31:40 [core.load] ** SC-Cryptoworks (pri -5)

Jan 18 15:31:40 [core.load] ** SC-Irdeto (pri -5)

Jan 18 15:31:40 [core.load] ** SC-Nagra (pri -5)

Jan 18 15:31:40 [core.load] ** SC-Seca (pri -5)

Jan 18 15:31:40 [core.load] ** SC-Viaccess (pri -5)

Jan 18 15:31:40 [core.load] ** SC-VideoGuard2 (pri -5)

Jan 18 15:31:40 [core.load] ** Seca (pri -10)

Jan 18 15:31:40 [core.load] ** @SHL (pri -10)

Jan 18 15:31:40 [core.load] ** Viaccess (pri -10)

Jan 18 15:31:40 [general.warn] no smartcard interface defined!

Jan 18 15:31:40.165 frontend: Could not open /dev/dvb/adapter1/frontend1. Error was: 16

Open failed

: Device or resource busy

в чем может быть причина?

 

виртуальный адаптер 1 создается:

$ ls /dev/dvb/*

/dev/dvb/adapter0:

demux0 dvr0 frontend0 net0

 

/dev/dvb/adapter1:

audio0 demux0 dvr0 frontend0 osd0 video0

audio1 demux1 dvr1 frontend1 osd1 video1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

фикс нашел : http://dolot.kipdola.com/index.php?title=Install_SASC-NG

нужно было сделать :

cp /usr/local/src/s2-liplianin/linux/drivers/media/dvb/dvb-core/dvbdev.h /usr/local/src/opensasc/dvbloopback/module/dvbdev.h

cp /usr/local/src/s2-liplianin/linux/drivers/media/dvb/dvb-core/dvbdev.h /usr/local/src/opensasc/dvbloopback/module/config-dvb/dvbdev.h

с этим все скомпилилось (правда нужно установить g++-4.2)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а по поводу семи каналов - столкнулся с такой же проблемой

как ее можно решить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А у меня вообще неполучается, выдает ошибку:

/usr/include/sys/types.h:62: error: conflicting declaration 'typedef __dev_t dev_t'
/usr/include/linux/types.h:13: error: 'dev_t' has a previous declaration as 'typedef __kernel_dev_t dev_t'
/usr/include/sys/types.h:67: error: conflicting declaration 'typedef __gid_t gid_t'
/usr/include/linux/types.h:27: error: 'gid_t' has a previous declaration as 'typedef __kernel_gid_t gid_t'
/usr/include/sys/types.h:72: error: conflicting declaration 'typedef __mode_t mode_t'
/usr/include/linux/types.h:15: error: 'mode_t' has a previous declaration as 'typedef __kernel_mode_t mode_t'
/usr/include/sys/types.h:77: error: conflicting declaration 'typedef __nlink_t nlink_t'
/usr/include/linux/types.h:16: error: 'nlink_t' has a previous declaration as 'typedef __kernel_nlink_t nlink_t'
/usr/include/sys/types.h:82: error: conflicting declaration 'typedef __uid_t uid_t'
/usr/include/linux/types.h:26: error: 'uid_t' has a previous declaration as 'typedef __kernel_uid_t uid_t'
/usr/include/time.h:105: error: conflicting declaration 'typedef void* timer_t'
/usr/include/linux/types.h:22: error: 'timer_t' has a previous declaration as 'typedef __kernel_timer_t timer_t'
/usr/include/sys/select.h:78: error: conflicting declaration 'typedef struct fd_set fd_set'
/usr/include/linux/types.h:12: error: 'fd_set' has a previous declaration as 'typedef struct __kernel_fd_set fd_set'
/usr/include/sys/types.h:235: error: conflicting declaration 'typedef __blkcnt_t blkcnt_t'
/usr/include/linux/types.h:124: error: 'blkcnt_t' has a previous declaration as 'typedef long unsigned int blkcnt_t'
make: *** [objs/dvbdevice.o] Error 1

 

P.S. Конфиг такой:

Alt-Linux branch 5.0, ядро, 2.6.18-ovz-rhel-alt2.M40.2, g++-4.1

 

P.S2. Драйвер компилил отдельно, соотвественно перет компиляцией указывал ./configure --dvb-dir=/root/install/v4l-dvb-b6a05e457df3

 

Что может быть? подскажите плз!!!

 

Может кто знает как кроме sasn-ng раскодировать каналы, чтобы их можно было в сеть транслировать через vlc?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

могу сказать, что связка sasc-ng и vlc работает. вот только vlc много цпу кушает. поэтому его вполне можно заменить getstream'ом:

http://silicon-verl.de/home/flo/projects/streaming/

 

Процедура такая же:

1. Настраиваем sasc-ng на нужный кардшаринг эккаунт и адаптер (например, нулевой)

2. Запускаем демон sasc-ng, при этом в системе появляется виртуальный адаптер с номером, например, 1.

3. Дальше настраиваем VLC или getstream на виртуальный адаптер и запускаем

 

Для сравнения: при вещании 3-х каналов со спутника мультикастом VLC потребляет 70% CPU. getstream на той же машине - 2%

vlc c sascng работает, но vlc оч не стабильный.. память жрет - максимум сутки держиться.

getstream не пашет c sascng! Т.е поток какой-то неправильный, sascng не понимает его и не декодирует

Есть еще прога mumudvb - так вот с ней sasng работает как нада и решение стабильное - не жрет память и проц.. но блин другая проблема - поток генерируемый mumudvb не играют некоторые set-top-box'ы, в частности dlink dib120 ни в какую. Хотя поток getstream и vlc показывает.. Кто еще какой софт использует?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кардшаринг я бы лично не стал использовать. Для промышленного использования не годится он. Видел стабильно работающее несколько лет решение с карточками TT S-1500 + CI-модули + CAM Aston Viaccess Pro (12-канальные) + Linux + VLC + спутник 36E + официальные карты. Падучесть VLC решается скриптом. Первоначальные расходы приличные (в основном на CAM'ы), зато можно сделать сразу несколько десятков каналов и работает без проблем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

с CI-модулем тестировал все вышеперечисленные проги тоже.

getstream вообще не умеет работать с закрытыми каналами, mumudvb умеет, но ничего не получилось CAID путает он и говорит что cam для потока не тот (тестировал на каме DRE).. сильно не стал разбираться почему. vlc - работает все как нада, правда тот кам что у меня был декодирует только один канал и все, если пускаешь 2 картинка сыпется (тут кам нада профессиональный, многоканальный).

Но vlc это не решение.. передергивать и мониторить его - не вариант. getstream и mumudvb у меня висели >2недель ничего не нужно передергивать там и мониторить - все просто работает, не жрет ни память ни проц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Автоматическое передёргивание VLC не так уж и часто происходит, может, раз в неделю. Абоненты довольны, не жалуются — это главное. При этом с двух серверов (обычные PC) сыпется 25 каналов ТВ и 30 каналов радио, и ещё остаётся немного свободных мощностей. Я думаю, что для бюджетного решения с закрытыми каналами этот вариант как был оптимальным по соотношению цена-качество 4 года назад, когда он был реализован, так и остаётся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Alex780, getstream прекрасно работает с sascng. Не вводите публику в заблуждение :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Alex780, getstream прекрасно работает с sascng. Не вводите публику в заблуждение :)

хотелось бы подробностей! у меня не удалось заставить его работать с sascng.. Что там за подводные камни? я пытаюсь сначала через vlc и паралельно в sascng вижу что он запрашивает ключи, обращается на шаринг сервер.. Как только я запускаю getstream на том же самом транподере - я никакой активности в sascng не вижу, ну и соотвественно не работает

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

действительно getstream и sasng работают!

нужно поставить

budget-mode 0;

и все начинает работать!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а кто подскажет, пробую скомпилить open-sasc-ng

при выполнении make выдает:

 

make

g++ -Wall -D__user= -Werror -g -o objs/forward.o -c -DRELEASE_VERSION=\"0.0.2\" -Idvbloopback/src -Idvbloopback/module -I/lib/modules/2.6.28/build/include dvbloopback/src/forward.c

dvbloopback/src/forward.c: В функции ‘init_osd’

dvbloopback/src/forward.c:206: ошибка: ‘for’ loop initial declaration used outside C99 mode

dvbloopback/src/forward.c: В функции ‘log_rotate’

dvbloopback/src/forward.c:228: ошибка: ‘O_LARGEFILE’ undeclared (first use in this function)

dvbloopback/src/forward.c:228: ошибка: (Each undeclared identifier is reported only once

dvbloopback/src/forward.c:228: ошибка: for each function it appears in.)

dvbloopback/src/forward.c: В функции ‘log_rotate_handler’

dvbloopback/src/forward.c:250: ошибка: опущено имя параметра

dvbloopback/src/forward.c: В функции ‘main’

dvbloopback/src/forward.c:502: ошибка: ‘for’ loop initial declaration used outside C99 mode

dvbloopback/src/forward.c:531: ошибка: redefinition of ‘i’

dvbloopback/src/forward.c:502: ошибка: previous definition of ‘i’ was here

dvbloopback/src/forward.c:531: ошибка: ‘for’ loop initial declaration used outside C99 mode

dvbloopback/src/forward.c:557: ошибка: redefinition of ‘i’

dvbloopback/src/forward.c:531: ошибка: previous definition of ‘i’ was here

dvbloopback/src/forward.c:557: ошибка: ‘for’ loop initial declaration used outside C99 mode

make: *** [objs/forward.o] Ошибка 1

проблема решена сменой компилятора на 4.2.2

Изменено пользователем Cramac

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а как с помощью sasc-ng брать ключи с карточки с феникс ридера?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тоже патаюсь собрать SASC-NG на debian 5

инструкция отсюда http://dolot.kipdola.com/index.php?title=Install_SASC-NG

s2-liplianin отсюда http://mercurial.intuxication.org/hg/s2-li...hive/tip.tar.gz

конфигурация прошла успешно но make выдает кучу ошибок

 

компилятор g++-4.3

 

может кто подскажет

 

p.s. в машине стоит 3 dvb карты причём dvb0 - ss2 с ревизией 2.8А под которую нужно отдельно дрова собирать остальные ss2 работают без этого

 

sky2:/home/mirk/src/opensasc# make

echo 'const char *source_version =' '"'`(svnversion /home/mirk/src/opensasc 2>/dev/null) || echo Unknown`/`(svnversion /home/mirk/src/opensasc/dvbloopback 2>/dev/null) || echo Unknown`'";' > .vers.new ; diff .vers.new objs/version.cpp > .vers.diff 2>&1 ; if test -s .vers.diff ; then mv -f .vers.new objs/version.cpp ; fi ; rm -f .vers.new .vers.diff

g++ -Wall -D__user= -Werror -g -o objs/dvbdevice.o -c -DRELEASE_VERSION=\"0.0.2\" -I./sc/PLUGINS/src/sc-src -I./sc/include -I/home/mirk/src/s2-liplianin/linux/include -Idvbloopback/module -I/lib/modules/2.6.26-1-686/build/include sc/dvbdevice.cpp

In file included from /usr/include/sys/uio.h:24,

from /usr/include/sys/socket.h:28,

from /usr/include/netinet/in.h:25,

from /usr/include/arpa/inet.h:23,

from sc/include/vdr/config.h:13,

from sc/include/vdr/channels.h:13,

from sc/include/vdr/device.h:13,

from sc/include/vdr/dvbdevice.h:15,

from sc/dvbdevice.cpp:10:

/usr/include/sys/types.h:62: error: conflicting declaration 'typedef __dev_t dev_t'

/lib/modules/2.6.26-1-686/build/include/linux/types.h:19: error: 'dev_t' has a previous declaration as 'typedef __kernel_dev_t dev_t'

/usr/include/sys/types.h:67: error: conflicting declaration 'typedef __gid_t gid_t'

/lib/modules/2.6.26-1-686/build/include/linux/types.h:53: error: 'gid_t' has a previous declaration as 'typedef __kernel_gid_t gid_t'

/usr/include/sys/types.h:72: error: conflicting declaration 'typedef __mode_t mode_t'

/lib/modules/2.6.26-1-686/build/include/linux/types.h:21: error: 'mode_t' has a previous declaration as 'typedef __kernel_mode_t mode_t'

/usr/include/sys/types.h:77: error: conflicting declaration 'typedef __nlink_t nlink_t'

/lib/modules/2.6.26-1-686/build/include/linux/types.h:22: error: 'nlink_t' has a previous declaration as 'typedef __kernel_nlink_t nlink_t'

/usr/include/sys/types.h:82: error: conflicting declaration 'typedef __uid_t uid_t'

/lib/modules/2.6.26-1-686/build/include/linux/types.h:52: error: 'uid_t' has a previous declaration as 'typedef __kernel_uid_t uid_t'

In file included from /usr/include/sys/types.h:133,

from /usr/include/sys/uio.h:24,

from /usr/include/sys/socket.h:28,

from /usr/include/netinet/in.h:25,

from /usr/include/arpa/inet.h:23,

from sc/include/vdr/config.h:13,

from sc/include/vdr/channels.h:13,

from sc/include/vdr/device.h:13,

from sc/include/vdr/dvbdevice.h:15,

from sc/dvbdevice.cpp:10:

/usr/include/time.h:105: error: conflicting declaration 'typedef void* timer_t'

/lib/modules/2.6.26-1-686/build/include/linux/types.h:28: error: 'timer_t' has a previous declaration as 'typedef __kernel_timer_t timer_t'

In file included from /usr/include/sys/types.h:220,

from /usr/include/sys/uio.h:24,

from /usr/include/sys/socket.h:28,

from /usr/include/netinet/in.h:25,

from /usr/include/arpa/inet.h:23,

from sc/include/vdr/config.h:13,

from sc/include/vdr/channels.h:13,

from sc/include/vdr/device.h:13,

from sc/include/vdr/dvbdevice.h:15,

from sc/dvbdevice.cpp:10:

/usr/include/sys/select.h:78: error: conflicting declaration 'typedef struct fd_set fd_set'

/lib/modules/2.6.26-1-686/build/include/linux/types.h:18: error: 'fd_set' has a previous declaration as 'typedef struct __kernel_fd_set fd_set'

In file included from /usr/include/sys/uio.h:24,

from /usr/include/sys/socket.h:28,

from /usr/include/netinet/in.h:25,

from /usr/include/arpa/inet.h:23,

from sc/include/vdr/config.h:13,

from sc/include/vdr/channels.h:13,

from sc/include/vdr/device.h:13,

from sc/include/vdr/dvbdevice.h:15,

from sc/dvbdevice.cpp:10:

/usr/include/sys/types.h:235: error: conflicting declaration 'typedef __blkcnt_t blkcnt_t'

/lib/modules/2.6.26-1-686/build/include/linux/types.h:151: error: 'blkcnt_t' has a previous declaration as 'typedef long unsigned int blkcnt_t'

make: *** [objs/dvbdevice.o] Error 1

sky2:/home/mirk/src/opensasc#

Изменено пользователем mirk

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Проблема решилась

при конфигурации написал

не

./configure --shared --dvb-dir=/home/mirk/src/s2-liplianin/linux

а

./configure --shared --dvb-dir=/home/mirk/src/v4l-dvb-0276304b76b9 -- тут лежат дрова к той самой карте с ревизией

 

единственная странность пока появился только один новый адаптер а не 3

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

TT1500, а не подскажите

попробовал ваш скрипт перезапуска, выдает вот что при запуске

 

line 2: [: -gt: unary operator expected

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня свой способ перезапуска не знаю лучше или хуже

кому интересно

 

 

раз в 10 минут запускается смотрит через tcpdump работает ли конкретная карта (их у меня 3) ти соответственно передёргивает если поток не льётся

 

p.s. для токго чтобы заработало нужно поправить пути и создать файлы запускающие vlc

 

#!/usr/bin/perl -w


# test_stream( dvb-adapter numbet,  chanels ip)
test_stream(0, ",239.255.12.56,239.255.12.57,239.255.12.58,239.255.12.59,239.255.12.60,239.2
55.12.61"); 
test_stream(1, ",239.255.12.40,239.255.12.41,239.255.12.42,239.255.12.43,239.255.12.44,239.2
55.12.45,239.255.12.46,239.255.12.47,239.255.12.48,239.255.12.49,239.255.12.50,2
3
9.255.12.51,239.255.12.52,239.255.12.53,239.255.12.54,239.255.12.55"); 
test_stream(2, ",239.255.12.80,239.255.12.81,239.255.12.82,239.255.12.83,239.255.12.84,239.2
55.12.85,239.255.12.86,239.255.12.87,239.255.12.88,239.255.12.89,239.255.12.90"); 


sub test_stream{
    my $res = 0;
    my $dvb = shift;    
    my @ip_list = split(/,/, shift);
    my $ip_list = join (' or host ', @ip_list);    

    my $cmd = "tcpdump -nni eth0 -c 100 host 10.10.104.1".$ip_list;

    # Start tcpdump
    my $start_time = time;    
    `$cmd`;
    #print $cmd."\n";
    my $stop_time = time;

    # if vlc is crash --------
    if($stop_time - $start_time > 2){
        # Find adn kill VLC process    
        my @ps = `ps ax | grep dvb`;    
        foreach $line (@ps){            
            if ($line =~ /(\d+)\s+.*:\d{1,2}\s+(\S+)\s.*--dvb-adapter=$dvb/){
                    my $pid = $1;                
                    `kill -9 $pid`;
                    sleep(5); 
                    #print "pid = ". $pid." command = ".$2." \n";
                    my $cmd_log = "echo restart vlc adapter - $dvb ". gmtime (time)."  >> /home/vlc/vlc_restart.log";
                    `$cmd_log`;        
            }
        }        
        # Find adn kill process use dvb    
        @ps = `ps ax | grep dvb`;    
        foreach $line (@ps){            
            if ($line =~ /(\d+)\s+.*:\d{1,2}\s+(\S+kdvb-fe-$dvb)/){
                my $pid = $1;
                `kill -9 $pid`;
                sleep(5); 
                #print "pid = ". $pid." command = ".$2." \n";    
                my $cmd_log = "echo kill process use dvb  adapter - $dvb ". gmtime (time)."  >> /home/vlc/vlc_restart.log";
                `$cmd_log`;
            }                
        }
        
     sleep(5);
    my $start_vlc = "/home/vlc/start_vlc_".$dvb;
    #print $start_vlc."\n";
    `$start_vlc`;                        
    }        
}

Изменено пользователем mirk

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.