Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No metadata for FLAC mount point #5008

Open
bandiii92 opened this issue Jan 20, 2022 · 8 comments
Open

No metadata for FLAC mount point #5008

bandiii92 opened this issue Jan 20, 2022 · 8 comments
Labels
bug A part of the software's functionality doesn't work as expected. error An error encountered when running the software. unexpected behaviour For issues that show a part of AzuraCast behaving in a way that is not as intended.

Comments

@bandiii92
Copy link

Installation Method

Docker Installation

AzuraCast Release Channel

Stable Channel

Current AzuraCast Version

v0.15.0 Stable • Docker • PHP 8.1

What happened?

image
On FLAC mount point its not showing the current song in icecast for some reason as you can see it on the picture. If i sream in FLAC its not sending metadata to the mount points at all and it titles "Unknown" for all.

Relevant log output

No response

@bandiii92 bandiii92 added the needs investigation An issue that needs further investigation by a developer to determine the root cause. label Jan 20, 2022
@ItsMitchh
Copy link
Member

ItsMitchh commented Jan 20, 2022

Checked and this is my findings:
I have both a .mp3 and a .Flac mount point.
From the Docker Logs, AzuraCast has issues finding the Flac mount point and returns this in the logs:

web_1       | [2022-01-20T16:58:07.158665+00:00] AzuraCast.ERROR: Remote server has no mount points listed. {"response":"<?xml version=\"1.0\"?>\n<icestats>\n  <admin>icemaster@localhost</admin>\n  <banned_IPs>0</banned_IPs>\n  <build>20220109023605</build>\n  <client_connections>6103</client_connections>\n  <clients>1</clients>\n  <connections>3141</connections>\n  <file_connections>0</file_connections>\n  <host>localhost</host>\n  <listener_connections>3</listener_connections>\n  <listeners>0</listeners>\n  <location>AzuraCast</location>\n  <outgoing_kbitrate>0</outgoing_kbitrate>\n  <server_id>Icecast 2.4.0-kh15-ac1</server_id>\n  <server_start>19/Jan/2022:23:17:16 +0000</server_start>\n  <source_client_connections>13</source_client_connections>\n  <source_relay_connections>0</source_relay_connections>\n  <source_total_connections>13</source_total_connections>\n  <sources>1</sources>\n  <stats>0</stats>\n  <stats_connections>0</stats_connections>\n  <stream_kbytes_read>974295</stream_kbytes_read>\n  <stream_kbytes_sent>1733</stream_kbytes_sent>\n  <source mount=\"/Testing.flac\">\n    <artist>billie-eilish-everything-i</artist>\n    <audio_codecid>2</audio_codecid>\n    <audio_info>channels=2;samplerate=44100;bitrate=128</audio_info>\n    <bitrate>128</bitrate>\n    <connected>270</connected>\n    <genre>various</genre>\n    <incoming_bitrate>130168</incoming_bitrate>\n    <listener_connections>1</listener_connections>\n    <listener_peak>1</listener_peak>\n    <listeners>0</listeners>\n    <listenurl>http://localhost:8000/Testing.flac</listenurl>\n    <max_listeners>-1</max_listeners>\n    <metadata_updated>20/Jan/2022:16:53:38 +0000</metadata_updated>\n    <mpeg_channels>2</mpeg_channels>\n    <mpeg_samplerate>44100</mpeg_samplerate>\n    <outgoing_kbitrate>0</outgoing_kbitrate>\n    <public>1</public>\n    <queue_size>72725</queue_size>\n    <server_description>testing station for some reaon</server_description>\n    <server_name>main test</server_name>\n    <server_type>audio/mpeg</server_type>\n    <slow_listeners>0</slow_listeners>\n    <source_ip>127.0.0.1</source_ip>\n    <stream_start>20/Jan/2022:16:53:35 +0000</stream_start>\n    <title>wanted</title>\n    <total_bytes_read>4306939</total_bytes_read>\n    <total_bytes_sent>908357</total_bytes_sent>\n    <total_mbytes_sent>0</total_mbytes_sent>\n    <user_agent>Liquidsoap/2.0.2 (Unix; OCaml 4.12.0)</user_agent>\n    <yp_currently_playing>billie-eilish-everything-i - wanted</yp_currently_playing>\n  </source>\n</icestats>\n"} {"station":{"id":1,"name":"main test"}}
web_1       | [2022-01-20T16:58:07.161867+00:00] AzuraCast.WARNING: Could not fetch XML data; falling back to public JSON. [] {"station":{"id":1,"name":"main test"}}
web_1       | [2022-01-20T16:58:07.279296+00:00] AzuraCast.ERROR: Request returned status code 400. {"body":""} {"station":{"id":1,"name":"main test"}}
web_1       | [2022-01-20T16:58:19.038235+00:00] AzuraCast.ERROR: Remote server has no mount points listed. {"response":"<?xml version=\"1.0\"?>\n<icestats>\n  <admin>icemaster@localhost</admin>\n  <banned_IPs>0</banned_IPs>\n  <build>20220109023605</build>\n  <client_connections>6108</client_connections>\n  <clients>1</clients>\n  <connections>3144</connections>\n  <file_connections>0</file_connections>\n  <host>localhost</host>\n  <listener_connections>3</listener_connections>\n  <listeners>0</listeners>\n  <location>AzuraCast</location>\n  <outgoing_kbitrate>0</outgoing_kbitrate>\n  <server_id>Icecast 2.4.0-kh15-ac1</server_id>\n  <server_start>19/Jan/2022:23:17:16 +0000</server_start>\n  <source_client_connections>13</source_client_connections>\n  <source_relay_connections>0</source_relay_connections>\n  <source_total_connections>13</source_total_connections>\n  <sources>1</sources>\n  <stats>0</stats>\n  <stats_connections>0</stats_connections>\n  <stream_kbytes_read>974452</stream_kbytes_read>\n  <stream_kbytes_sent>1733</stream_kbytes_sent>\n  <source mount=\"/Testing.flac\">\n    <artist>billie-eilish-everything-i</artist>\n    <audio_codecid>2</audio_codecid>\n    <audio_info>channels=2;samplerate=44100;bitrate=128</audio_info>\n    <bitrate>128</bitrate>\n    <connected>280</connected>\n    <genre>various</genre>\n    <incoming_bitrate>130168</incoming_bitrate>\n    <listener_connections>1</listener_connections>\n    <listener_peak>1</listener_peak>\n    <listeners>0</listeners>\n    <listenurl>http://localhost:8000/Testing.flac</listenurl>\n    <max_listeners>-1</max_listeners>\n    <metadata_updated>20/Jan/2022:16:53:38 +0000</metadata_updated>\n    <mpeg_channels>2</mpeg_channels>\n    <mpeg_samplerate>44100</mpeg_samplerate>\n    <outgoing_kbitrate>0</outgoing_kbitrate>\n    <public>1</public>\n    <queue_size>72725</queue_size>\n    <server_description>testing station for some reaon</server_description>\n    <server_name>main test</server_name>\n    <server_type>audio/mpeg</server_type>\n    <slow_listeners>0</slow_listeners>\n    <source_ip>127.0.0.1</source_ip>\n    <stream_start>20/Jan/2022:16:53:35 +0000</stream_start>\n    <title>wanted</title>\n    <total_bytes_read>4467435</total_bytes_read>\n    <total_bytes_sent>908357</total_bytes_sent>\n    <total_mbytes_sent>0</total_mbytes_sent>\n    <user_agent>Liquidsoap/2.0.2 (Unix; OCaml 4.12.0)</user_agent>\n    <yp_currently_playing>billie-eilish-everything-i - wanted</yp_currently_playing>\n  </source>\n</icestats>\n"} {"station":{"id":1,"name":"main test"}}
web_1       | [2022-01-20T16:58:19.046712+00:00] AzuraCast.WARNING: Could not fetch XML data; falling back to public JSON. [] {"station":{"id":1,"name":"main test"}}
web_1       | [2022-01-20T16:58:19.155636+00:00] AzuraCast.ERROR: Request returned status code 400. {"body":""} {"station":{"id":1,"name":"main test"}}

