Sign up here and you can log into the forum!

HD Homerun streaming problem[SOLVED}

Discussion, features, plugins--everything about zoster's UMSP UPnP Media Server software

HD Homerun streaming problem[SOLVED}   

Postby PaulF » Tue Jun 15, 2010 8:54 pm

I read the VLC streaming thread so I thought I would try streaming from my HDHR. The HDHR is a stand alone multicast tuner box that is connected to my network. The HDHR has a setup program that generates an XML file with the list of unencrypted programs on my Comcast cable. I read in the XML and add an item for each program to the UMSP container. Everything works great except I get a "format not supported" message. I save the stream to a file and it plays fine. I snooped with tcpdump and there is a bunch of handshaking between the HDHR(192.168.1.2) and the WDTV(192.168.1.55). The HDHR then sends one video transport stream packet and that's all she wrote.

My proxy uses the hdhomerun_config program I complied from source. The program sends frequency and program number commands and then opens a stream to 192.168.1.55:5555.
Code: Select all
<?php
    include_once('funcs-misc.php');


    $itemProgram = $_GET['prog'];
    $itemFrequency = $_GET['freq'];
    $paramdump = array();

    $paramdump['command'] = 'hdhomerun_config FFFFFFFF set /tuner1/channel auto:' . $itemFrequency;
    $paramdump['commandresult'] = exec($paramdump['command']);
    _var_dump_to_file($paramdump);
    $paramdump['command'] = 'hdhomerun_config FFFFFFFF set /tuner1/program ' . $itemProgram;
    $paramdump['commandresult'] = exec($paramdump['command']);
    _var_dump_to_file($paramdump);
    $paramdump['command'] = 'hdhomerun_config FFFFFFFF set /tuner1/target 192.168.1.55:5555';
    $paramdump['commandresult'] = exec($paramdump['command']);
    _var_dump_to_file($paramdump);

?>


My hdhomerun.php reads the programs and makes a media item for each channel:
Code: Select all
<?php
    include_once('funcs-misc.php');


function _pluginMain($prmQuery) {
    $queryData = array();
    parse_str($prmQuery, $queryData);
    _var_dump_to_file($queryData);
    if ($queryData['channel_list'] !='') {
        $items = _pluginChannelList($queryData['channel_list']);
        return $items;
    }
    return NULL;
}

function cmp($a, $b)
{
    $anum = explode(' ', $a['dc:title']);
    $bnum = explode(' ', $b['dc:title']);
    return ( $anum[0] < $bnum[0] ? -1 : 1 ); #sort by title's unique guide number
}

function _pluginChannelList($prmFeedList) {
    $feedlistXML = file_get_contents($prmFeedList);
    $simplexml = new SimpleXMLElement($feedlistXML);
    foreach ($simplexml->Program as $program) {
        if((string)$program->Enabled == 'true'){
            $param_string = 'freq=' . (string)$program->Frequency. '&amp;prog=' . (string)$program->ProgramNumber;
            $MediaItems[] = array (
                'id'                => 'umsp://plugins/hdhomerun?' . (string)$program->GuideNumber,
                'dc:title'          =>  sprintf('%-4s%s',(string)$program->GuideNumber, (string)$program->Name),
                'res'               => 'http://127.0.0.1/umsp/plugins/hdhomerun-proxy.php?'. $param_string,
                'upnp:class'        => 'object.item.videoItem',
                'protocolInfo'      => 'multicast:*:video/mpeg2ts:*',
            );
        }
    }
    usort($MediaItems, "cmp");
    _var_dump_to_file($MediaItems);
    return $MediaItems;
} # end function

?>


My umsp.php snippet:
Code: Select all
        $myMediaItems[] = array(   
            'id'         => 'umsp://plugins/hdhomerun?channel_list=/tmp/stick/hdhomerun.xml',
            'parentID'   => '0',
            'restricted' => '1',
            'dc:title'   => 'HDHR Streams',
            'upnp:class' => 'object.container',
        );


