Portál AbcLinuxu, 13. května 2024 17:25


Dotaz: mpd a více streamů - jak zařídit hezčí URLs

Chytrex avatar 14.5.2018 14:34 Chytrex | skóre: 30 | Bohumín
mpd a více streamů - jak zařídit hezčí URLs
Přečteno: 329×
Odpovědět | Admin
Ahoj, jelikož jsem zatuhl na tomto tak třebas někdo bude mít nápad.

Na BananaPi mi běží mpd které streamuje 3 streamy na portech 8000, 8001 a 8002. Jeden je vysoká kvalita v OGG, druhý nízká kvalita v OGG a třetí je v MP3.

čeho chci docílit:

aby se k těmto streamům dalo přistupovat přes například example.com/hi.ogg pro 8000, example.com/low.ogg pro 8001 a example.com/stream.mp3 pro 8002

Na stejném stroji mi běží i lighttpd a ten bych rád použil, pokud možno bez použití php..

Moc do pokročilé konfigurace lighttpd nevidím, stále se s ním učím.

Za každý nápad/radu budu vděčen.
Hrdý člen KERNEL ULTRAS .:. define QUESTION ((bb) || !(bb)) .:. Odmítám vaši realitu a nahrazuji ji svou vlastní..

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

14.5.2018 15:00 NN
Rozbalit Rozbalit vše Re: mpd a více streamů - jak zařídit hezčí URLs
Odpovědět | | Sbalit | Link | Blokovat | Admin
mod_proxy?
Chytrex avatar 14.5.2018 20:10 Chytrex | skóre: 30 | Bohumín
Rozbalit Rozbalit vše Re: mpd a více streamů - jak zařídit hezčí URLs
Nastavení vhosta:
$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.45
rozhodně 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.ogg
Na 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
Hrdý člen KERNEL ULTRAS .:. define QUESTION ((bb) || !(bb)) .:. Odmítám vaši realitu a nahrazuji ji svou vlastní..
Josef Kufner avatar 14.5.2018 22:50 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: mpd a více streamů - jak zařídit hezčí URLs
Nestačilo by jen toto?
$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/;
  }
}
Hello world ! Segmentation fault (core dumped)
Chytrex avatar 15.5.2018 07:14 Chytrex | skóre: 30 | Bohumín
Rozbalit Rozbalit vše Re: mpd a více streamů - jak zařídit hezčí URLs
Jo tohle jsem zkoušel taky, ale výsledek byl stejný.. :(
Hrdý člen KERNEL ULTRAS .:. define QUESTION ((bb) || !(bb)) .:. Odmítám vaši realitu a nahrazuji ji svou vlastní..
16.5.2018 23:17 Ravise
Rozbalit Rozbalit vše Re: mpd a více streamů - jak zařídit hezčí URLs
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj, sednul jsem si nad to a Works for Me <tm>. Mám to teda jenom na jeden stream, ale snad to pomůže. MPD 0.19.12, lighttpd/1.4.35 (ssl) (Apr 18 2016 15:36:10) z Ubuntu 16.04.4
$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.
Chytrex avatar 16.5.2018 23:55 Chytrex | skóre: 30 | Bohumín
Rozbalit Rozbalit vše Re: mpd a více streamů - jak zařídit hezčí URLs
Ok zatím díky za hint co aspoň někomu funguje..

toto zkusím a pokud to nezabere, tak mi to pravděpodobně rozbíjejí vhosti resp jejich nastavení.. rozhodně toto budu testovat..
Hrdý člen KERNEL ULTRAS .:. define QUESTION ((bb) || !(bb)) .:. Odmítám vaši realitu a nahrazuji ji svou vlastní..
Chytrex avatar 17.5.2018 00:06 Chytrex | skóre: 30 | Bohumín
Rozbalit Rozbalit vše Re: mpd a více streamů - jak zařídit hezčí URLs
Tak jsem přišel na to, že se ty data odešlou až to přehrávání ukončím, tzn flushne se nějaká interní cache?
Hrdý člen KERNEL ULTRAS .:. define QUESTION ((bb) || !(bb)) .:. Odmítám vaši realitu a nahrazuji ji svou vlastní..
Chytrex avatar 17.5.2018 00:29 Chytrex | skóre: 30 | Bohumín
Rozbalit Rozbalit vše Re: mpd a více streamů - jak zařídit hezčí URLs
server.stream-request-body  = 2
mi také nepomohlo.. už vážně nevím
Hrdý člen KERNEL ULTRAS .:. define QUESTION ((bb) || !(bb)) .:. Odmítám vaši realitu a nahrazuji ji svou vlastní..
Řešení 1× (Chytrex (tazatel))
Chytrex avatar 17.5.2018 00:57 Chytrex | skóre: 30 | Bohumín
Rozbalit Rozbalit vše Re: mpd a více streamů - jak zařídit hezčí URLs
Tak a odpovím si sám, avšak děkuji všem za nakopnutí správným směrem..

Vše mi funguje a došlo mi co je špatně když jsem si otevřel seznam všech konfiguračních direktiv lightyho a zahlídl jsem direktivu:
server.stream-response-body = 2
Ale 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"
}
Hrdý člen KERNEL ULTRAS .:. define QUESTION ((bb) || !(bb)) .:. Odmítám vaši realitu a nahrazuji ji svou vlastní..

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.