How far are we with Opus in-stream metadata? #3990
Replies: 11 comments 15 replies
-
Hi @Moonbase59, |
Beta Was this translation helpful? Give feedback.
-
My observation is there a 2 types of opus streams.
|
Beta Was this translation helpful? Give feedback.
-
Regarding Azuracast, I believe the default is my liquidsoap script uses |
Beta Was this translation helpful? Give feedback.
-
Also Azuracast uses IcecastKH, and doesn't accept icy url updates for ogg streams. |
Beta Was this translation helpful? Give feedback.
-
Thanks for the insights, @smoralis – real helpful. So I set
and indeed metadata is shown:
It seems that the bug hasn’t been fixed yet, if I leave it running the metadata starts to get cumulated:
and some players like Audacious display the metadata from when the connection started, then never update again. VLC somehow seems to do it right, changes metadata when it changes on stream. No wonder probably, because they use their own decoders. Anything that can be done? Or wait another few years? @smoralis You’re using Icecast 2.4.0-kh19, how do you get the |
Beta Was this translation helpful? Give feedback.
-
http://zeremy.serv00.net:8200/opus http://zeremy.serv00.net:8202/opus |
Beta Was this translation helpful? Give feedback.
-
Let’s cross our fingers. You might also involve on the bugs mentioned, and add a "confirm" or something, so they see it is actually something people want. |
Beta Was this translation helpful? Give feedback.
-
@Moonbase59 |
Beta Was this translation helpful? Give feedback.
-
@toots @vitoyucepi Could you tell us which encoder is actually used when using If I recode from enc = %opus(
samplerate=48000,
bitrate=128,
vbr="constrained",
application="audio",
channels=2,
signal="music",
complexity=10,
max_bandwidth="full_band"
)
output.icecast(
enc,
radio,
id="local_7",
host = "127.0.0.1",
port = 8000,
password = "(PASSWORD)",
mount = "/test.opus",
name = "Nite Radio",
description = "Wir spielen die bessere Musik.",
genre = "Classic Rock, Easy Listening, Electronic, Folk Rock, Hard Rock, Oldies, Pop, Schlager, Various",
url = "https://grav1.niteradio.net/",
public = false,
encoding = "UTF-8",
send_icy_metadata=false
) to using enc = %ffmpeg(format="ogg", %audio(
codec="libopus",
samplerate=48000,
b="128k",
vbr="constrained",
application="audio",
channels=2,
compression_level=10,
cutoff=20000
))
output.icecast(
enc,
radio,
id="local_7",
host = "127.0.0.1",
port = 8000,
password = "(PASSWORD)",
mount = "/test.opus",
name = "Nite Radio",
description = "Wir spielen die bessere Musik.",
genre = "Classic Rock, Easy Listening, Electronic, Folk Rock, Hard Rock, Oldies, Pop, Schlager, Various",
url = "https://grav1.niteradio.net/",
public = false,
encoding = "UTF-8",
send_icy_metadata=false
) even Firefox has a smooth playout without stalling at metadata changes! The same thing @smoralis found with his setup. @smoralis (and others) could you please verify that
In the meantime, I’ll check out some more browsers. |
Beta Was this translation helpful? Give feedback.
-
Tested so far and work well:
All good on both streams, *=stalls on So it seems we should use the |
Beta Was this translation helpful? Give feedback.
-
Here are some easy ways to check for stream and metadata. Check metadata, using the official Opus decoder:
Check metadata and play in WAV format:
(You could substitute something else instead of |
Beta Was this translation helpful? Give feedback.
-
I noticed @toots was active in https://trac.ffmpeg.org/ticket/10363 (and others) 14 months ago.
Opus has a superior sound quality and rather low bandwidth, but I can’t find any way to include metadata using Liquidsoap/AzuraCast, which makes it rather unusable. Players should be able to display metadata, and the Opus spec indicates they can do in-stream metadata.
Is there any "trick" I might have missed? My current Opus output looks like this:
(Password and domain changed.)
Would be really fine after many years to finally get Opus streams with metadata. Apparently others can do:
Beta Was this translation helpful? Give feedback.
All reactions