Snoop:
Code: Select all
21:14:13.361428 IP 192.168.1.55.34477 > 192.168.1.255.65001: UDP, length 20
21:14:13.361789 IP 192.168.1.2.65001 > 192.168.1.55.34477: UDP, length 20
21:14:13.511565 IP 192.168.1.55.34481 > 192.168.1.255.65001: UDP, length 20
21:14:13.511691 IP 192.168.1.2.65001 > 192.168.1.55.34481: UDP, length 20
21:14:13.545371 IP 192.168.1.55.34483 > 192.168.1.255.65001: UDP, length 20
21:14:13.545496 IP 192.168.1.2.65001 > 192.168.1.55.34483: UDP, length 20
21:14:13.588791 IP 192.168.1.55.34485 > 192.168.1.255.65001: UDP, length 20
21:14:13.588916 IP 192.168.1.2.65001 > 192.168.1.55.34485: UDP, length 20
21:14:13.623043 IP 192.168.1.55.34487 > 192.168.1.255.65001: UDP, length 20
21:14:13.623168 IP 192.168.1.2.65001 > 192.168.1.55.34487: UDP, length 20
21:14:13.657201 IP 192.168.1.55.34489 > 192.168.1.255.65001: UDP, length 20
21:14:13.657327 IP 192.168.1.2.65001 > 192.168.1.55.34489: UDP, length 20
21:14:13.702476 IP 192.168.1.55.34491 > 192.168.1.255.65001: UDP, length 20
21:14:13.702601 IP 192.168.1.2.65001 > 192.168.1.55.34491: UDP, length 20
21:14:13.739232 IP 192.168.1.55.34493 > 192.168.1.255.65001: UDP, length 20
21:14:13.739358 IP 192.168.1.2.65001 > 192.168.1.55.34493: UDP, length 20
21:14:13.773688 IP 192.168.1.55.34495 > 192.168.1.255.65001: UDP, length 20
21:14:13.773814 IP 192.168.1.2.65001 > 192.168.1.55.34495: UDP, length 20
21:14:14.198350 IP 192.168.1.2.5004 > 192.168.1.55.5555: UDP, length 1316


Is there a way to get a better diagnostic message? Run DMARender from the command line, maybe??? Any suggested changes? I tried the _freeviewGet function and I am not sure I or my HDHR knows what it is doing. Both my brain and the HDHR say "connection refused"
User avatar
PaulF
Developer
 
Posts: 427
Joined: Sat May 08, 2010 8:34 pm
Location: Oregon

Re: HD Homerun streaming problem[SOLVED}   

Postby PaulF » Fri Jun 18, 2010 10:45 am

I gave up on streaming the UDP video stream directly to the WD. I used the udpxy method from the IPTV thread to convert to an "HTTP get" stream. I simply added the hdhr commands to mikel's udpxy proxy code. If anyone is interested, I can post the changes. I don't know how to post the compiled hdhomrun_config program, though.
User avatar
PaulF
Developer
 
Posts: 427
Joined: Sat May 08, 2010 8:34 pm
Location: Oregon

Re: HD Homerun streaming problem[SOLVED}   

Postby james910 » Fri Aug 06, 2010 1:29 am

Hi I am interested could you post the changes or email me on jamesmitchell910@yahoo.com.au with the hd compiled hdhomrun_config programchange or do you have a rapidshare account,ect that it is available on :D s
james910
n00b
 
Posts: 1
Joined: Fri Aug 06, 2010 1:24 am

Re: HD Homerun streaming problem[SOLVED}   

Postby b-rad.cc » Fri Aug 06, 2010 6:06 am

privately emailing changes is ridiculous, it helps no one. :roll: IMHO.

If you've done something beneficial then it should be posted for documentation to help anyone else out there.
PM's are for private matters only, please post public matters on the forum to help others who might have the same issue.
:mrgreen:
User avatar
b-rad.cc
WDLXTV Team
 
Posts: 3003
Joined: Sat Apr 03, 2010 9:35 am
Location: New York

Re: HD Homerun streaming problem[SOLVED}   

Postby PaulF » Fri Aug 06, 2010 11:42 am

The problem is that I have ho file sharing account. Can I do a binary file attachment on this site?
User avatar
PaulF
Developer
 
Posts: 427
Joined: Sat May 08, 2010 8:34 pm
Location: Oregon

Re: HD Homerun streaming problem[SOLVED}   

Postby zoster » Fri Aug 06, 2010 8:05 pm

If everything else fails you could encode it to base64 and post it, eg with Total Commander. But it's probably too large. How about a diff?
zoster
WDLXTV Team
 
Posts: 218
Joined: Wed Apr 14, 2010 10:14 am

Re: HD Homerun streaming problem[SOLVED}   

Postby b-rad.cc » Fri Aug 06, 2010 8:11 pm

Can you not post attachments in this forum? You should be able to. You (PaulF) also have svn rights, as I stated in the pm to you ;)
PM's are for private matters only, please post public matters on the forum to help others who might have the same issue.
:mrgreen:
User avatar
b-rad.cc
WDLXTV Team
 
Posts: 3003
Joined: Sat Apr 03, 2010 9:35 am
Location: New York

