Для того, чтобы получать на Linux железку multicast поток достаточно програмульки на перле
которая откроет "мультикаст" сокет, а потом из него будет читать данные. Уложится в 30-40
строчек кода (с хелпом, проверками и коментами - т.е. если писать "культурно").
Что на основе подобного кода.
my $sock = IO::Socket::Multicast->new(Proto=>'udp',LocalPort=>$mPort,Blocking=>1,ReuseAddr=>1);
$sock->mcast_add($mGroup) || die "Couldn't set group: $!\n";
while( 1==1 ) {
alarm $timeout;
if ( !defined($sock->recv($data,1316)) ) {
#print "no data\n";
$rcmd_res = "fail";
} else {
#print "exist stream\n";
$rcmd_res = "ok";
}
alarm 0;
}
Сделал на perl'e, поднимает 80 потоков - 4 ядра ксеона уходят в полку с load average: 90.21, 86.14, 70.26
Интересно кто как мониторит дропы mpeg2-ts пакетов?