Liquidsoap was also having issues with collecting the metadata, an update failed which lead to an error 400 and then returned an error.

2022/01/20 17:02:40 [lang:3] autodj_next_song: AzuraCast API Response: annotate:title="video",artist="billie-eilish-your-power- official-music",duration="262.00",song_id="0122f9ec43ba76f7ae50185259e8a955",media_id="8",liq_amplify="0.00dB",playlist_id="2":/var/azuracast/stations/main_test/media/flac test/billie-eilish-your-power-_official-music-video_.flac
2022/01/20 17:02:40 [lang:3] AzuraCast Feedback Response: OK
2022/01/20 17:02:40 [local_1:3] Metadata update may have failed with error: 400, Bad Request (HTTP/1.0)
2022/01/20 17:02:40 [local_1:2] Error while sending data: could not write data to host: Broken pipe in write()!
2022/01/20 17:02:40 [local_1:3] Closing connection...
2022/01/20 17:02:40 [local_1:3] Will try to reconnect in 3.00 seconds.
2022/01/20 17:02:44 [local_1:3] Connecting mount /radio.mp3 for source@127.0.0.1...
2022/01/20 17:02:44 [local_1:3] Connection setup was successful.

After restarting the station I removed the .mp3 mount and retried the replication method.

Things that I noted: After the immediate restart, the server returned a unknown metadata, but after the playlist kicked in and the restart was completed, the metadata was correct.