Re: HD Homerun streaming problem[SOLVED}   

Postby PaulF » Sat Aug 07, 2010 10:19 pm

I must be tired. I posted a reply in the wrong thread. Here is a copy.

@b-rad I can not attach, but I can manage posted attachments in my control panel.

Here is a b64 file of hdhomerun_config.zip

Code: Select all
begin-base64 644 hdhomerun_config.zip
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
H1Xwsdx/T1n9ugb8fco8qUZ8A62auGcJ/3m+7rLydTNfoF9CPaW9k9DfrOjf
AvlTCUv+M/b3fzSxsSbaL6ZK2GtS+Bvhj6bg90N/rYLfx/NRweeB36HgLtCP
vGzlv5H7U6HzXXfwHeU85S9cD2s0KOvZzPEq9Ia870yzFJy/C5WgsPuVefUr
xHVUkX8N9N0HNXGPZfqr0H8U83WfxC9CvjTMg2qJb0e8bsxLTeJ/gP/VB61+
/wzx7gtZ9UrzfN+kie92jM9Gvx3pt+bJa3x/UvyZBv5eBecZUPu21Z8/xEuP
Zt1n2ng+K/wbIa/1Wfepn/C8Veh3gV52jUYJmc8beR79VqNzJWZ/nuV+VPiP
Id5Fz1j1uhnxRRU6f89pzNTL+2Y5zYO+ZoWe4f3SYvXjX5HPzU9b94/X4F+T
wk9ebyi43O/1x5PeYDiYUPEWLGTxeMIXS3jbfcEwVlrbI2G54iXvDR3eW/XW
YDyhx+aHfPG4Hqd4IuZvj4IzGI/45871xuN+X7gFywE9FqO2QFukXY8lw95A
MO6PdOgxNhXwBvSOoF+Pe/3JeCLSTi0rY8GEDm5VQLB443rC2+GLUUdLNBYM
J1qopSWUjLexgUgyUZg/kQyzoVikHa7HhvOY9FDEv2KFvtob0+9O6vFRVSH+
Vr0AR+sQh7/NFw7roXZfVOGyFgWngnKSvK2xSDI6XKlkEyyiTi2RqB6eM5vi
wdawLzS6gC/Q4Qv79dGZAnpC9yfOn5eQ7ovr1OIPReJ64eA7ggE9wv2REJ0Q
87cVSLc/pvsS+ij1YE3yNRjI1kMPFOqeDl8oGGBtQ/yF1bVHAnpIWAMkIsnQ
+aJNxnVWnhwpUF8BvwNwMxZZzb2IzYIoQ9BGLXgJ8L8FVIFf97WbG4qg15+M
xfRwIhFsH5k5pvs7qCWaTPipPR7S9ajXF43GIqtG0R4p0FbJaGvMF9CzOtrR
Wu3J9hGi1WPxYCTMuQvp4sGFxYMT6jfDjMv9OKzdvQgothrl5jqG/asLcIQw
QrzRmN4x2qaTzMNZVvqCCW9LxKzdaJuS+zIZH52DMxYMt0SoXW+HbQ4y7I+u
ZtScazHfSn7PaezcSMO+nOrlBGn2/khUzFB1G2KCrhhqqgLNH4x7g6hcMpQI
+gtIyn2W8EeHUSKw6R8mgDywBxjUkdzuXp5s9Q4rb3RFAtXxhVDZ3ICFrrge
DuQxx/S4Psym6OZcPh5vw5QyQZwK3uSsmQXXUZVhBn0BbyLUUVhNXcFlbGwv
erw10VYgO/zk6mKsBmLUbjY+wBcSOxaFahEv0USbsN2eTOirzLbMXUqGxWJH
PCzT6uXWC2D8Z/m+G8EIyRUSwz+7JBuJ50C8gKfsILex6alFNwc0N7w5pJVG
jKB5IyFv/sHGtdfDvuWhnAFs6lE6Y0R9uTXPrmanj3oMsVcYZK3okzjlnk/m
FlDXhm0k0yPzMpC/mtdkSqheUb38LCm+e1cGE23ZU2GYYpyIHbq1A4cd4Va6
TTvRSEyOlPbhbCOExJ0wigk1mOwhGC14aBbiDHxhzmiB6udPpqzcyJT4kMbz
OVaALhOktLc4VoeQgoM9bxoPG/mj3eXMorX7/G3BsJ7fJOqMTQaGzdjlwXDg
fJcMHFp+/Tz3n1F8pxaeSRSM+BOhQvM3ESk0bfneVWhQ8lz1IpJgRyA4i5Li
WkD+kBwoYq7xwYez0OvFERGOiPQk+F4AMVywWCyOS6JfXGWiuh4TuVfmJvEL
kt3iD8PjuEmIRBOjjVqxZQq5O2MO4fuJnIf8K24teRfcsbj+poXzvYsWLr5x
4eLr4ditixZ4b6pvYtZYwvyt1+v1h76Hui/nRT+vzSHvwpu94trGF78AXb9o
YcN878xpM4feaofevi5//bbRWPkskU+7gCLxtFbMp13B+d8iya3yFRXkNtft
Q5C1kqWPGbJm6ixR7NsUT7KSJUMeqFptef7Z8mKw53hmU/y1y5hNPcXyl38a
pic/sqKc2LK6zNzyb+QO+f8MpcHgBP51smICDel9VdJrh+hjBZ3XHAIvosoh
/iLxW7sj+5uwoJcM8V8m8GKqzZG3D8nbqcJz7M7NVa6BTUUDmQNVFXQo7aC+
dKCz07hqnBOaNAc/A52bBH7BGWcRP200sZifDZCPrtlcVZYy6bOvnFvVJGn5
PBWSZ/DtuVWf1pg02BNr42igyEkH+KdpcuE9X9Z1hqgu1WUQ7TCKaWfVmYzN
7T79pPC5ee0DxsbOdUKPg3alJ9HWdBkdSBfn+ZzJkIjlKGSq6fl0A13iacos
f7QGMbtpb9pJz6XLSZtUQb2glXoaaKJn1dlbK9ecnVF55bqZ9gZyeO5bN5GW
ZOzdmcyMyq+U3cL/k+SwUYM7VWYnV9l8lHj1+qxN8O1hXsaZ99NM8yTmRY3d
sLsVdg34YcC2AdsG7Bqch1rkoYGKPamznes5/rGoAeegWcZTRM5LzJw5i1Jn
u9wsw3gW0BPuBrJ7mjPzd2dp2bWAssa6OX+iNshBGeLm2veiTvWwzzFsf7/L
jTWDY1+2dpPRlinpztJ2SxqvMS273jfC+tER1k+PsD7ug8LrNSOsN2Gd+ymT
sbvLZC6dIpcVnuMyTjfi5DpXyFiXIFZXKiXq5Vq3hVjvpcj3V5Ev7I5OztNY
mi/6xuXg390P5dSqGvqRW8H3l8zySZgRlUtSVt+5qp32P6PvUPcaluXa58uz
f/vPmf4tKDqU1oqeT3uK9qbrip5Lzy7qRV360ssp5WA/q2lr1RL0gQM9Xk8l
nhrg3O/RD3ZA784qtummp6qK4T/kjInS9w1rO40y5IpowXqWS4HfVUt25s9k
St2wa7gcmh22Ddg2YNuAbeFjY9GBKidtR59uNaiymAhRXuXsJNgWcfJ7tXyn
UpP2b5mUsFsBmxpiZn8xvd2ZzBg326yFj+zfNNKKXT0aXY6c12M/vvlBvLKO
eqtc64jOZMZ0Y5Z128vHUIZeqeVaZ8hfa/eMQZ22iX1un8O0j2ptNKNS5NvZ
bL/aMdPOuv87o00aT47K88Wm9vt+9ND5+P8J9XQhVM6pU+T0+vUsvxGyHCPr
mUpj3M+Aj3PL9T0q+69G7LO+dH/nfbCRogVCPrDeSduqXLVbRFyuas3snTr+
W5A+oxQ5Yv1cA87phegF7qPeVO584/6sUeYpz5F8XPX5nOJvHfwdFP7ah/lb
jf3ilvulDv3GfVhHO9MeegqxbE1P4N7E3ulR+75WE3uJ8f61yrqT7EPrqR6j
jHYaLIczqju7X5jOuCrHT3NePoc+VOdkhef0KdPXSVNwdk05mB4/5aX0uCkv
pounvJCmKfvS58qfT58p35v+pPy59GB5r8z/j0X+NTP/3a7UFrlfNZHzN0kr
45zvlnSmOWmH6NleQSvxNCq0thM7xH5jPKTkwS1lnpD6QpBxo47ZmJj2S9H7
JZ4BRV/Wj5elHLZDKfN4oPs4bGVzKXkcvIdCnbzXHJ7olSViL0ygYuET4yHl
LLTL9Xqa7Kmnyz3HUNP+zseMMyfeqRz/4UnUl38PmeRBrqt66KWqgfKt6eZM
pzjHvoHzUZyhKdVXp/BjNnx1pfg3vZ2Gy6nZXdX99o8vcIx31Zl0ou3dx/Nm
I69XSrl+zJA+ekrMtsN4lzrQSwNCD+/3Y+VbDWlrEufjqJw772agA/0/UL7N
4HVXbTOxvOfDHe7T8J/lT5VvS+PdOIr88zkM3LjauUDk+c+Z1KQ28ruzcb6e
Me89CaUm2XqNIa2U3zfm9LUmYrkUlzneU+hF9Bd6fcpBA/1ooB8N9KOBfjTQ
jwb60UA/GuhH0ctlUw5UHS/f+TjrYV9rPjT76XV5Z8mfNbx3s/v2lOS5l+dS
T+5cip6w9ngVeN8Te9zh3rC2R/KMFef5paA1nTB1Mj/OEpHnIuoX9X5DyvG+
LBNnbomYlxtwjhwe0mnZrVPssu6XFZ7sOeSGDaZvRD8/X0DHPkXHFUPzNFeH
WWvzHDsBPU9KHnGmyhm2QJz5vOc7jY+lHPNXY29iHTNlp6Hq5HOtTvZhLd7Z
BvfebLw3fmjuPZ57C5TZ2ihnUUraXAObq+hgOkEvpaP0YjpEL6TbaF86gHtn
M+6ayzBTl8qZStS7/gxsu3q2kGtjiqbLmLOz0i7v4DZqcgs+pxnvMvAxrYGK
PEzLZJZXTgbelonuLqZbutnvXvjr5D3odNovlntmv7LG+j/PxCsrIDeOlkC+
udyMaUF3I3j4nX96tdEt1f8+zsT5HfGhv512xGggRgMxGojRQIwGYjQQo4EY
jaVyVqeQn0Zhk//+1tS3tJNjcdrNWUDWedHZY7xl07Cb7XtSuXtM8PDznLq+
y1xfLOfooDxP+jsfGZqzTP+1jenFnmsRI/ONo9u693+czcUWkYtierRyIvRk
Mh2Vdnrn6unUP5l9Wwd7xdRlzrta01fcBruPdKrzjP9e7rbuv0J2PPSwjf7/
yNU/Tfp4OfWX8n3N2cm+XtedPf8qcC9ivpXyzK+QZ36IzPuUeubjO5I7m7M+
5Qxl/HE5E7I1Y75PM7l15LU/ybUNax+R/e/uPiF7HPcR4fOzUlfZydxYLpax
cJ7+M9M/uR7fL4oRS8XJ+ZhC2wFLuifTfY6Kkw3ufiGXEnLHpM1aRV+T1PW7
TH8p322us71SavYe52ZB92UXWj4flvKY4T022tbD6x/h7s2zbyCFcx2H5TKl
t6j4ukqW41nSxXkqHuN2rePf4nFuOvmvkluH8kbF82sc4u7YjFnaYHf1zLTz
OcW+cwxE2lazB532o0oPLsE8ABhM2yz941o55VnPPjHtsQLzPP8exnwPCR0T
3flz33nSnNEXgY/vasybkvbq8uozzWbV5/uoD9s17ztmv/GMUPfHVLt5r+Hv
L9rJ7B3DnBGbhC67x6yt+1GW+ZHNrK0nZZ4H/8va1QfHdV31s29X8jZZk2d5
Y28SJdm1nlc7lSAbV2QURiEbaeN6gsvIH2k9IQyq4lAzZIob28FNPcNaVjJm
ELvKB9QDHVhkK9YEsesP2THBcTStC2ZIwcM4JUAau25SO+CCyRhq0tjL75x7
7urtaqWkM/yReat777v33PP99ZxVde8EHOC3mKF9O2t5k+ceCWRiGcTX7Jds
blte9Vdc8VeWz/JXeJx9qXod3ktLe6wMHAMczMdmfEnPxeDDXoc7Bhr2yZns
u8boRHs/sT9zXuz8V9WfOVbnS2+snMzzO6OUiyb2ZCg9ZO6QZPzARy8uH+8y
MjId5HUYK/wd+AkawItQroV1FNON/Vteb+mb6M7BT9hXsO+kA9ko07XDfZIe
VFhC1LfkYnAs2eFuczIYk98TD1Ni9JDTEX8SuhkwQecFsa7DHXRC+t7F4LZk
x+hhvq9zSXHeT+NVHSj2C2fy2R1uHz2u73Hs1oNxyVNg/AkdZzuY8Y2P6Djb
xKxv/HfUPl0SHbRc6LxFaQacF6bF5x1DvDAm+gXnlTPqt3WKHTW/sW95FX7z
+4C17KernzZtuHOGsrL/71dyMfHTfPzyrbtCxPTl+d9VP24BaDLbZ8tVY5HJ
3Gwe5btc8p19g96JqD0f17zDnndmZHcpZPL2G2f01B9dNzJs8cJ8YPfxr9tY
mS4xL/y66gY/Hn9Lz/wLnbO60NrLndeN7Pvf+bK+U/Tpmlp/yejFk9DzC6/P
1jNXvzdzp1bVR0y343W25/q12fD+nJ69s8Fdturc0zq3tcZ2mvvconMH6nTZ
19Q+9F+fljiIaGWe9U4iPk3rEYtK7I53jFy9VPiQdTt0vD+2P/POsGdjy4s7
a+MQHn8PcYjYObYdgEdyVgsMzLyH3/a2njV7Ze5ELNXgHvXru7Ce7VMrTYl9
5/beO2mx92u0rqWTTE7E8gM/t6v8JlI5x+9zBGhtks+7GAwhXs+E+DzOi7RC
zu09typsH15rbEM21fGs2LtruRZeO50zeV9EgJLHfP/a0Jxyc173t/KQe6fW
5+c1/6xrjK1uE7ux5fpg1MT/9qz1I09dV57AM1EkYroz/YtnDU3/8Zqhf1z1
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
Hw1vU95b7v4NLVZ7ZPC4KGlht2cJv+tZfA8+i8/hNbW0M3dJLJ3p+/03hWUu
GjfyOVYobBOSAx4eMfUP1bMp7oEystE8j1wwfvj3fGu21q1pxMOGfx3ElkNz
5HeNPpur/2fm7/lzd/4em5zmwu9QX3G16CD+DoL7aYyt3656KIWx1Ttn9+Zm
5hxv7ukEnT8aZDtNjt0P/q6jecOo/TcL2E/0w366rm7C39qY7yhbeyb0Tutx
p346UV6NGHUV/KMs/KMM7FAP7FA3ZLgLPJjWGJW/y+QeUqb1mQvvtJ++cCTJ
+jlDLyBej3pu+xIvcYx75IwM3OPj0/pvEq2uZn1udXVc/EbulTayGddcWSA0
2Gn7TWv3GnA2S66U8arfRqr+eEj1x2kf/cPkSd5ya4PveGM+++jf/4sqU2E9
5w2V6/WafwXu4HO9gpjsKGKyI6DXFPzDw/APD8E/PAj7Z+ixAfTYjrjVyPlW
N0zLk8Paw+NpLjQFO2LyansLnC9NSY31KGIdrnUPVL9h5jVvqo21Mj8X/DGf
fa+vw//BHLXAJ/h7SrHvG+nfK6a/sZl2yXOTymBHPIv40Pho6W0P8jctJL3v
sT5iWd5ETaJzbD+bxvb0x4B7K2ThzU9w9hu+s9Pbsp7/7G/jbB7jmiXXPPhc
zMt5fC7vcbyy3mW52+jrQeFvd3nuoNKR9UVE4j7Fs37n3nunqZXvr64L5l8A
zEw368N5NIQ1M3FHa01f7szv/mr9p6/T9uOuoN7OoPIsr4O+6OEnQW+Q/T3d
27Ve393YYL1/navrbK9BnJ752H9TIzTTc+tybS83NBMrMr6sTuR4LQy9bmP4
Sxe4j1n+tyOlkOa/2Kf5ON0pdV89k/t5E91F7meVfKHUuur+3ZVW3CFGz0r/
Fq/ZfNH0Bng07F3R/J6FTcYx/x++fG/92bYO16x43KT3ne+uOy6OV//9jvnu
Zffmnkb+NxP4ff/+57AP5yjmOmfi/+kc7/35z7kyxzm1cfJMfcieyTpf+phG
i3Rcznv2/2i7+uCorut+9ulJyETAk5DxgmX8VlrtCq9C1lSk23qbrsWCcYwz
ssNk3NbtKEI4mtrpyA2Teqb8sQjsyp2N3jZhMrRlWllIQDtbLR8CMy2pVZsQ
ZuLp0Jn84SaMLTu0NgbbAgOmX3k9v/ux+/ZpJeSx/MfO7r6P+849795zz+fv
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
KcbH19T8/n0VPw8yf+U4WTeua0jfKLYn825qlS0CXlRROnyhOP5J5docc/S9
F333Psj3VvM9uNemeoEtesEzf3CvkkfGt22r7oqQSaPi2DT/xrEtolZGHrul
jnV5jtE1eWyr51itOvYEH9tCVSK35Iu0rR25QgHalsA1yAlLqZwXjYUNm6JN
YN1LbPwV1CNkWpqvRTyf3x2Py2Nl9iXi9luVHTTb+bM8PtF/9HdMyQr4fTZz
u/7xvJf7eHHW8Xy8uOeDzvsJemov/3seeXln7vh6GDmAooYgLvNFvs+8Av6i
9x5bjZWU0vO1Lz6t/reoNW6z+n+v+l+W/xf/42JewXIfzoR+vni2j953FLbE
XHtN6FzCy67GfXxF6SGz7U0xe+5UWtlQvynmXkbklNn0F6L2yrpWHl/QeMSP
8Jq3jvu1hfReGRsIODMxK01rhX5hJCvlSO1Hjua1kt1uqHl9xU1ZaHO/8j81
Vbjml75rcN5W9OGan/P53+XzwD7rYtpEHQryACY7OyphKWGMVTpObuX9Hir5
vLS/qFrxzu+3uij8DHv21lLN0BZtIzwy1oH+XOd3ZxbngLTFoOuIWP01me99
2bO2VspROBOS+eymyiFbSxlL5lbJPJ+7VJ7P9TKcf1J5lCXsxJRv7qC9/hn7
x8gcBG8OA2juZVofWF3KratWMvOSGsc6Z73Pd93b6rzOqfO3bSm/Hvxf6Le2
wXU86mcVfGpy7s1937lZfHG3vW9X5efNhb2l/aE1FfyhWk6Yvry9XAXfLqlr
tF81lfl0eXu3s6EEjjnTWyVw1SbpaZZX/tprbeM1K1mnaXpM0XQdz45rbHDk
rndGfuV2tgfVWihiiAM6ZkTjjUSsLzWMNwk/NI0jfwU2YpjMSCnWSiMlfXqm
XaZpQE6xsap+Bl+kz4/GcQ77kEh/S/M6I1lPkg69J0m9qm03I5IuKtGldH3s
WfIgVSWHr/WETUpnh69tz6apKpIWtW69+VpK75W5nb2js9F70YdZK/aSEPX7
KeoWcqBmyJuDBlvl71hOkE9OCBv5Wql+0+tDfOaaxuavZDtUzqFPCrvmkKzx
UHUtvRr/OCfrWoCpzNeg9l5gRFcRrailh/IrlD4lazdtY0dzCTd8FfaJ4LEg
7Qx57G4ldzqEzthtzJUDz+sbsNyN+Vzrxw97F3xlvd9//G11XPKshD95hfn2
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
s8N8dpjPUq7ZlXAFSzWX0OHNQC4MbCC293jeHCpIWa/GVE7q8/ifLdsHR+rV
OO7Hv5H6/yFnp4ghTZXpaf52jNu0g32cynF0Su3QQHk7tYHoUF2geQjnW6yH
CPYr9KTBjNw3WODuWIhhYq/ZSdJ+YuARSjzF8nrKlJK15Xl4/1zI0su39WUI
WZORsmY/24/DzNtFLG9Gmb+wk8X639ZDjZTJ/6873GixLPnHiPTrUqBK9MGg
nvbvBoC1AUyi+kiAlvN9q8PXXYlL0MPzfNoNR+6g78u6VbdlaNptHbrlhoeI
No5DDrF+N15HG8bRpsU6U4DejCIuG7O2GVg/LV6ngkvqI9hPmQKrx5+g4cJm
/gDrGXjW99FJthlO8Lo5AkwptumPRbu4n/tV3ezDKsfAoDe/FKHJu9C30DTP
K55L0CNCKaL9zNca6EGZbpZJzVIPtQwD+TAW0xOkV1nWvOZEWAcLsyy/CV/d
GouANS0we9taVawpZfTR4UJzFLhaB9gmP+ygrdYUizH13tHuZdGvN6NY4zcQ
3RnK2MZ+sTeriFUZo7y+oV3ZzojIMwMeNrDMNvO72ivya0YcftcOv+vb+l72
KdnI72JIzo3vRNAmeH4QeL/Ma/DHZf6AH8DoQiwfeN7D3N5W5hPeK3jG+m+g
iSJDQdZfaM1qisZrhBwItVVLvKhEtyHpPlFA+3ifseBrVXhea65T6PZ4p6FU
ygB20xbZvvM2UT3uP1U291aHz1EJkxdtPEmjBezXRYFijE76ypleFZssQO9h
OgVGXBk+2JJFQ+ElRnH+Ye517IIfrjT3QDfmnZyDCvsrPinm9N0Cj/T+iH42
9Kb/FO/y8UhKxUX9scitLB9shQe+V+G5fI8OSAxmGnXgi8M6/efugMX/uV+r
h7qUbmMvqRrC3nDAWoT+lkZbSzR2S7eg6YKbCgLzu13hE7/hblAxy1HnMPYu
WAl0IFPtNQO/FbAQ4Vc44GC/ONDM88U5JXALelhn7+b1tDsvce5SRRwvW+Dm
sE4ZxP6MIz+Q/pGt3LIZ/i36A4nntaTKg5FXfu816MJ877Dwm1WF9d7tKTGH
Rnkdl3jtL7ppQf8o0y4xDEbUdaOO3hdI7qm7UfVTzvOHqDsosB543mxhGdfN
46FXjIUpvkbiP1apOf4bLBPq+D3u1XVfKn+mjmrCmK+23Kul8b7gcoPbcrgt
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
====


