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