{"id":193,"date":"2013-07-21T10:00:21","date_gmt":"2013-07-21T06:00:21","guid":{"rendered":"http:\/\/xxxl.co.za\/?p=193"},"modified":"2023-03-14T18:49:00","modified_gmt":"2023-03-14T14:49:00","slug":"udpxy","status":"publish","type":"post","link":"https:\/\/xxxl.co.za\/?p=193","title":{"rendered":"udpxy"},"content":{"rendered":"<p>So, i had the need to convert IPTV multicast effeciently to HTTP.<\/p>\n<p>Luckily i found <a href=\"http:\/\/www.udpxy.com\/index-en.html\" target=\"_blank\" rel=\"noopener\">udpxy<\/a>.<br \/>\nAs on their home page:<br \/>\n<em>&#8220;udpxy is a UDP-to-HTTP multicast traffic relay daemon: it forwards UDP traffic from a given multicast subscription to the requesting HTTP client&#8221;<\/em><\/p>\n<p>Installation:<br \/>\n<code><\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">wget http:\/\/www.udpxy.com\/download\/1_23\/udpxy.1.0.23-7-prod.tar.gz\r\ntar -xvf udpxy.1.0.23-7-prod.tar.gz\r\ncd udpxy-1.0.23-7\/\r\nmake\r\nmake install\r\nmake -n install<\/pre>\n<p><\/code><\/p>\n<p>Options provided by this version:<br \/>\n<code><\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">root@vidserv:~# udpxy\r\nudpxy 1.0-23.7 (prod) standard &#x5B;Linux 3.2.0-39-generic x86_64]\r\nusage: udpxy &#x5B;-vTS] &#x5B;-a listenaddr] -p port &#x5B;-m mcast_ifc_addr] &#x5B;-c clients] &#x5B;-l logfile] &#x5B;-B sizeK] &#x5B;-n nice_incr]\r\n        -v : enable verbose output &#x5B;default = disabled]\r\n        -S : enable client statistics &#x5B;default = disabled]\r\n        -T : do NOT run as a daemon &#x5B;default = daemon if root]\r\n        -a : (IPv4) address\/interface to listen on &#x5B;default = 0.0.0.0]\r\n        -p : port to listen on\r\n        -m : (IPv4) address\/interface of (multicast) source &#x5B;default = 0.0.0.0]\r\n        -c : max clients to serve &#x5B;default = 3, max = 5000]\r\n        -l : log output to file &#x5B;default = stderr]\r\n        -B : buffer size (65536, 32Kb, 1Mb) for inbound (multicast) data &#x5B;default = 2048 bytes]\r\n        -R : maximum messages to store in buffer (-1 = all) &#x5B;default = 1]\r\n        -H : maximum time (sec) to hold data in buffer (-1 = unlimited) &#x5B;default = 1]\r\n        -n : nice value increment &#x5B;default = 0]\r\n        -M : periodically renew multicast subscription (skip if 0 sec) &#x5B;default = 0 sec]\r\nExamples:\r\n  udpxy -p 4022\r\n        listen for HTTP requests on port 4022, all network interfaces\r\n  udpxy -a lan0 -p 4022 -m lan1\r\n        listen for HTTP requests on interface lan0, port 4022;\r\n        subscribe to multicast groups on interface lan1\r\n<\/pre>\n<p><\/code><br \/>\nTo execute:<br \/>\n<code><\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">udpxy -p 4022<\/pre>\n<p><\/code><\/p>\n<p>This will show proxy status in your browser:<br \/>\n<code>http:\/\/192.168.0.12:4022\/status\/<\/code><\/p>\n<p>This will open a multicast stream meant for 239.1.1.39:1234 and make it available via http.<br \/>\nYou can open this url with VLC and it should work.<br \/>\n<code>http:\/\/192.168.0.12:4022\/udp\/239.1.1.39:1234<\/code><\/p>\n<p>I think this is also really interesting:<br \/>\n<a href=\"http:\/\/xupnpd.org\/t\/#About_xupnpd\" target=\"_blank\" rel=\"noopener\">http:\/\/xupnpd.org\/t\/#About_xupnpd<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>So, i had the need to convert IPTV multicast effeciently to HTTP. Luckily i found udpxy. As on their home page: &#8220;udpxy is a UDP-to-HTTP multicast traffic relay daemon: it forwards UDP traffic from a given multicast subscription to the requesting HTTP client&#8221; 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 &hellip; <a href=\"https:\/\/xxxl.co.za\/?p=193\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">udpxy<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[3],"tags":[],"class_list":["post-193","post","type-post","status-publish","format-standard","hentry","category-howtos"],"_links":{"self":[{"href":"https:\/\/xxxl.co.za\/index.php?rest_route=\/wp\/v2\/posts\/193","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xxxl.co.za\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xxxl.co.za\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xxxl.co.za\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xxxl.co.za\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=193"}],"version-history":[{"count":12,"href":"https:\/\/xxxl.co.za\/index.php?rest_route=\/wp\/v2\/posts\/193\/revisions"}],"predecessor-version":[{"id":328,"href":"https:\/\/xxxl.co.za\/index.php?rest_route=\/wp\/v2\/posts\/193\/revisions\/328"}],"wp:attachment":[{"href":"https:\/\/xxxl.co.za\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xxxl.co.za\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=193"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xxxl.co.za\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}