Open DroidU opened 1 year ago
can you check against kh16.3 (https://github.com/karlheyes/icecast-kh/tags). I suspect it's down to a lock imbalance
karl
kh16.3 seems to work fine.
can you check against kh16.3 (https://github.com/karlheyes/icecast-kh/tags). I suspect it's down to a lock imbalance
karl
@karlheyes please upload windows 64 version, i will give it a try
ok, shoudl see it at karlheyes.github.io/icecast-2.4.0-kh16.3_win64_setup.exe
I'm nearing a kh17 update so let me know of anything
karl
I'm nearing a kh17 update so let me know of anything karl
thanks, I'm trying it. and still running smoothly including the relay
@karlheyes
icecast-2.4.0-kh16.3_win64
i'm setting in icecast. xml
<deny-agents>blockagen.txt</deny-agents>
settings in the blockagen.txt file
*vlc*
*winamp*
results :
error. log
[2023-01-08 06:30:38] INFO util/cached_file_recheck 2 entries read from file "blockagen.txt"
try playing with winamp and VLC still running normally and not blocked
@karlheyes try adding to lunaplayer https://audioplayer.luna-universe.com/shortcode
with native mountpoints enter the url to lunaplayer https://sub.domain:8000/stream result: artwork and title appear and run normally
added an alias in icecast.xml
<alias source="/test" dest="/stream"/>
then enter the url to lunaplayer
https://sub.domain:8000/test
result: artwork and title do not appear
the agents issue could be just a case-sensitive issue. The is a case insensitive setting that may usable which is something that could apply to agents. I'd have to check into the alias issue
@karlheyes I'd have to check into the alias issue
it turns out that it's not just a problem added an alias in icecast.xml, from adding a fallback-mount the metadata doesn't appear on lunaplayer even though playing using a normal player (winamp, foobar, vlc etc) metadata still appears (such as song titles and artist names). with the settings in lunaplayer metadatatechnic: "stream-icy-meta", or metadatatechnic: "directly", the result remains the same, metadata does not appear for the follback mount point or from the alias
are you seeing any other requests being made from the player to verify something like OPTIONS or similar. An alias would not make any material difference to things like icy inserts
I think I have a patch to handle case-insensitive user agent handling. It seems to work on the tests here, pushed on master
karl
check for FNMATCH in the config.h first, because if that is stuffed then we need to look at that. The useragent wildcard matching is working here
[2023-01-08 02:12:26] DBUG util/add_generic_text Adding wildcard entry "VLC" [2023-01-08 02:12:26] INFO util/cached_file_recheck 2 entries read from file "agents" [2023-01-08 02:12:26] DBUG util/cached_pattern_search VLC/3.0.18 LibVLC/3.0.18 matched pattern [2023-01-08 02:12:26] INFO connection/http_client_request dropping client at 127.0.0.1 because useragent is VLC/3.0.18 LibVLC/3.0.18
unsure what you are getting.
karl
check for FNMATCH in the config.h first, because if that is stuffed then we need to look at that. The useragent wildcard matching is working here
I tested using the Windows64 version, are there other settings so that it runs well?
ok, try the link from before again. karlheyes.github.io/icecast-2.4.0-kh16.3_win64_setup.exe
windows does not have the basic library for handling that, so it is supposed to use to shipped version, but I don't think that was getting referenced. It should be now.
karl
okay.. any developments for unreadable metadata in lunaplayer from alias settings or follaback mount @karlheyes ?
ok, try the link from before again. karlheyes.github.io/icecast-2.4.0-kh16.3_win64_setup.exe
windows does not have the basic library for handling that, so it is supposed to use to shipped version, but I don't think that was getting referenced. It should be now.
thank's @karlheyes
I just downloaded the icecast-2.4.0-kh16.3_win64_setup.exe update again, the results are very satisfying and the banned agent worked fine thank you..
[2023-01-08 16:15:42] INFO util/cached_file_recheck 2 entries read from file "agents" [2023-01-08 16:15:42] INFO source/source_add_listener max on /stream is -1 (cur 0) [2023-01-08 16:15:42] INFO source/source_read listener count on /stream now 1 [2023-01-08 16:15:50] INFO connection/http_client_request dropping client at 18x.71x.xx.xx because useragent is VLC/3.0.18 LibVLC/3.0.18 [2023-01-08 16:15:50] INFO connection/http_client_request dropping client at 18x.71x.xx.xx because useragent is VLC/3.0.18 LibVLC/3.0.18
thanks the verifying. Still not sure on the issue with the alias yet, as you have not specified whether other requests came in, and the fact that its a web client, so the moment I'm assuming it's related to CORS. Possibly down to certain headers not being allowed Can you check with the work for http headers which has that updated.
karlheyes.github.io/icecast-2.4.0-kh17-pre1_win64_setup.exe
karl
@karlheyes karlheyes.github.io/icecast-2.4.0-kh17-pre1_win64_setup.exe
karl
I installed icecast-2.4.0-kh17-pre1_win64_setup with the same icecast.xml settings on version 16.3 but the icecast service still stops. not running and icecat off several times trying to restart it keeps icecast off
[2023-01-09 04:31:46] INFO yp/yp_shutdown YP cleanup complete
[2023-01-09 04:31:46] INFO fserve/fserve_shutdown file serving stopped
after that can no longer restart / start icecast (always off)
after I tried deleting some of the commands in icecast.xml
<mount type="normal">
<mount-name>/aac</mount-name>
......
.....
<http-headers>
......
<http-headers>
</mount>
iececast service can start again
with or without adding <http-headers>..... </http-headers>
in <mount type="normal">..... </mount>
still the icecast service is not running and can't start/restart
hmm ok, let me recheck some things here
just doing a rebase, can I ask, what sort of settings you have in the mount. The type in the mount should be ignored as I never used that but I will make sure of that. Might have to check on windows as it seems ok here.
karl.
just doing a rebase, can I ask, what sort of settings you have in the mount. The type in the mount should be ignored as I never used that but I will make sure of that. Might have to check on windows as it seems ok here.
karl.
I tried editing again
<relay>
<server>xx.xxx.xxx.xxx</server>
<port>8000</port>
<mount>/restream</mount>
<local-mount>/stream</local-mount>
<username>source</username>
<password>xxxxxxxxxx</password>
<relay-shoutcast-metadata>1</relay-shoutcast-metadata>
</relay>
<mount>
<mount-name>/stream</mount-name>
<charset>UTF-8</charset>
<stream-name>NAME ABCDEFGH</stream-name>
<stream-description>STREAM ABCDEFGH ON The Skyy</stream-description>
<stream-url>https://domain.com</stream-url>
<genre>Pop</genre>
<public>0</public>
<bitrate>128</bitrate>
<http-headers>
<header name="icy-index-metadata" value="1" />
<header name="icy-logo" value="https://xxxxxxxxxxxxxx.png" />
<header name="icy-country-code" value="xx" />
<header name="icy-country-subdivision-code" value="xx" />
<header name="icy-language-codes" value="xx" />
<header name="icy-main-stream-url" value="https://domain.com:8000/stream" />
<header name="icy-geo-lat-long" value="xxxxx, xxxxxx" />
</http-headers>
</mount>
with or without including mount type, still iececast service is not running and can't start
right, rebased to include the mast updates and fixed the missing status code which also faulted, For reference the status code in this build uses the fnmatch for 2 or @(200|404) sort of thing is allowed. If missing defaults to just
icecast-2.4.0-kh17-pre2_win64_setup.exe is up
karl
icecast-2.4.0-kh17-pre2_win64_setup.exe is up
@karlheyes
trial icecast-2.4.0-kh17-pre2_win64_setup.exe
setting only mount it goes well icecast service running
but adding http-headers inside mount :
<http-headers>
........
</http-headers>
icecast service stop/not running, can't start or restart
I'll duplicate it a bit more here on windows, but the http-headers can be done globally, actually the default set would still apply, it is just a question of adding or overriding. So unless you have to add headers the CORS aspect should work. The global set would still apply to the mount block even if not defined.
actually I see the format check is failing, let me sort that
karl
actually I see the format check is failing, let me sort that
@karlheyes
I'm curious, re-install icecast-2.4.0-kh17-pre1_win64_setup.exe
setting again icecast.xml and remove <http-headers>
and </http-headers>
see below:
<relay>
<server>xx.xxx.xxx.xxx</server>
<port>8000</port>
<mount>/restream</mount>
<local-mount>/stream</local-mount>
<username>source</username>
<password>xxxxxxxxx</password>
<relay-shoutcast-metadata>1</relay-shoutcast-metadata>
</relay>
<mount>
<mount-name>/stream</mount-name>
<charset>UTF-8</charset>
<stream-name>NAME ABCDEFGH</stream-name>
<stream-description>STREAM ABCDEFGH ON The Skyy</stream-description>
<stream-url>https://domain.com</stream-url>
<genre>Pop</genre>
<public>0</public>
<bitrate>128</bitrate>
<header name="icy-index-metadata" value="1" />
<header name="icy-logo" value="https://xxxxxxxxxxxxxx.png" />
<header name="icy-country-code" value="xx" />
<header name="icy-country-subdivision-code" value="xx" />
<header name="icy-language-codes" value="xx" />
<header name="icy-main-stream-url" value="https://domain.com:8000/stream" />
<header name="icy-geo-lat-long" value="xxxxx, xxxxxx" />
</mount>
The results in the log are as follows:
[2023-01-09 09:15:27] INFO logging/recheck_log_file Using log file .\logs\access.log [2023-01-09 09:15:27] INFO main/server_proc_init Icecast 2.4.0-httpheaders-1 server reading configuration from icecast.xml [2023-01-09 09:15:27] INFO connection/get_ssl_certificate No SSL capability on any configured ports [2023-01-09 09:15:27] INFO connection/connection_setup_sockets 2 listener socket(s) for port 8001 [2023-01-09 09:15:27] INFO connection/connection_setup_sockets 2 listener socket(s) for port 8000 [2023-01-09 09:15:27] INFO connection/connection_setup_sockets 4 listening sockets setup complete [2023-01-09 09:15:27] INFO main/server_process Icecast 2.4.0-httpheaders-1 server started [2023-01-09 09:15:27] INFO client/workers_adjust requested worker count 2 [2023-01-09 09:15:27] INFO client/log_commit_thread started [2023-01-09 09:15:27] INFO client/worker_start starting incoming worker thread 000000cb9ad85ad0 [2023-01-09 09:15:27] INFO yp/yp_recheck_config Adding new YP server "http://dir.xiph.org/cgi-bin/yp-cgi" (timeout 15s, default interval 600s) [2023-01-09 09:15:27] INFO yp/yp_client_add Starting Directory client for YP processing [2023-01-09 09:15:27] INFO connection/connection_thread connection thread started
icecast-2.4.0-kh17-pre3_win64_setup.exe is now up. The header validation was not working and ended up invalidating the name, so I've reworked it and that should be all ok now
karl
icecast-2.4.0-kh17-pre3_win64_setup.exe is now up. The header validation was not working and ended up invalidating the name, so I've reworked it and that should be all ok now
@karlheyes
Thank's now i install icecast-2.4.0-kh17-pre3_win64_setup.exe the result is as follows:
[2023-01-09 09:35:16] INFO thread/ lock abort set to 0 [2023-01-09 09:35:16] INFO logging/recheck_log_file Using log file .\logs\access.log [2023-01-09 09:35:16] INFO main/server_proc_init Icecast 2.4.0-kh17-pre3 server reading configuration from icecast.xml [2023-01-09 09:35:16] INFO connection/get_ssl_certificate No SSL capability on any configured ports [2023-01-09 09:35:16] INFO connection/connection_setup_sockets 2 listener socket(s) for port 8001 [2023-01-09 09:35:16] INFO connection/connection_setup_sockets 2 listener socket(s) for port 8000 [2023-01-09 09:35:16] INFO connection/connection_setup_sockets 4 listening sockets setup complete [2023-01-09 09:35:16] INFO main/server_process Icecast 2.4.0-kh17-pre3 server started [2023-01-09 09:35:16] INFO client/workers_adjust requested worker count 2 [2023-01-09 09:35:16] INFO client/log_commit_thread started [2023-01-09 09:35:16] INFO client/worker_start starting incoming worker thread 000000e0ad9f5e50 [2023-01-09 09:35:16] INFO yp/yp_recheck_config Adding new YP server "http://dir.xiph.org/cgi-bin/yp-cgi" (timeout 15s, default interval 600s) [2023-01-09 09:35:16] INFO yp/yp_client_add Starting Directory client for YP processing [2023-01-09 09:35:16] INFO connection/connection_thread connection thread started [2023-01-09 09:35:16] INFO slave/start_relay_stream Starting relayed source at mountpoint "/stream" [2023-01-09 09:35:16] INFO slave/open_relay_connection using username source for /stream [2023-01-09 09:35:16] INFO slave/open_relay_connection connecting to 1xx.xx.xx.xx:8000 for /stream [2023-01-09 09:35:16] INFO format-mp3/format_mp3_get_plugin Created format details for /stream [2023-01-09 09:35:16] INFO format-mp3/mpeg_apply_client icy metadata format expected on /stream, interval 16000 [2023-01-09 09:35:16] INFO source/source_init Source /stream initialised [2023-01-09 09:35:16] INFO source/source_apply_mount Applying mount information for "/stream" [2023-01-09 09:35:16] INFO slave/start_relay_stream source /stream is ready to start [2023-01-09 09:35:16] INFO source/source_read listener count on /stream now 0 [2023-01-09 09:35:16] INFO mpeg/check_for_aac Detected AAC MPEG-4, 22050Hz 2 channel(s) 64 kbps on 1xx.xx.xx.xx [2023-01-09 09:35:16] INFO source/source_set_override no override for /stream set [2023-01-09 09:35:16] INFO format-mp3/parse_icy_metadata incoming title for /stream Bon Jovi - Always [2023-01-09 09:35:16] INFO format-mp3/metadata_setup icy metadata on /stream as (3) StreamTitle='Bon Jovi - Always';... [2023-01-09 09:35:16] INFO util/cached_file_recheck 3 entries read from file "agents" [2023-01-09 09:35:16] WARN client/client_http_apply header problem Connection:Close [2023-01-09 09:35:16] INFO source/source_read listener count on /stream now 1
[2023-01-09 09:35:16] WARN client/client_http_apply header problem Connection:Close
I guess you trying to set a connection header? This should be just a warning on a 1.0 connection. I can make it so that is silently ignored for that case
I guess you trying to set a connection header? This should be just a warning on a 1.0 connection. I can make it so that is silently ignored for that case
well I tried to play stream on 1 player (winamp). now I tried to play on 3 devices (winamp, VLC, foobar) there is no more warning in the log
how about this luna player?
how about this luna player?
in lunaplayer for the native mountpoint of the encoder/relay, metadata it runs normally. I think maybe if the relay appears metadata because there is a command <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
the mountpoint of the alias and fallback-mount metadata are not showing maybe because there is no metadata relay command
I also noticed reading metadata in luna player has something to do with the status-json.xsl and xml2json.xslt files. if the file is deleted the metadata is lost in luna player including the original mouthpoint from the encoder or from the metadata relay
icy metadata to the player is independent of the source. normal icy source clients do not do inserts but use admin requests. now if the issue is related to other requests like xsl then the xsl aspect could be a factor, which is why I was asking about other requests going on as shown in the access log. The cors aspect could affect things as the headers may of needed to be available
karl.
One of the long term problems of fallback handling is that listeners are moved to a different mounpoint so related but different requests have to go looking for them. Whether this is by the alias or fallback mechanism. Think of the issue where mount A and mount B fallback to a common fallback C. listeners could be on A C or B depending on what actually happens. One of my pending updates is to allow source clients to jump into relayed mountpoints without dropping listeners, this effectively means you have a fallback where listeners are anchored to a mountpoint, no need of the fallback from A or B (to C)
karl
I just found out that lunaplayer is related to the status-json.xsl and xml2json.xslt files after I deleted them. I didn't think about it before, indeed for the player version (winamp, foobar, vlc and others) this is not affected, the metadata always runs normally either from aliases or fallback. I just realized, for luna player is the web version, of course they work because there is a help json file. I saw lunaplayer in a state where I didn't press the Play button (and the stream didn't stop), the metadata kept running and changing metadata just like on the streaming server, it continued to run according to changing songs.
@karlheyes
i saw in the log when opening the lunaplayer page with URL stream https://sub.domain.com:8000/test (note mountpoint alias /test destination to /stream)
access. log 2xx.xxx.xx.xx - - [09/Jan/2023:19:11:55 +0700] "GET /stream HTTP/1.0" 200 95451 "-" "foobar2000/1.6.14" 4 2xx.xxx.xx.xx - - [09/Jan/2023:19:12:29 +0700] "GET /status-json.xsl HTTP/1.1" 200 3249 "https://xxx.domain.com/" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" 1 2xx.xxx.xx.xx - - [09/Jan/2023:19:12:39 +0700] "GET /status-json.xsl HTTP/1.1" 200 3249 "https://xxx.domain.com/" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" 1
error. log [2023-01-09 19:12:24] INFO source/source_read listener count on /stream now 2 [2023-01-09 19:14:58] INFO format-mp3/parse_icy_metadata incoming title for /stream Linkin Park - Numb [2023-01-09 19:14:58] INFO format-mp3/metadata_setup icy metadata on /stream as (3) StreamTitle='Linkin Park - Numb';...
in Player foobar complete metadata appears in lunaplayer metadata does not appear
not sure if we can do much about that at the moment. You can pass a mount param to xsl but this does not, so would get all streams and I guess it search for the one it wants from the output, annoying for many streams. Where as foobar is just getting the inserts as needed through the stream. This looks to be a case where alias and fallback will not help with stream meta as the listener is actually located somewhere other than the player expects.
not sure if we can do much about that at the moment. You can pass a mount param to xsl but this does not, so would get all streams and I guess it search for the one it wants from the output, annoying for many streams. Where as foobar is just getting the inserts as needed through the stream. This looks to be a case where alias and fallback will not help with stream meta as the listener is actually located somewhere other than the player expects.
very understandable, logically it is very true, aliases and follback-mount should indeed be used as backup mountpoints
not sure if it will work, but you could try a redirect for test ie
<redirect-to>http://xxxx/stream</redirect-to>
not sure if it will work, but you could try a redirect for test ie
<redirect-to>http://xxxx/stream</redirect-to>
<mount>
<mount-name>/test</mount-name>
<redirect-to>https://xxxxxx/stream</redirect-to>
</mount>
foobar, vlc can be played and the metadata runs smoothly. Lunaplayer can't play
@karlheyes let's forget about lunaplayer for a moment. makes us confused and dizzy hahahaha... can you provide the linux version of icecast-2.4.0-kh17-pre3? I'm curious to try also for http-headers. for the last monitoring version of windows64, http-headers are running fine.
the master tree has been updated with the http headers code.
karl.
the master tree has been updated with the http headers code.
karl.
I'm confused, usually install using ssh for the wget command for icecast-kh-master. Please help but I can just be patient for the release of the stable version of kh17 thank's
tagged now on https://github.com/karlheyes/icecast-kh/tags
tagged now on https://github.com/karlheyes/icecast-kh/tags
error install @karlheyes
make[3]: Entering directory '/usr/src/icecast-kh-icecast-2.4.0-kh17-pre3/src'
CC cfgfile.o
CC main.o
CC stats.o
CC format_mp3.o
format_mp3.c: In function ‘format_mp3_free_plugin’:
format_mp3.c:774:62: error: parameter name omitted
774 | tatic void format_mp3_free_plugin (format_plugin_t plugin, client_t )
| ^~~~~~
make[3]: [Makefile:619: format_mp3.o] Error 1 make[3]: Leaving directory '/usr/src/icecast-kh-icecast-2.4.0-kh17-pre3/src' make[2]: [Makefile:652: all-recursive] Error 1 make[2]: Leaving directory '/usr/src/icecast-kh-icecast-2.4.0-kh17-pre3/src' make[1]: [Makefile:516: all-recursive] Error 1 make[1]: Leaving directory '/usr/src/icecast-kh-icecast-2.4.0-kh17-pre3' make: [Makefile:427: all] Error 2
tagged the wrong one, this should now be fixed
tagged the wrong one, this should now be fixed
now the install was successful, from my monitoring the headers are running fine for this version of linux. make sure the windows version is also still running well. i will monitor it. thanks for helping a lot.
@karlheyes server monitoring using linux icecast-2.4.0-kh17-pre3 retag
result error.log : [2023-01-10 01:00:00] WARN client/client_http_apply header problem Connection:Close [2023-01-10 01:00:00] INFO source/source_add_listener max on /stream is -1 (cur 5) [2023-01-10 01:00:01] INFO source/source_read listener count on /stream now 6 [2023-01-10 01:00:01] INFO source/source_read listener count on /stream now 5 [2023-01-10 01:00:02] INFO admin/admin_handle_general_request processing file stats [2023-01-10 01:00:02] WARN client/client_http_apply header problem Connection:Close [2023-01-10 01:00:02] INFO source/source_add_listener max on /stream is -1 (cur 5) [2023-01-10 01:00:02] WARN client/client_http_apply header problem Connection:Close [2023-01-10 01:00:02] INFO source/source_read listener count on /stream now 6 [2023-01-10 01:00:02] INFO source/source_read listener count on /stream now 5 [2023-01-10 01:00:03] WARN client/client_http_apply header problem Connection:Close [2023-01-10 01:00:03] INFO source/source_add_listener max on /stream is -1 (cur 5) [2023-01-10 01:00:03] INFO source/source_read listener count on /stream now 6 [2023-01-10 01:00:03] INFO source/source_read listener count on /stream now 5 [2023-01-10 01:00:03] INFO admin/admin_handle_general_request processing file stats [2023-01-10 01:00:03] WARN client/client_http_apply header problem Connection:Close [2023-01-10 01:00:39] WARN client/client_http_apply header problem Connection:Close [2023-01-10 01:00:39] INFO source/source_add_listener max on /stream is -1 (cur 5) [2023-01-10 01:00:39] INFO source/source_read listener count on /stream now 6 [2023-01-10 01:00:39] INFO source/source_read listener count on /stream now 5 [2023-01-10 01:01:35] INFO connection/http_client_request dropping client at 88.99.187.2 because useragent is Python-urllib/3.8 [2023-01-10 01:02:02] INFO admin/admin_handle_general_request processing file stats [2023-01-10 01:02:02] WARN client/client_http_apply header problem Connection:Close [2023-01-10 01:02:41] WARN client/client_http_apply header problem Connection:Close [2023-01-10 01:02:41] INFO source/source_add_listener max on /stream is -1 (cur 4) [2023-01-10 01:02:41] INFO source/source_read listener count on /stream now 5 [2023-01-10 01:02:43] INFO source/source_read listener count on /stream now 4
even though there is a warning http-header on error.log, but test verification on www.radio-browser.info/owners is working fine
I've just fixed the issue, for v 1.1 it will be used, else it will be ignored. In the code path, the error report does not prevent the client from continuing so that is ok
@karlheyes now i tried to install the linux version using git clone from your icecast-kh master. a problem arises: the title relay does not appear, the sound of the relay becomes stagnant, screams and finally stops. but using icecast-2.4.0-kh17-pre4 no such problem
Your description sounds like a melodrama. The changes since are essentially in the setup for a relay feed. When I tried a feed here it was fine. I may be skipping over something that you have got set. Do you have a link to relay and does it always occur
the problem is audio is broken and metadata is not showing like I tried on icecast-2.4.0-kh17-http.tar.gz, but versions of icecast-2.4.0-kh17-pre4 and icecast-2.4.0-kh16.3 work fine. I'm confused where the problem is.
<relay>
<server>xxx.xx.x.xx</server>
<port>8000</port>
<mount>/stream</mount>
<local-mount>/stream</local-mount>
<username>source</username>
<password>xxxxxxx</password>
<relay-shoutcast-metadata>1</relay-shoutcast-metadata>
</relay>
If the following settings are included in the config file, it works perfectly after startup. However, if I reload the config file, the port remains open, but Icecast is not responding. Unfortunately, if the loglevel is set to level 4, when the error appears, it does not contain anything unusual.
Config file: https://pastebin.com/bFxzrzfH