Save to a <file> on the WD and do "busybox uudecode <file>"

Instructions: http://www.silicondust.com/hdhomerun/hdhomerun_development.pdf
User avatar
PaulF
Developer
 
Posts: 427
Joined: Sat May 08, 2010 8:34 pm
Location: Oregon

Re: HD Homerun streaming problem[SOLVED}   

Postby parnott100 » Fri Aug 20, 2010 9:52 am

Don't know if you are still interested in a direct php+hdhomerun_config proxy option but I may have some ideas for you.

I have been working on something similar to run on a HP MediaVault NAS with thttpd. It will be basically a HTTP proxy written in PHP that will get a video stream from a HDHOMERUN and stream via HTTP to a client. I want to replace a shell script version that I cobbled together some time ago.

I now have a working command-line test-only version of the code that will get a video stream from a HDHR and send the video stream to a file (either stdout or file on a disk). Much more work needs to be done, but if you are still interested the code is below.

Code: Select all
<?php
// Begin test parameters
$HDHR_DEVICE = 'FFFFFFFF';
$HDHR_TUNER = 'tuner0';
$HDHR_CHANNEL = '8vsb:28';
$HDHR_PROGRAM = '3';
// End test parameters

// Define how to execute the hdhomerun_config program (program execution method and location)
$HDHR_CMD = 'exec /opt/local/bin/hdhomerun_config';

