Portál AbcLinuxu, 6. května 2025 16:22
Řešení dotazu:
$HTTP["host"] == "stream.example.com" { $HTTP["url"] =~ "(^/hi.ogg)" { proxy.server = ( "" => ("" => ( "host" => "127.0.0.1", "port" => 81 ))) } $SERVER["socket"] == ":81" { url.rewrite-once = ( "^/hi.ogg$" => "/" ) proxy.server = ( "" => ( "" => ( "host" => "127.0.0.1", "port" => 8000 ))) }a výstup curl -I
HTTP/1.1 200 OK Content-Type: audio/ogg Pragma: no-cache Cache-Control: no-cache, no-store Date: Mon, 14 May 2018 17:56:57 GMT Server: lighttpd/1.4.45rozhodně to ale nesype data takže mám něco špatně.. čekal bych že ten curl bude sypat aspoň rozsypaný čaj, ale nic. v mplayeru taky nic. Mplayer skončí na:
Read failed. No stream found to handle url http://stream.example.com/hi.oggNa bPI http://127.0.0.1:8000 streamuje, curl vysype rozsypaný čaj, ale přes proxy to nějak neprojde. Zkoušel jsem i normální proxy (bez toho podivného workaroundu), ale výsledek je totožný.. Hlavička je správně audio/ogg, ale data nejsou
$HTTP["host"] == "stream.example.com" { $HTTP["url"] =~ "(^/hi.ogg)" { proxy.server = ( "" => ("" => ( "host" => "127.0.0.1", "port" => 8000 ))) } }Lighttpd jsem už dávno nahradil za nginx. V tom by stačilo cca toto:
server { listen 80; server_name stream.example.com; location /hi.ogg { proxy_pass http://127.0.0.1:8000/; } }
$HTTP["url"] =~ "^/mpd" { proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => "8000", ) ))Samozřejmě načtený mod_proxy. Vlezu na localhost/mpd a hraje. Při vypnutém výstupu http dostanu HTTP 500. Když mi půjčíš relevantní část konfigu mpd, tak si můžu zkusit hrát u sebe.
server.stream-request-body = 2mi také nepomohlo.. už vážně nevím
server.stream-response-body = 2Ale aby to bylo kompletní, tady je nastavení lightyho:
server.stream-response-body = 2 $HTTP["url"] =~ "^/hi.ogg" { proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => "8000", ) )) } $HTTP["url"] =~ "^/lo.ogg" { proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => "8001", ) )) } $HTTP["url"] =~ "^/stream.mp3" { proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => "8002", ) )) }a relevantní kus mpd.conf:
audio_output { type "httpd" name "OGG stream HQ" encoder "vorbis" port "8000" bind_to_address "0.0.0.0" quality "4.5" format "44100:16:2" } audio_output { type "httpd" name "OGG stream LQ" encoder "vorbis" port "8001" bind_to_address "0.0.0.0" quality "0" format "44100:16:2" } audio_output { type "httpd" name "MP3 stream" encoder "lame" port "8002" bind_to_address "0.0.0.0" bitrate "192" format "44100:16:2" }
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.