So, i had the need to convert IPTV multicast effeciently to HTTP.
Luckily i found udpxy.
As on their home page:
“udpxy is a UDP-to-HTTP multicast traffic relay daemon: it forwards UDP traffic from a given multicast subscription to the requesting HTTP client”
Installation:
wget http://www.udpxy.com/download/1_23/udpxy.1.0.23-7-prod.tar.gz tar -xvf udpxy.1.0.23-7-prod.tar.gz cd udpxy-1.0.23-7/ make make install make -n install
Options provided by this version:
root@vidserv:~# udpxy udpxy 1.0-23.7 (prod) standard [Linux 3.2.0-39-generic x86_64] usage: udpxy [-vTS] [-a listenaddr] -p port [-m mcast_ifc_addr] [-c clients] [-l logfile] [-B sizeK] [-n nice_incr] -v : enable verbose output [default = disabled] -S : enable client statistics [default = disabled] -T : do NOT run as a daemon [default = daemon if root] -a : (IPv4) address/interface to listen on [default = 0.0.0.0] -p : port to listen on -m : (IPv4) address/interface of (multicast) source [default = 0.0.0.0] -c : max clients to serve [default = 3, max = 5000] -l : log output to file [default = stderr] -B : buffer size (65536, 32Kb, 1Mb) for inbound (multicast) data [default = 2048 bytes] -R : maximum messages to store in buffer (-1 = all) [default = 1] -H : maximum time (sec) to hold data in buffer (-1 = unlimited) [default = 1] -n : nice value increment [default = 0] -M : periodically renew multicast subscription (skip if 0 sec) [default = 0 sec] Examples: udpxy -p 4022 listen for HTTP requests on port 4022, all network interfaces udpxy -a lan0 -p 4022 -m lan1 listen for HTTP requests on interface lan0, port 4022; subscribe to multicast groups on interface lan1
To execute:
udpxy -p 4022
This will show proxy status in your browser:
http://192.168.0.12:4022/status/
This will open a multicast stream meant for 239.1.1.39:1234 and make it available via http.
You can open this url with VLC and it should work.
http://192.168.0.12:4022/udp/239.1.1.39:1234
I think this is also really interesting:
http://xupnpd.org/t/#About_xupnpd