With a .mp3 mount AND .flac mount, it returns the same errors that the server had no mount points listed.

@ItsMitchh ItsMitchh added unexpected behaviour For issues that show a part of AzuraCast behaving in a way that is not as intended. possible bug An issue that could potentially be a bug but which needs further confirmation. error An error encountered when running the software. and removed needs investigation An issue that needs further investigation by a developer to determine the root cause. labels Jan 20, 2022
@bandiii92
Copy link
Author

271389670_3059979814219118_1357705894217401942_n
Keep up the good work guys. Hopefully you can fix it in the next update.

@github-actions
Copy link

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale An inactive github issue that has had no activity in 20 days. label Feb 12, 2022
@ItsMitchh ItsMitchh added bug A part of the software's functionality doesn't work as expected. and removed possible bug An issue that could potentially be a bug but which needs further confirmation. labels Feb 12, 2022
@github-actions github-actions bot removed the stale An inactive github issue that has had no activity in 20 days. label Feb 13, 2022
@Vaalyn
Copy link
Sponsor Member

Vaalyn commented Feb 13, 2022

@SC2Mitch Regarding the AzuraCast being unable to find the mount point errors, I think this is most likely related to LS taking some time to start streaming to the FLAC mount point of Icecast. Probably related to the broken pipe error. When I wait until LS connected correctly to the FLAC mount point and Icecast showing it on the :8000 status page AzuraCast can read the mount point data without getting an error.

In the latest Rolling-Release I can't see the Metadata update may have failed with error: 400, Bad Request (HTTP/1.0) message but I can see the other errors you mentioned:

2022/02/13 14:57:15 [lang:3] AutoDJ is ready!
2022/02/13 14:57:35 [local_2:2] Error while sending data: could not write data to host: Broken pipe in write()!
2022/02/13 14:57:35 [local_2:3] Closing connection...
2022/02/13 14:57:35 [local_2:3] Will try to reconnect in 3.00 seconds.
2022/02/13 14:57:39 [local_2:3] Connecting mount /flac for source@127.0.0.1...
2022/02/13 14:57:39 [local_2:3] Connection setup was successful.
2022/02/13 14:58:00 [local_2:2] Error while sending data: could not write data to host: Broken pipe in write()!
2022/02/13 14:58:00 [local_2:3] Closing connection...
2022/02/13 14:58:00 [local_2:3] Will try to reconnect in 3.00 seconds.
2022/02/13 14:58:04 [local_2:3] Connecting mount /flac for source@127.0.0.1...
2022/02/13 14:58:04 [local_2:3] Connection setup was successful.
2022/02/13 14:58:14 [mksafe:3] Switch to buffer.producer_0 with transition.
....

In general Icecast (regardless of Icecast-kh or the original Icecast) does not support setting metadata for ogg/opus nor for ogg/flac.

See the open issues related to this on the Icecast-kh repo: https://github.com/karlheyes/icecast-kh/issues?q=is%3Aissue+is%3Aopen+ogg+flac

As well as this 11 years old Icecast issue: https://gitlab.xiph.org/xiph/icecast-server/-/issues/1655

When having at least 1 mount point that supports metadata (like mp3 for example) AzuraCast does correctly show what's currently playing though.

I have also tried removing the icy_metadata (this was added to prevent broken browser decoders like Chromes from stopping the stream of an ogg based one on each track change) and it's still looking the same although it seems like Chrome has now fixed their issue with ogg streams. Also tested Safari and Firefox, no stream stopping there too.

So we could remove the icy_metadata flag for ogg based streams to get in-stream metadata back for those. This would show metadata in players like VLC again which don't support icy metadata. Won't change the empty song title on Icecast though.

@bandiii92
Copy link
Author

Main thing would be to show metadata when we stream in FLAC.

@krono-i2
Copy link

+1 here!

@luuk58
Copy link

luuk58 commented Jun 1, 2022

Icecast now supports metadata in ogg/flac.
https://gitlab.xiph.org/xiph/icecast-server/-/commit/1eda7cc45a9f00dc1252aef2dc8eb92126c12193
It's the master branch though, not the kh branch.

@Vaalyn
Copy link
Sponsor Member

Vaalyn commented Jun 1, 2022

https://gitlab.xiph.org/xiph/icecast-server/-/commit/1eda7cc45a9f00dc1252aef2dc8eb92126c12193

I have seen this too a few weeks ago but at the moment this is only available in a development branch of their repo and neither merged into their main branch nor released as a beta version. So even if we would switch to main Icecast (which we can't due to a missing feature that we need for correct listener reporting) we wouldn't get this feature yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug A part of the software's functionality doesn't work as expected. error An error encountered when running the software. unexpected behaviour For issues that show a part of AzuraCast behaving in a way that is not as intended.
Projects
None yet
Development

No branches or pull requests

5 participants