// Set the channel on the selected tuner (discard all output)
$HDHR_SET_CHANNEL = "$HDHR_CMD $HDHR_DEVICE set /$HDHR_TUNER/channel $HDHR_CHANNEL 1>/dev/null 2>&1";
$cmd_output = array();
exec($HDHR_SET_CHANNEL, $cmd_output);

// Set the program stream filter on the selected tuner (discard all output)
$HDHR_SET_PROGRAM = "$HDHR_CMD $HDHR_DEVICE set /$HDHR_TUNER/program $HDHR_PROGRAM 1>/dev/null 2>&1";
$cmd_output = array();
exec($HDHR_SET_PROGRAM, $cmd_output);

// Get the video stream from the selected tuner and passthru to stdout (discard stderr)
$HDHR_GET_STREAM = "$HDHR_CMD $HDHR_DEVICE save /$HDHR_TUNER - 2>/dev/null";
$proc_descspec = array( 1 => array('pipe', 'wb') );      // only interested in stdout (must use binary mode because the output will be a video stream)
$proc_pipes = array();                           // will be filled with the resource handles corresponding to $proc_descspec
$proc_options = array( 'binary_pipes' => TRUE );      // need binary option because the output is a video stream

$proc_res = proc_open($HDHR_GET_STREAM, $proc_descspec, $proc_pipes, NULL, NULL, $proc_options);
if ( is_resource($proc_res) ) {
   fpassthru($proc_pipes[1]);         // $proc_pipes[1] is stdout from the $HDHR_GET_STREAM command
   proc_close($proc_res);            // this probably never gets executed because the program is SIGTERMed
}

exit;
?>


Next step obviously is to get this working within a web server.
parnott100
n00b
 
Posts: 3
Joined: Fri Aug 20, 2010 9:21 am

Re: HD Homerun streaming problem[SOLVED}   

Postby Kurtois » Sun Sep 12, 2010 9:29 am

I see that it says HDHR problem "solved". Really? I don't really see instructions or anything that indicates how to do this. Would really appreciate this capability.
Kurtois
Donor
 
Posts: 9
Joined: Mon Sep 06, 2010 11:43 am

Next

Return to UMSP Media Server

Who is online

Users browsing this forum: No registered users and 0 guests