savonet / liquidsoap

Liquidsoap is a statically typed scripting general-purpose language with dedicated operators and backend for all thing media, streaming, file generation, automation, HTTP backend and more.
http://liquidsoap.info
GNU General Public License v2.0
1.39k stars 128 forks source link

Crossfading operates wrongly in 2.2.0 after some hours #3334

Closed Warblefly closed 1 year ago

Warblefly commented 1 year ago

Describe the bug After some hours (maybe around twelve?) of running liquidsoap 2.2.0, simple overlaps between tracks using cue_cut, liq_cue_in, liq_cross_duration, go wrong.

Instead of allowing tracks to overlap (as per my annotate: metadata), outgoing tracks sometimes cut off or end, followed sometimes by a click, then there is a silence of a couple of seconds (or longer), then the next track begins.

But in 2.1.4, there is no problem using the same script for days and days (with minor adjustments for the ffmpeg processing in/out)

To Reproduce

settings.server.log.level.set(5)
settings.server.telnet.set(true)
settings.server.telnet.bind_addr.set("0.0.0.0")
settings.server.telnet.port.set(1235)
settings.server.timeout.set(-1.0)
settings.decoder.decoders.set(["ffmpeg"])

# audio processing for high quality stream
def audio_process(s) =
  def mkfilter(graph) =
    let {audio} = source.tracks(s)
    audio = ffmpeg.filter.audio.input(graph, audio)
    audio =
      ffmpeg.filter.dynaudnorm(
        graph,
        audio,
        gausssize=23,
        correctdc=true,
        altboundary=true,
        maxgain=80.,
        b=true,
        targetrms=1.
      )

    audio =
      ffmpeg.filter.alimiter(
        graph, audio, limit=0.95, attack=3., release=50., asc=true, asc_level=1.
      )

    ffmpeg.filter.audio.output(graph, audio)
  end

  ffmpeg.filter.create(mkfilter)
end

def audio_process_wrap(s) =
  a = ffmpeg.raw.encode.audio(%ffmpeg(%audio.raw), s)
  a = audio_process(a)
  b =
    source(
      {audio=a, metadata=track.metadata(a), track_marks=track.track_marks(a)}
    )

  ffmpeg.raw.decode.audio(b)
end

# audio processing for low quality stream
#
def audio_process_multi(s) =
  def mkfilter_multi(graph) =
    let {audio} = source.tracks(s)
    audio = ffmpeg.filter.audio.input(graph, pass_metadata=true, audio)
    audio = ffmpeg.filter.aresample(graph, audio, sample_rate=32000)
    audio =
      ffmpeg.filter.dynaudnorm(
        graph,
        audio,
        gausssize=7,
        correctdc=true,
        altboundary=true,
        maxgain=80.,
        b=true,
        targetrms=1.
      )

    audio =
      ffmpeg.filter.volume(
        graph, audio, volume="-18dB", precision=2, replaygain=0
      )

    audio =
      ffmpeg.filter.mcompand(
        graph,
        audio,
        args="0.005,0.1 6 -47/-37,-34/-34,-17/-33 90 | 0.003,0.05 6 -47/-40,-34/-34,-17/-33 180 | 0.003,0.05 6 -47/-40,-34/-34,-17/-33 360 | 0.000625,0.03 6 -47/-40,-34/-34,-17/-33 1600 | 0.000625,0.03 6 -47/-40,-34/-34,-17/-33 2800 | 0.0001,0.025 6 -47/-35,-34/-34,-17/-33 4800 | 0,0.025 6 -47/-35,-34/-34,-17/-33 8192 | 0,0.025 6 -47/-40,-34/-34,-17/-33 15999"
      )

    audio =
      ffmpeg.filter.volume(
        graph, audio, volume="+20dB", precision=2, replaygain=0
      )

    audio = ffmpeg.filter.aresample(graph, audio, sample_rate=192000)
    audio =
      ffmpeg.filter.alimiter(
        graph,
        audio,
        limit=0.7,
        attack=3.,
        release=50.,
        asc=false,
        asc_level=0.,
        level=true
      )

    audio = ffmpeg.filter.aresample(graph, audio, sample_rate=32000)
    ffmpeg.filter.audio.output(graph, pass_metadata=true, audio)
  end

  ffmpeg.filter.create(mkfilter_multi)
end

def audio_process_multi_wrap(s) =
  a = ffmpeg.raw.encode.audio(%ffmpeg(%audio.raw), buffer(s))
  a = audio_process_multi(a)
  b =
    source(
      {audio=a, metadata=track.metadata(a), track_marks=track.track_marks(a)}
    )

  ffmpeg.raw.decode.audio(b)
end

# Security fallback
security = single("/home/john/src/radio/fault.mka")

# Here's the playlist, annotated as per our Python pre-production program dictates
myplaylist =
  playlist(
    reload_mode="watch",
    mime_type="application/x-mpegURL",
    "/home/john/src/radio/bc2-30DEC2020-complete.m3u8"
  )

# Cut off any silent starts
myplaylist = cue_cut(myplaylist)

# Amplify each track according to our own EBU R.128 volume data
myplaylist = amplify(override="liq_amplify", 1.0, myplaylist)

# Add the news
myplaylist =
  fallback(
    track_sensitive=true,
    transition_length=30.0,
    [request.queue(id="override"), myplaylist]
  )

# Do the crossfades
myplaylist =
  crossfade(
    duration=30.0,
    smart=false,
    fade_out=0.0,
    fade_in=0.0,
    minimum=-1.0,
    default=(fun (a, b) -> add(normalize=false, ([b, a]))),
    conservative=true,
    myplaylist
  )

#myplaylist = mksafe(myplaylist)
radio =
  fallback(track_sensitive=false, [audio_process_wrap(myplaylist), security])

radio_comp =
  fallback(
    track_sensitive=false, [audio_process_multi_wrap(myplaylist), security]
  )

# What shall we name our HLS segments?
#
def segment_name(~position, ~extname, stream_name) =
  timestamp = int_of_float(time())
  duration = 10
  "#{stream_name}_#{duration}_#{timestamp}_#{position}.#{extname}"
end

# Here's the high bandwidth stream
output.file.hls(
  playlist="live_high.m3u8",
  segment_name=segment_name,
  segment_duration=2.0,
  segments=20,
  segments_overhead=20,
  persist_at="/home/liquidsoap/audio/state.config",
  "/home/liquidsoap/audio",
  [
    (
      "AAC",
      %ffmpeg(
        format = "mpegts",
        %audio(
          codec = "libfdk_aac",
          samplerate = 48000,
          vbr = 5,
          afterburner = 1
        )
      ).{bandwidth=200000, id3_version=4}
    )
  ],
  radio
)

# Here's the low bandwidth stream
output.file.hls(
  playlist="live.m3u8",
  segment_name=segment_name,
  segment_duration=2.0,
  segments=20,
  segments_overhead=20,
  persist_at="/home/liquidsoap/audio/state_low.config",
  "/home/liquidsoap/audio",
  [
    (
      "HEAAC+",
      %ffmpeg(
        format = "mpegts",
        %audio(
          codec = "libfdk_aac",
          samplerate = 32000,
          vbr = 1,
          afterburner = 1,
          profile = "aac_he_v2"
        )
      ).{bandwidth=30000, id3_version=4}
    )
  ],
  radio_comp
)

Now, here is a log from a bad cross: audio ends in silence. Then a click. Then the next track.

2023/08/18 08:14:30 [decoder:2] Decoding "/home/john/src/radio/mez3/10 California Soul.6c3eceac4192b31f737f1842169d33af.mka" ended: Ffmpeg_decoder.End_of_file.
2023/08/18 08:14:30 [decoder:4] Raised at Ffmpeg_decoder.mk_decoder.(fun).f in file "src/core/decoder/ffmpeg_decoder.ml", line 827, characters 12-29
2023/08/18 08:14:30 [decoder:4] Called from Decoder.mk_decoder.fill in file "src/core/decoder/decoder.ml", line 504, characters 10-31
2023/08/18 08:14:30 [decoder:4]
2023/08/18 08:14:30 [bc2-30DEC2020-complete_m3u8:4] Finished with "/home/john/src/radio/mez3/10 California Soul.6c3eceac4192b31f737f1842169d33af.mka".
2023/08/18 08:14:30 [bc2-30DEC2020-complete_m3u8:4] Remaining 0 requests
2023/08/18 08:14:30 [bc2-30DEC2020-complete_m3u8:3] Prepared "/home/john/src/radio/mez3/08 - Birks' Works.cf27d88cefa7bb0679959a248c6fd764.mka" (RID 223).
2023/08/18 08:14:30 [amplify.2:4] End of the current overriding.
2023/08/18 08:14:30 [cross:4] Setting crossfade duration to 30.00s
2023/08/18 08:14:30 [cue_cut:4] Cue points : none / none
2023/08/18 08:14:30 [cue_cut:3] Cueing in...
2023/08/18 08:14:30 [amplify.2:4] Overriding amplification: 0.716143.
2023/08/18 08:14:30 [cross:4] Overriding crossfade duration from metadata liq_cross_duration
2023/08/18 08:14:30 [decoder:4] Available decoders: ffmpeg (priority: 10)
2023/08/18 08:14:30 [decoder:4] Trying decoder "ffmpeg"
2023/08/18 08:14:30 [cross:4] Setting crossfade duration to 17.03s
2023/08/18 08:14:31 [decoder.ffmpeg:3] Requested content-type for "/home/john/src/radio/mez3/Odyssey - Native New Yorker (1977).7e6454849d991db733b54b9e4027446f.mka": {audio=pcm(stereo)}
2023/08/18 08:14:31 [decoder.ffmpeg:3] FFmpeg recognizes "/home/john/src/radio/mez3/Odyssey - Native New Yorker (1977).7e6454849d991db733b54b9e4027446f.mka" as audio: {codec: aac, 44100Hz, 2 channel(s)}
2023/08/18 08:14:31 [decoder.ffmpeg:3] Decoded content-type for "/home/john/src/radio/mez3/Odyssey - Native New Yorker (1977).7e6454849d991db733b54b9e4027446f.mka": {audio=pcm(stereo)}
2023/08/18 08:14:31 [decoder:4] Selected decoder ffmpeg for file "/home/john/src/radio/mez3/Odyssey - Native New Yorker (1977).7e6454849d991db733b54b9e4027446f.mka" with expected kind {audio=pcm(stereo)} and detected content {audio=pcm(stereo)}
2023/08/18 08:14:31 [decoder.video.metadata:4] Unsupported file extension for "/home/john/src/radio/mez3/Odyssey - Native New Yorker (1977).7e6454849d991db733b54b9e4027446f.mka"!
2023/08/18 08:14:31 [decoder.ogg.metadata:4] Unsupported file extension for "/home/john/src/radio/mez3/Odyssey - Native New Yorker (1977).7e6454849d991db733b54b9e4027446f.mka"!
2023/08/18 08:14:31 [decoder.image.metadata:4] Unsupported file extension for "/home/john/src/radio/mez3/Odyssey - Native New Yorker (1977).7e6454849d991db733b54b9e4027446f.mka"!
2023/08/18 08:14:31 [decoder.id3:4] Unsupported file extension for "/home/john/src/radio/mez3/Odyssey - Native New Yorker (1977).7e6454849d991db733b54b9e4027446f.mka"!
2023/08/18 08:14:31 [decoder.id3:4] Unsupported file extension for "/home/john/src/radio/mez3/Odyssey - Native New Yorker (1977).7e6454849d991db733b54b9e4027446f.mka"!
2023/08/18 08:14:31 [decoder.id3:4] Unsupported file extension for "/home/john/src/radio/mez3/Odyssey - Native New Yorker (1977).7e6454849d991db733b54b9e4027446f.mka"!
2023/08/18 08:14:31 [decoder.flac.metadata:4] Unsupported file extension for "/home/john/src/radio/mez3/Odyssey - Native New Yorker (1977).7e6454849d991db733b54b9e4027446f.mka"!
2023/08/18 08:14:31 [decoder.taglib:4] Unsupported file extension for "/home/john/src/radio/mez3/Odyssey - Native New Yorker (1977).7e6454849d991db733b54b9e4027446f.mka"!
2023/08/18 08:14:31 [bc2-30DEC2020-complete_m3u8:4] Queued 1 requests
2023/08/18 08:14:31 [cross:3] Analysis: -25.900882dB / -31.613537dB (2.93s / 2.95s)
2023/08/18 08:14:31 [crossfade:4] Before: ("id3v2_priv.wm/uniquefileidentifier", "A\\x00M\\x00G\\x00a\\x00_\\x00i\\x00d\\x00=\\x00R\\x00 \\x00 \\x00 \\x005\\x001\\x004\\x001\\x009\\x001\\x00;\\x00A\\x00M\\x00G\\x00p\\x00_\\x00i\\x00d\\x00=\\x00V\\x00A\\x00;\\x00A\\x00M\\x00G\\x00t\\x00_\\x00i\\x00d\\x00=\\x00T\\x00 \\x00 \\x004\\x003\\x007\\x002\\x009\\x008\\x001\\x00\\x00\\x00")
2023/08/18 08:14:31 [crossfade:4] Before: ("composer", "Nickolas Ashford/Valerie Simpson")
2023/08/18 08:14:31 [crossfade:4] Before: ("album", "Blue Juice, Vol. 2: Squeeze...Till It Runs Down Your Leg")
2023/08/18 08:14:31 [crossfade:4] Before: ("longtail", "False")
2023/08/18 08:14:31 [crossfade:4] Before: ("date", "1998")
2023/08/18 08:14:31 [crossfade:4] Before: ("on_air_timestamp", "1692342624.00")
2023/08/18 08:14:31 [crossfade:4] Before: ("kind", "{audio=pcm(stereo)}")
2023/08/18 08:14:31 [crossfade:4] Before: ("artist", "Gerald Wilson")
2023/08/18 08:14:31 [crossfade:4] Before: ("decoder", "ffmpeg")
2023/08/18 08:14:31 [crossfade:4] Before: ("liq_cross_duration", "2.960")
2023/08/18 08:14:31 [crossfade:4] Before: ("id3v2_priv.wm/wmcollectiongroupid", "\\xb0c\\x99L\\x18\\xad\\xd5L\\xad\\x81\\x8e\\x11Q\\xc6\\x5c\\xa6")
2023/08/18 08:14:31 [crossfade:4] Before: ("title", "California Soul")
2023/08/18 08:14:31 [crossfade:4] Before: ("liq_cue_in", "0.100")
2023/08/18 08:14:31 [crossfade:4] Before: ("filename", "/home/john/src/radio/mez3/10 California Soul.6c3eceac4192b31f737f1842169d33af.mka")
2023/08/18 08:14:31 [crossfade:4] Before: ("id3v2_priv.wm/mediaclassprimaryid", "\\xbc}`\\xd1#\\xe3\\xe2K\\x86\\xa1H\\xa4*(D\\x1e")
2023/08/18 08:14:31 [crossfade:4] Before: ("publisher", "Blue Note")
2023/08/18 08:14:31 [crossfade:4] Before: ("tlen", "248893")
2023/08/18 08:14:31 [crossfade:4] Before: ("temporary", "false")
2023/08/18 08:14:31 [crossfade:4] Before: ("source", "bc2-30DEC2020-complete_m3u8")
2023/08/18 08:14:31 [crossfade:4] Before: ("tracknumber", "10")
2023/08/18 08:14:31 [crossfade:4] Before: ("initial_uri", "annotate:liq_cue_in=\"0.100\",liq_cross_duration=\"2.960\",duration=\"248.860\",liq_amplify=\"-7.800dB\":/home/john/src/radio/mez3/10 California Soul.6c3eceac4192b31f737f1842169d33af.mka")
2023/08/18 08:14:31 [crossfade:4] Before: ("id3v2_priv.wm/provider", "A\\x00M\\x00G\\x00\\x00\\x00")
2023/08/18 08:14:31 [crossfade:4] Before: ("id3v2_priv.wm/mediaclasssecondaryid", "\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00")
2023/08/18 08:14:31 [crossfade:4] Before: ("encoder", "Lavf59.29.100")
2023/08/18 08:14:31 [crossfade:4] Before: ("id3v2_priv.peakvalue", "!y\\x00\\x00")
2023/08/18 08:14:31 [crossfade:4] Before: ("status", "playing")
2023/08/18 08:14:31 [crossfade:4] Before: ("id3v2_priv.wm/wmcollectionid", "\\xb0c\\x99L\\x18\\xad\\xd5L\\xad\\x81\\x8e\\x11Q\\xc6\\x5c\\xa6")
2023/08/18 08:14:31 [crossfade:4] Before: ("on_air", "2023/08/18 08:10:24")
2023/08/18 08:14:31 [crossfade:4] Before: ("loudness", "-15.200")
2023/08/18 08:14:31 [crossfade:4] Before: ("id3v2_priv.wm/wmcontentid", "\\xda\\xa2\\xc4;\\x1c\\xb2\\x07A\\x8f\\x97\\xd9#\\x94\\x1b{p")
2023/08/18 08:14:31 [crossfade:4] Before: ("rid", "222")
2023/08/18 08:14:31 [crossfade:4] Before: ("genre", "Jazz")
2023/08/18 08:14:31 [crossfade:4] Before: ("duration", "248.860")
2023/08/18 08:14:31 [crossfade:4] Before: ("album_artist", "Various Artists")
2023/08/18 08:14:31 [crossfade:4] Before: ("id3v2_priv.averagelevel", "{\\x13\\x00\\x00")
2023/08/18 08:14:31 [crossfade:4] Before: ("liq_amplify", "-7.800dB")
2023/08/18 08:14:31 [crossfade:4] After : ("album", "Bold Conceptions")
2023/08/18 08:14:31 [crossfade:4] After : ("longtail", "True")
2023/08/18 08:14:31 [crossfade:4] After : ("date", "1962")
2023/08/18 08:14:31 [crossfade:4] After : ("on_air_timestamp", "1692342870.00")
2023/08/18 08:14:31 [crossfade:4] After : ("kind", "{audio=pcm(stereo)}")
2023/08/18 08:14:31 [crossfade:4] After : ("artist", "Bob James Trio")
2023/08/18 08:14:31 [crossfade:4] After : ("decoder", "ffmpeg")
2023/08/18 08:14:31 [crossfade:4] After : ("liq_cross_duration", "17.030")
2023/08/18 08:14:31 [crossfade:4] After : ("title", "Birks' Works")
2023/08/18 08:14:31 [crossfade:4] After : ("liq_cue_in", "0.000")
2023/08/18 08:14:31 [crossfade:4] After : ("filename", "/home/john/src/radio/mez3/08 - Birks' Works.cf27d88cefa7bb0679959a248c6fd764.mka")
2023/08/18 08:14:31 [crossfade:4] After : ("temporary", "false")
2023/08/18 08:14:31 [crossfade:4] After : ("source", "bc2-30DEC2020-complete_m3u8")
2023/08/18 08:14:31 [crossfade:4] After : ("tracknumber", "08")
2023/08/18 08:14:31 [crossfade:4] After : ("initial_uri", "annotate:liq_cue_in=\"0.000\",liq_cross_duration=\"17.030\",duration=\"276.730\",liq_amplify=\"-2.900dB\":/home/john/src/radio/mez3/08 - Birks' Works.cf27d88cefa7bb0679959a248c6fd764.mka")
2023/08/18 08:14:31 [crossfade:4] After : ("encoder", "LAME3.96r")
2023/08/18 08:14:31 [crossfade:4] After : ("status", "playing")
2023/08/18 08:14:31 [crossfade:4] After : ("on_air", "2023/08/18 08:14:30")
2023/08/18 08:14:31 [crossfade:4] After : ("loudness", "-20.100")
2023/08/18 08:14:31 [crossfade:4] After : ("rid", "223")
2023/08/18 08:14:31 [crossfade:4] After : ("genre", "Jazz")
2023/08/18 08:14:31 [crossfade:4] After : ("comment", "EAC FLAC -8")
2023/08/18 08:14:31 [crossfade:4] After : ("duration", "276.730")
2023/08/18 08:14:31 [crossfade:4] After : ("liq_amplify", "-2.900dB")
2023/08/18 08:14:31 [crossfade:3] Simple transition: crossed, fade-in, fade-out.
2023/08/18 08:14:31 [source:4] Source source.665 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:14:31 [source.665:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:14:31 [source:4] Source audio.add.219 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:14:31 [audio.add.219:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:14:31 [source:4] Source fade_in.438 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:14:31 [fade_in.438:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:14:31 [source:4] Source on_track.876 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:14:31 [on_track.876:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:14:31 [source:4] Source on_metadata.438 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:14:31 [on_metadata.438:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:14:31 [source:4] Source on_track.875 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:14:31 [on_track.875:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:14:31 [source:4] Source cross_after.219 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:14:31 [cross_after.219:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:14:31 [source:4] Source buffer.438 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:14:31 [buffer.438:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:14:31 [source:4] Source fade_in.437 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:14:31 [fade_in.437:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:14:31 [source:4] Source fade_out.438 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:14:31 [fade_out.438:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:14:31 [source:4] Source on_end.219 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:14:31 [on_end.219:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:14:31 [source:4] Source on_track.874 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:14:31 [on_track.874:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:14:31 [source:4] Source on_metadata.437 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:14:31 [on_metadata.437:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:14:31 [source:4] Source on_track.873 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:14:31 [on_track.873:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:14:31 [source:4] Source cross_before.219 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:14:31 [cross_before.219:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:14:31 [source:4] Source buffer.437 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:14:31 [buffer.437:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:14:31 [source:4] Source fade_out.437 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:14:31 [fade_out.437:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:14:31 [cross_after.219:4] Fading in with type: sin and duration: 0.s.
2023/08/18 08:14:33 [buffer.437:4] End of track.
2023/08/18 08:14:33 [buffer.437:4] Buffer emptied, buffering needed.
2023/08/18 08:14:33 [cross_before.219:4] Fading out with type sin, duration: 0. and 0.s remaining.
2023/08/18 08:14:33 [buffer.438:4] End of track.
2023/08/18 08:14:33 [buffer.438:4] Buffer emptied, buffering needed.
2023/08/18 08:14:33 [source:4] Source source.665 gets down.
2023/08/18 08:14:33 [source:4] Source audio.add.219 gets down.
2023/08/18 08:14:33 [source:4] Source fade_in.438 gets down.
2023/08/18 08:14:33 [source:4] Source fade_in.437 gets down.
2023/08/18 08:14:33 [source:4] Source on_track.876 gets down.
2023/08/18 08:14:33 [source:4] Source on_metadata.438 gets down.
2023/08/18 08:14:33 [source:4] Source on_track.875 gets down.
2023/08/18 08:14:33 [source:4] Source cross_after.219 gets down.
2023/08/18 08:14:33 [source:4] Source buffer.438 gets down.
2023/08/18 08:14:33 [source:4] Source fade_out.438 gets down.
2023/08/18 08:14:33 [source:4] Source fade_out.437 gets down.
2023/08/18 08:14:33 [source:4] Source on_end.219 gets down.
2023/08/18 08:14:33 [source:4] Source on_track.874 gets down.
2023/08/18 08:14:33 [source:4] Source on_metadata.437 gets down.
2023/08/18 08:14:33 [source:4] Source on_track.873 gets down.
2023/08/18 08:14:33 [source:4] Source cross_before.219 gets down.
2023/08/18 08:14:33 [source:4] Source buffer.437 gets down.
2023/08/18 08:14:33 [cross:4] Buffering end of track...
2023/08/18 08:14:33 [cross:4] More buffering will be needed.
2023/08/18 08:14:42 [/home/liquidsoap/audio/live_high_m3u8:4] Terminating current segment on stream AAC to insert new metadata
2023/08/18 08:18:01 [override:4] Pushing <request(id=225)> on the queue.
2023/08/18 08:18:01 [decoder:4] Available decoders: ffmpeg (priority: 10)
2023/08/18 08:18:01 [decoder:4] Trying decoder "ffmpeg"
2023/08/18 08:18:01 [decoder.ffmpeg:3] Requested content-type for "/home/john/src/radio/bbcnews.mka": {audio=pcm(stereo)}
2023/08/18 08:18:01 [decoder.ffmpeg:3] FFmpeg recognizes "/home/john/src/radio/bbcnews.mka" as audio: {codec: aac, 48000Hz, 2 channel(s)}
2023/08/18 08:18:01 [decoder.ffmpeg:3] Decoded content-type for "/home/john/src/radio/bbcnews.mka": {audio=pcm(stereo)}
2023/08/18 08:18:01 [decoder:4] Selected decoder ffmpeg for file "/home/john/src/radio/bbcnews.mka" with expected kind {audio=pcm(stereo)} and detected content {audio=pcm(stereo)}
2023/08/18 08:18:01 [decoder.video.metadata:4] Unsupported file extension for "/home/john/src/radio/bbcnews.mka"!
2023/08/18 08:18:01 [decoder.ogg.metadata:4] Unsupported file extension for "/home/john/src/radio/bbcnews.mka"!
2023/08/18 08:18:01 [decoder.image.metadata:4] Unsupported file extension for "/home/john/src/radio/bbcnews.mka"!
2023/08/18 08:18:01 [decoder.id3:4] Unsupported file extension for "/home/john/src/radio/bbcnews.mka"!
2023/08/18 08:18:01 [decoder.id3:4] Unsupported file extension for "/home/john/src/radio/bbcnews.mka"!
2023/08/18 08:18:01 [decoder.id3:4] Unsupported file extension for "/home/john/src/radio/bbcnews.mka"!
2023/08/18 08:18:01 [decoder.flac.metadata:4] Unsupported file extension for "/home/john/src/radio/bbcnews.mka"!
2023/08/18 08:18:01 [decoder.taglib:4] Unsupported file extension for "/home/john/src/radio/bbcnews.mka"!
2023/08/18 08:18:01 [override:4] Queued 1 requests
[mp3float @ 0x7f9aadb33ec0] Could not update timestamps for discarded samples.
2023/08/18 08:18:50 [decoder:2] Decoding "/home/john/src/radio/mez3/08 - Birks' Works.cf27d88cefa7bb0679959a248c6fd764.mka" ended: Ffmpeg_decoder.End_of_file.
2023/08/18 08:18:50 [decoder:4] Raised at Ffmpeg_decoder.mk_decoder.(fun).f in file "src/core/decoder/ffmpeg_decoder.ml", line 827, characters 12-29
2023/08/18 08:18:50 [decoder:4] Called from Decoder.mk_decoder.fill in file "src/core/decoder/decoder.ml", line 504, characters 10-31
2023/08/18 08:18:50 [decoder:4]
2023/08/18 08:18:50 [bc2-30DEC2020-complete_m3u8:4] Finished with "/home/john/src/radio/mez3/08 - Birks' Works.cf27d88cefa7bb0679959a248c6fd764.mka".
2023/08/18 08:18:50 [bc2-30DEC2020-complete_m3u8:4] Remaining 0 requests
2023/08/18 08:18:50 [bc2-30DEC2020-complete_m3u8:3] Prepared "/home/john/src/radio/mez3/Odyssey - Native New Yorker (1977).7e6454849d991db733b54b9e4027446f.mka" (RID 224).
2023/08/18 08:18:50 [amplify.2:4] End of the current overriding.
2023/08/18 08:18:50 [override:4] Remaining 0 requests
2023/08/18 08:18:50 [override:3] Prepared "/home/john/src/radio/bbcnews.mka" (RID 225).
2023/08/18 08:18:50 [switch:3] Switch to override with forgetful transition.
2023/08/18 08:18:50 [source:4] Source replay_metadata.486 gets down.
2023/08/18 08:18:50 [source:4] Source replay_metadata.499 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:18:50 [replay_metadata.499:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:18:50 [cross:4] Setting crossfade duration to 30.00s
2023/08/18 08:18:50 [cross:4] Overriding crossfade duration from metadata liq_cross_duration
2023/08/18 08:18:50 [cross:4] Setting crossfade duration to 0.40s
2023/08/18 08:18:50 [cross:3] Analysis: -169.608961dB / -35.035330dB (17.04s / 17.04s)
2023/08/18 08:18:50 [crossfade:4] Before: ("album", "Bold Conceptions")
2023/08/18 08:18:50 [crossfade:4] Before: ("longtail", "True")
2023/08/18 08:18:50 [crossfade:4] Before: ("date", "1962")
2023/08/18 08:18:50 [crossfade:4] Before: ("on_air_timestamp", "1692342870.00")
2023/08/18 08:18:50 [crossfade:4] Before: ("kind", "{audio=pcm(stereo)}")
2023/08/18 08:18:50 [crossfade:4] Before: ("artist", "Bob James Trio")
2023/08/18 08:18:50 [crossfade:4] Before: ("decoder", "ffmpeg")
2023/08/18 08:18:50 [crossfade:4] Before: ("liq_cross_duration", "17.030")
2023/08/18 08:18:50 [crossfade:4] Before: ("title", "Birks' Works")
2023/08/18 08:18:50 [crossfade:4] Before: ("liq_cue_in", "0.000")
2023/08/18 08:18:50 [crossfade:4] Before: ("filename", "/home/john/src/radio/mez3/08 - Birks' Works.cf27d88cefa7bb0679959a248c6fd764.mka")
2023/08/18 08:18:50 [crossfade:4] Before: ("temporary", "false")
2023/08/18 08:18:50 [crossfade:4] Before: ("source", "bc2-30DEC2020-complete_m3u8")
2023/08/18 08:18:50 [crossfade:4] Before: ("tracknumber", "08")
2023/08/18 08:18:50 [crossfade:4] Before: ("initial_uri", "annotate:liq_cue_in=\"0.000\",liq_cross_duration=\"17.030\",duration=\"276.730\",liq_amplify=\"-2.900dB\":/home/john/src/radio/mez3/08 - Birks' Works.cf27d88cefa7bb0679959a248c6fd764.mka")
2023/08/18 08:18:50 [crossfade:4] Before: ("encoder", "LAME3.96r")
2023/08/18 08:18:50 [crossfade:4] Before: ("status", "playing")
2023/08/18 08:18:50 [crossfade:4] Before: ("on_air", "2023/08/18 08:14:30")
2023/08/18 08:18:50 [crossfade:4] Before: ("loudness", "-20.100")
2023/08/18 08:18:50 [crossfade:4] Before: ("rid", "223")
2023/08/18 08:18:50 [crossfade:4] Before: ("genre", "Jazz")
2023/08/18 08:18:50 [crossfade:4] Before: ("comment", "EAC FLAC -8")
2023/08/18 08:18:50 [crossfade:4] Before: ("duration", "276.730")
2023/08/18 08:18:50 [crossfade:4] Before: ("liq_amplify", "-2.900dB")
2023/08/18 08:18:50 [crossfade:4] After : ("language", "eng")
2023/08/18 08:18:50 [crossfade:4] After : ("composer", "BBC Sounds")
2023/08/18 08:18:50 [crossfade:4] After : ("album", "BBC News")
2023/08/18 08:18:50 [crossfade:4] After : ("date", "2023-08-18T08:00:00+01:00")
2023/08/18 08:18:50 [crossfade:4] After : ("compatible_brands", "M4A isomiso2")
2023/08/18 08:18:50 [crossfade:4] After : ("on_air_timestamp", "1692343130.00")
2023/08/18 08:18:50 [crossfade:4] After : ("handler_name", "SoundHandler")
2023/08/18 08:18:50 [crossfade:4] After : ("kind", "{audio=pcm(stereo)}")
2023/08/18 08:18:50 [crossfade:4] After : ("lyrics", "The latest five minute news bulletin from BBC World Service.\r\n\r\nPLAY: https://www.bbc.co.uk/programmes/w172z2qywqpgcxs\r\n\r\nINFO: https://www.bbc.co.uk/programmes/w172z2qywqpgcxs")
2023/08/18 08:18:50 [crossfade:4] After : ("artist", "BBC News")
2023/08/18 08:18:50 [crossfade:4] After : ("decoder", "ffmpeg")
2023/08/18 08:18:50 [crossfade:4] After : ("liq_cross_duration", "0.4")
2023/08/18 08:18:50 [crossfade:4] After : ("title", "BBC World Service News")
2023/08/18 08:18:50 [crossfade:4] After : ("filename", "/home/john/src/radio/bbcnews.mka")
2023/08/18 08:18:50 [crossfade:4] After : ("temporary", "false")
2023/08/18 08:18:50 [crossfade:4] After : ("source", "override")
2023/08/18 08:18:50 [crossfade:4] After : ("initial_uri", "annotate:liq_fade_in=\"0.0\",liq_fade_out=\"0.0\",liq_cross_duration=\"0.4\",duration=\"180.0\",title=\"BBC World Service News\",artist=\"BBC News\":/home/john/src/radio/bbcnews.mka")
2023/08/18 08:18:50 [crossfade:4] After : ("copyright", "2023 British Broadcasting Corporation, all rights reserved")
2023/08/18 08:18:50 [crossfade:4] After : ("liq_fade_out", "0.0")
2023/08/18 08:18:50 [crossfade:4] After : ("media_type", "1")
2023/08/18 08:18:50 [crossfade:4] After : ("major_brand", "M4A ")
2023/08/18 08:18:50 [crossfade:4] After : ("encoder", "Lavc60.23.100 libfdk_aac")
2023/08/18 08:18:50 [crossfade:4] After : ("status", "playing")
2023/08/18 08:18:50 [crossfade:4] After : ("minor_version", "512")
2023/08/18 08:18:50 [crossfade:4] After : ("vendor_id", "[0][0][0][0]")
2023/08/18 08:18:50 [crossfade:4] After : ("on_air", "2023/08/18 08:18:50")
2023/08/18 08:18:50 [crossfade:4] After : ("liq_fade_in", "0.0")
2023/08/18 08:18:50 [crossfade:4] After : ("grouping", "News,Bulletins")
2023/08/18 08:18:50 [crossfade:4] After : ("rid", "225")
2023/08/18 08:18:50 [crossfade:4] After : ("comment", "The latest five minute news bulletin from BBC World Service.")
2023/08/18 08:18:50 [crossfade:4] After : ("genre", "News")
2023/08/18 08:18:50 [crossfade:4] After : ("duration", "180.0")
2023/08/18 08:18:50 [crossfade:4] After : ("album_artist", "BBC Radio")
2023/08/18 08:18:50 [crossfade:3] Simple transition: crossed, fade-in, fade-out.
2023/08/18 08:18:50 [source:4] Source source.668 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:18:50 [source.668:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:18:50 [source:4] Source audio.add.220 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:18:50 [audio.add.220:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:18:50 [source:4] Source fade_in.440 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:18:50 [fade_in.440:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:18:50 [source:4] Source on_track.880 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:18:50 [on_track.880:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:18:50 [source:4] Source on_metadata.440 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:18:50 [on_metadata.440:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:18:50 [source:4] Source on_track.879 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:18:50 [on_track.879:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:18:50 [source:4] Source cross_after.220 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:18:50 [cross_after.220:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:18:50 [source:4] Source buffer.440 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:18:50 [buffer.440:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:18:50 [source:4] Source fade_in.439 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:18:50 [fade_in.439:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:18:50 [source:4] Source fade_out.440 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:18:50 [fade_out.440:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:18:50 [source:4] Source on_end.220 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:18:50 [on_end.220:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:18:50 [source:4] Source on_track.878 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:18:50 [on_track.878:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:18:50 [source:4] Source on_metadata.439 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:18:50 [on_metadata.439:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:18:50 [source:4] Source on_track.877 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:18:50 [on_track.877:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:18:50 [source:4] Source cross_before.220 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:18:50 [cross_before.220:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:18:50 [source:4] Source buffer.439 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:18:50 [buffer.439:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:18:50 [source:4] Source fade_out.439 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:18:50 [fade_out.439:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:18:50 [cross_after.220:4] New fade duration: 0.s.
2023/08/18 08:18:50 [cross_after.220:4] Fading in with type: sin and duration: 0.s.
2023/08/18 08:19:07 [buffer.439:4] End of track.
2023/08/18 08:19:07 [buffer.439:4] Buffer emptied, buffering needed.
2023/08/18 08:19:07 [cross_before.220:4] Fading out with type sin, duration: 0. and 0.s remaining.
2023/08/18 08:19:07 [buffer.440:4] End of track.
2023/08/18 08:19:07 [buffer.440:4] Buffer emptied, buffering needed.
2023/08/18 08:19:07 [source:4] Source source.668 gets down.
2023/08/18 08:19:07 [source:4] Source audio.add.220 gets down.
2023/08/18 08:19:07 [source:4] Source fade_in.440 gets down.
2023/08/18 08:19:07 [source:4] Source fade_in.439 gets down.
2023/08/18 08:19:07 [source:4] Source on_track.880 gets down.
2023/08/18 08:19:07 [source:4] Source on_metadata.440 gets down.
2023/08/18 08:19:07 [source:4] Source on_track.879 gets down.
2023/08/18 08:19:07 [source:4] Source cross_after.220 gets down.
2023/08/18 08:19:07 [source:4] Source buffer.440 gets down.
2023/08/18 08:19:07 [source:4] Source fade_out.440 gets down.
2023/08/18 08:19:07 [source:4] Source fade_out.439 gets down.
2023/08/18 08:19:07 [source:4] Source on_end.220 gets down.
2023/08/18 08:19:07 [source:4] Source on_track.878 gets down.
2023/08/18 08:19:07 [source:4] Source on_metadata.439 gets down.
2023/08/18 08:19:07 [source:4] Source on_track.877 gets down.
2023/08/18 08:19:07 [source:4] Source cross_before.220 gets down.
2023/08/18 08:19:07 [source:4] Source buffer.439 gets down.
2023/08/18 08:19:07 [cross:4] Buffering end of track...
2023/08/18 08:19:07 [cross:4] More buffering will be needed.
2023/08/18 08:23:49 [decoder:2] Decoding "/home/john/src/radio/bbcnews.mka" ended: Ffmpeg_decoder.End_of_file.
2023/08/18 08:23:49 [decoder:4] Raised at Ffmpeg_decoder.mk_decoder.(fun).f in file "src/core/decoder/ffmpeg_decoder.ml", line 827, characters 12-29
2023/08/18 08:23:49 [decoder:4] Called from Decoder.mk_decoder.fill in file "src/core/decoder/decoder.ml", line 504, characters 10-31
2023/08/18 08:23:49 [decoder:4]
2023/08/18 08:23:50 [override:4] Finished with "/home/john/src/radio/bbcnews.mka".
2023/08/18 08:23:50 [switch:3] Switch to amplify.3 with forgetful transition.
2023/08/18 08:23:50 [source:4] Source replay_metadata.499 gets down.
2023/08/18 08:23:50 [source:4] Source replay_metadata.502 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:23:50 [replay_metadata.502:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:23:50 [cross:4] Setting crossfade duration to 30.00s
2023/08/18 08:23:50 [cue_cut:4] Cue points : none / none
2023/08/18 08:23:50 [cue_cut:3] Cueing in...
2023/08/18 08:23:50 [amplify.2:4] Overriding amplification: 0.281838.
2023/08/18 08:23:50 [cross:4] Overriding crossfade duration from metadata liq_cross_duration
2023/08/18 08:23:50 [cross:4] Setting crossfade duration to 11.75s
2023/08/18 08:23:50 [decoder:4] Available decoders: ffmpeg (priority: 10)
2023/08/18 08:23:50 [decoder:4] Trying decoder "ffmpeg"
2023/08/18 08:23:50 [cross:3] Analysis: -32.014954dB / -infdB (0.37s / 0.39s)
2023/08/18 08:23:50 [crossfade:4] Before: ("language", "eng")
2023/08/18 08:23:50 [crossfade:4] Before: ("composer", "BBC Sounds")
2023/08/18 08:23:50 [crossfade:4] Before: ("album", "BBC News")
2023/08/18 08:23:50 [crossfade:4] Before: ("date", "2023-08-18T08:00:00+01:00")
2023/08/18 08:23:50 [crossfade:4] Before: ("compatible_brands", "M4A isomiso2")
2023/08/18 08:23:50 [crossfade:4] Before: ("on_air_timestamp", "1692343130.00")
2023/08/18 08:23:50 [crossfade:4] Before: ("handler_name", "SoundHandler")
2023/08/18 08:23:50 [crossfade:4] Before: ("kind", "{audio=pcm(stereo)}")
2023/08/18 08:23:50 [crossfade:4] Before: ("lyrics", "The latest five minute news bulletin from BBC World Service.\r\n\r\nPLAY: https://www.bbc.co.uk/programmes/w172z2qywqpgcxs\r\n\r\nINFO: https://www.bbc.co.uk/programmes/w172z2qywqpgcxs")
2023/08/18 08:23:50 [crossfade:4] Before: ("artist", "BBC News")
2023/08/18 08:23:50 [crossfade:4] Before: ("decoder", "ffmpeg")
2023/08/18 08:23:50 [crossfade:4] Before: ("liq_cross_duration", "0.4")
2023/08/18 08:23:50 [crossfade:4] Before: ("title", "BBC World Service News")
2023/08/18 08:23:50 [crossfade:4] Before: ("filename", "/home/john/src/radio/bbcnews.mka")
2023/08/18 08:23:50 [crossfade:4] Before: ("temporary", "false")
2023/08/18 08:23:50 [crossfade:4] Before: ("source", "override")
2023/08/18 08:23:50 [crossfade:4] Before: ("initial_uri", "annotate:liq_fade_in=\"0.0\",liq_fade_out=\"0.0\",liq_cross_duration=\"0.4\",duration=\"180.0\",title=\"BBC World Service News\",artist=\"BBC News\":/home/john/src/radio/bbcnews.mka")
2023/08/18 08:23:50 [crossfade:4] Before: ("copyright", "2023 British Broadcasting Corporation, all rights reserved")
2023/08/18 08:23:50 [crossfade:4] Before: ("liq_fade_out", "0.0")
2023/08/18 08:23:50 [crossfade:4] Before: ("media_type", "1")
2023/08/18 08:23:50 [crossfade:4] Before: ("major_brand", "M4A ")
2023/08/18 08:23:50 [crossfade:4] Before: ("encoder", "Lavc60.23.100 libfdk_aac")
2023/08/18 08:23:50 [crossfade:4] Before: ("status", "playing")
2023/08/18 08:23:50 [crossfade:4] Before: ("minor_version", "512")
2023/08/18 08:23:50 [crossfade:4] Before: ("vendor_id", "[0][0][0][0]")
2023/08/18 08:23:50 [crossfade:4] Before: ("on_air", "2023/08/18 08:18:50")
2023/08/18 08:23:50 [crossfade:4] Before: ("liq_fade_in", "0.0")
2023/08/18 08:23:50 [crossfade:4] Before: ("grouping", "News,Bulletins")
2023/08/18 08:23:50 [crossfade:4] Before: ("rid", "225")
2023/08/18 08:23:50 [crossfade:4] Before: ("comment", "The latest five minute news bulletin from BBC World Service.")
2023/08/18 08:23:50 [crossfade:4] Before: ("genre", "News")
2023/08/18 08:23:50 [crossfade:4] Before: ("duration", "180.0")
2023/08/18 08:23:50 [crossfade:4] Before: ("album_artist", "BBC Radio")
2023/08/18 08:23:50 [crossfade:4] After : ("longtail", "False")
2023/08/18 08:23:50 [crossfade:4] After : ("compatible_brands", "isomiso2mp41")
2023/08/18 08:23:50 [crossfade:4] After : ("on_air_timestamp", "1692343430.00")
2023/08/18 08:23:50 [crossfade:4] After : ("handler_name", "SoundHandler")
2023/08/18 08:23:50 [crossfade:4] After : ("kind", "{audio=pcm(stereo)}")
2023/08/18 08:23:50 [crossfade:4] After : ("artist", "Odyssey")
2023/08/18 08:23:50 [crossfade:4] After : ("decoder", "ffmpeg")
2023/08/18 08:23:50 [crossfade:4] After : ("missingmetadataversion", "0.2")
2023/08/18 08:23:50 [crossfade:4] After : ("liq_cross_duration", "11.750")
2023/08/18 08:23:50 [crossfade:4] After : ("title", "Native New Yorker (1977)")
2023/08/18 08:23:50 [crossfade:4] After : ("liq_cue_in", "0.000")
2023/08/18 08:23:50 [crossfade:4] After : ("filename", "/home/john/src/radio/mez3/Odyssey - Native New Yorker (1977).7e6454849d991db733b54b9e4027446f.mka")
2023/08/18 08:23:50 [crossfade:4] After : ("temporary", "false")
2023/08/18 08:23:50 [crossfade:4] After : ("source", "bc2-30DEC2020-complete_m3u8")
2023/08/18 08:23:50 [crossfade:4] After : ("initial_uri", "annotate:liq_cue_in=\"0.000\",liq_cross_duration=\"11.750\",duration=\"334.250\",liq_amplify=\"-11.000dB\":/home/john/src/radio/mez3/Odyssey - Native New Yorker (1977).7e6454849d991db733b54b9e4027446f.mka")
2023/08/18 08:23:50 [crossfade:4] After : ("major_brand", "isom")
2023/08/18 08:23:50 [crossfade:4] After : ("encoder", "Lavf58.49.100")
2023/08/18 08:23:50 [crossfade:4] After : ("status", "playing")
2023/08/18 08:23:50 [crossfade:4] After : ("minor_version", "512")
2023/08/18 08:23:50 [crossfade:4] After : ("on_air", "2023/08/18 08:23:50")
2023/08/18 08:23:50 [crossfade:4] After : ("loudness", "-12.000")
2023/08/18 08:23:50 [crossfade:4] After : ("rid", "224")
2023/08/18 08:23:50 [crossfade:4] After : ("duration", "334.250")
2023/08/18 08:23:50 [crossfade:4] After : ("liq_amplify", "-11.000dB")
2023/08/18 08:23:50 [crossfade:3] Simple transition: crossed, fade-in, fade-out.
2023/08/18 08:23:50 [source:4] Source source.671 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:23:50 [source.671:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:23:50 [source:4] Source audio.add.221 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:23:50 [audio.add.221:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:23:50 [source:4] Source fade_in.442 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:23:50 [fade_in.442:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:23:50 [source:4] Source on_track.884 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:23:50 [on_track.884:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:23:50 [source:4] Source on_metadata.442 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:23:50 [on_metadata.442:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:23:50 [source:4] Source on_track.883 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:23:50 [on_track.883:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:23:50 [source:4] Source cross_after.221 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:23:50 [cross_after.221:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:23:50 [source:4] Source buffer.442 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:23:50 [buffer.442:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:23:50 [source:4] Source fade_in.441 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:23:50 [fade_in.441:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:23:50 [source:4] Source fade_out.442 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:23:50 [fade_out.442:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:23:50 [source:4] Source on_end.221 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:23:50 [on_end.221:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:23:50 [source:4] Source on_track.882 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:23:50 [on_track.882:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:23:50 [source:4] Source on_metadata.441 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:23:50 [on_metadata.441:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:23:50 [source:4] Source on_track.881 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:23:50 [on_track.881:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:23:50 [source:4] Source cross_before.221 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:23:50 [cross_before.221:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:23:50 [source:4] Source buffer.441 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:23:50 [buffer.441:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:23:50 [source:4] Source fade_out.441 gets up with content type: {audio=pcm(stereo)}.
2023/08/18 08:23:50 [fade_out.441:3] Content type is {audio=pcm(stereo)}.
2023/08/18 08:23:50 [cross_before.221:4] New fade duration: 0.s.
2023/08/18 08:23:50 [cross_after.221:4] Fading in with type: sin and duration: 0.s.
2023/08/18 08:23:50 [decoder.ffmpeg:3] Requested content-type for "/home/john/src/radio/mez3/08 Monkey And The Engineer.8c22d60f0b1b9703b7945c1db25a6851.mka": {audio=pcm(stereo)}
2023/08/18 08:23:50 [decoder.ffmpeg:3] FFmpeg recognizes "/home/john/src/radio/mez3/08 Monkey And The Engineer.8c22d60f0b1b9703b7945c1db25a6851.mka" as audio: {codec: aac, 32000Hz, 2 channel(s)}
2023/08/18 08:23:50 [decoder.ffmpeg:3] Decoded content-type for "/home/john/src/radio/mez3/08 Monkey And The Engineer.8c22d60f0b1b9703b7945c1db25a6851.mka": {audio=pcm(stereo)}
2023/08/18 08:23:50 [decoder:4] Selected decoder ffmpeg for file "/home/john/src/radio/mez3/08 Monkey And The Engineer.8c22d60f0b1b9703b7945c1db25a6851.mka" with expected kind {audio=pcm(stereo)} and detected content {audio=pcm(stereo)}
2023/08/18 08:23:50 [decoder.video.metadata:4] Unsupported file extension for "/home/john/src/radio/mez3/08 Monkey And The Engineer.8c22d60f0b1b9703b7945c1db25a6851.mka"!
2023/08/18 08:23:50 [decoder.ogg.metadata:4] Unsupported file extension for "/home/john/src/radio/mez3/08 Monkey And The Engineer.8c22d60f0b1b9703b7945c1db25a6851.mka"!
2023/08/18 08:23:50 [decoder.image.metadata:4] Unsupported file extension for "/home/john/src/radio/mez3/08 Monkey And The Engineer.8c22d60f0b1b9703b7945c1db25a6851.mka"!
2023/08/18 08:23:50 [decoder.id3:4] Unsupported file extension for "/home/john/src/radio/mez3/08 Monkey And The Engineer.8c22d60f0b1b9703b7945c1db25a6851.mka"!
2023/08/18 08:23:50 [decoder.id3:4] Unsupported file extension for "/home/john/src/radio/mez3/08 Monkey And The Engineer.8c22d60f0b1b9703b7945c1db25a6851.mka"!
2023/08/18 08:23:50 [decoder.id3:4] Unsupported file extension for "/home/john/src/radio/mez3/08 Monkey And The Engineer.8c22d60f0b1b9703b7945c1db25a6851.mka"!
2023/08/18 08:23:50 [decoder.flac.metadata:4] Unsupported file extension for "/home/john/src/radio/mez3/08 Monkey And The Engineer.8c22d60f0b1b9703b7945c1db25a6851.mka"!
2023/08/18 08:23:50 [decoder.taglib:4] Unsupported file extension for "/home/john/src/radio/mez3/08 Monkey And The Engineer.8c22d60f0b1b9703b7945c1db25a6851.mka"!
2023/08/18 08:23:50 [bc2-30DEC2020-complete_m3u8:4] Queued 1 requests
2023/08/18 08:23:50 [buffer.441:4] End of track.
2023/08/18 08:23:50 [buffer.441:4] Buffer emptied, buffering needed.
2023/08/18 08:23:50 [cross_before.221:4] Fading out with type sin, duration: 0. and 0.s remaining.
2023/08/18 08:23:50 [buffer.442:4] End of track.
2023/08/18 08:23:50 [buffer.442:4] Buffer emptied, buffering needed.
2023/08/18 08:23:50 [source:4] Source source.671 gets down.
2023/08/18 08:23:50 [source:4] Source audio.add.221 gets down.
2023/08/18 08:23:50 [source:4] Source fade_in.442 gets down.
2023/08/18 08:23:50 [source:4] Source fade_in.441 gets down.
2023/08/18 08:23:50 [source:4] Source on_track.884 gets down.
2023/08/18 08:23:50 [source:4] Source on_metadata.442 gets down.
2023/08/18 08:23:50 [source:4] Source on_track.883 gets down.
2023/08/18 08:23:50 [source:4] Source cross_after.221 gets down.
2023/08/18 08:23:50 [source:4] Source buffer.442 gets down.
2023/08/18 08:23:50 [source:4] Source fade_out.442 gets down.
2023/08/18 08:23:50 [source:4] Source fade_out.441 gets down.
2023/08/18 08:23:50 [source:4] Source on_end.221 gets down.
2023/08/18 08:23:50 [source:4] Source on_track.882 gets down.
2023/08/18 08:23:50 [source:4] Source on_metadata.441 gets down.
2023/08/18 08:23:50 [source:4] Source on_track.881 gets down.
2023/08/18 08:23:50 [source:4] Source cross_before.221 gets down.
2023/08/18 08:23:50 [source:4] Source buffer.441 gets down.
2023/08/18 08:23:50 [cross:4] Buffering end of track...
2023/08/18 08:23:50 [cross:4] More buffering will be needed.

Expected behavior Nice, smooth, effortless crossfading (overlapping, really) as per metadata, working perfectly in 2.1.4

Version details

Install method Opam for everything

Warblefly commented 1 year ago

In the latest main github, this problem still occasionally happens.

Particularly, when a request is inserted into the queue via Telnet, the request is played OVER the previous track for a few seconds towards the end of the previous track (track_sensitive is set). Then, at the end of the request's audio, the END of the previous track comes back abruptly. Then, there's no crossfade. Then, the next music appears as usual.

wegGehamstert commented 1 year ago

I have the same problem. Hopefully it get's fixed soon

wegGehamstert commented 1 year ago

https://we.tl/t-g1HzEAZor7 here is sample in wich you can clearly hear that there is something wrong

toots commented 1 year ago

Hi @Warblefly and @wegGehamstert. We've had suspicion of issues with the new buffer code since https://github.com/savonet/liquidsoap/issues/3181 but haven't been able to track the issue down yet. https://github.com/savonet/liquidsoap/issues/3318 is also probably related.

I'm gonna fast track the investigations on this and hopefully push a fix soon.

wegGehamstert commented 1 year ago

If i can do anything to help track this nasty bug faster, you can write me :)

toots commented 1 year ago

For sure. What would help me the best would be a short reproducible example that I can play with locally.

toots commented 1 year ago

Running this simplified script with v2.2.0 here, hopefully it exhibits the issue:

settings.server.timeout.set(-1.0)
settings.decoder.decoders.set(["ffmpeg"])

# Security fallback
security =
  single(
    "/Users/toots/sources/test-station/flac/Horoya Band/Horoya Band - Horiya Band du Guinea (k7 2288)/01. Souleymane Diane.flac"
  )

# Here's the playlist, annotated as per our Python pre-production program dictates
myplaylist =
  playlist(reload_mode="watch", "/Users/toots/sources/test-station/playlists")

# Do the crossfades
myplaylist =
  crossfade(
    duration=30.0,
    smart=false,
    fade_out=0.0,
    fade_in=0.0,
    minimum=-1.0,
    default=(fun (a, b) -> add(normalize=false, ([b, a]))),
    conservative=true,
    myplaylist
  )

#myplaylist = mksafe(myplaylist)
radio = fallback(track_sensitive=false, [myplaylist, security])
radio_comp = fallback(track_sensitive=false, [myplaylist, security])

# What shall we name our HLS segments?
#
def segment_name(~position, ~extname, stream_name) =
  timestamp = int_of_float(time())
  duration = 10
  "#{stream_name}_#{duration}_#{timestamp}_#{position}.#{extname}"
end

# Here's the high bandwidth stream
output.file.hls(
  playlist="live_high.m3u8",
  segment_name=segment_name,
  segment_duration=2.0,
  segments=20,
  segments_overhead=20,
  "/Users/toots/sources/test-station/hls",
  [
    (
      "AAC",
      %ffmpeg(format = "mpegts", %audio(codec = "aac", samplerate = 48000))
    )
  ],
  radio
)

# Here's the low bandwidth stream
output.file.hls(
  playlist="live.m3u8",
  segment_name=segment_name,
  segment_duration=2.0,
  segments=20,
  segments_overhead=20,
  "/Users/toots/sources/test-station/hls",
  [
    (
      "HEAAC+",
      %ffmpeg(format = "mpegts", %audio(codec = "aac", samplerate = 32000))
    )
  ],
  radio_comp
)
toots commented 1 year ago

Is there any chance one of y'all could test the cleanup-generator branch to see if it improves the situation?

wegGehamstert commented 1 year ago

Is there any chance one of y'all could test the cleanup-generator branch to see if it improves the situation?

I could try to get the devs to test it out on there rolling release

toots commented 1 year ago

I just pushed the patch to rolling-releasse-v2.2.x will let you know when the build is available.

Moonbase59 commented 1 year ago

Thanks for the build @toots! I’ll give it a spinup in my AzuraCast for testing. If you wish to try above script, @Warblefly & @wegGehamstert, it’s here → https://github.com/savonet/liquidsoap-release-assets/releases/download/rolling-release-v2.2.x/liquidsoap-de9dc76_2.2.1-ubuntu-jammy-1_amd64.deb

Here are the first few lines after startup (~3 min):

INFO: Loading Sdl_image, Target = linux
INFO: Loading Sdl_ttf, Target = linux
[swscaler @ 0x7ff3637835c0] Warning: data is not aligned! This can lead to a speed loss
[swscaler @ 0x7ff3628a6640] bilinear scaler, from yuv420p to yuv420p using MMXEXT
[swscaler @ 0x7ff3628a6640] Warning: dstStride is not aligned!
         ->cannot do aligned memory accesses anymore
2023/08/30 00:39:01 >>> LOG START
2023/08/30 00:38:54 [main:3] Liquidsoap 2.2.1+git@de9dc76e1
2023/08/30 00:38:54 [main:3] Using: alsa=0.3.0 angstrom=0.15.0 ao=0.2.4 asetmap=0.8.1 asn1-combinators=0.2.6 astring=0.8.5 base64=3.5.1 bigarray=[distributed with OCaml] bigarray-compat=1.1.0 bigstringaf=0.9.1 bjack=0.1.6 bos=0.2.1 bytes=[distributed with OCaml] ca-certs=v0.2.3 camlimages.all_formats=4.2.6 camlimages.core=5.0.4 camlimages.exif=5.0.4 camlimages.gif=5.0.4 camlimages.jpeg=5.0.4 camlimages.png=5.0.4 camlimages.tiff=5.0.4 camlimages.xpm=5.0.4 camlp-streams camomile.lib=2.0 cohttp=5.1.0 cohttp-lwt=5.1.0 cohttp-lwt-unix=5.1.0 conduit=6.2.0 conduit-lwt=6.2.0 conduit-lwt-unix=6.2.0 cry=1.0.2 cstruct=6.2.0 ctypes=0.20.2 ctypes.foreign=0.20.2 ctypes.stubs=0.20.2 curl=0.9.2 domain-name=0.4.0 dssi=0.1.5 dtools=0.4.5 dune-build-info=3.8.2 dune-private-libs.dune-section=3.8.2 dune-site=3.8.2 dune-site.private=3.8.2 duppy=0.9.3 eqaf=0.9 eqaf.bigstring=0.9 eqaf.cstruct=0.9 faad=0.5.2 fdkaac=0.3.3 ffmpeg-av=1.1.9 ffmpeg-avcodec=1.1.9 ffmpeg-avdevice=1.1.9 ffmpeg-avfilter=1.1.9 ffmpeg-avutil=1.1.9 ffmpeg-swresample=1.1.9 ffmpeg-swscale=1.1.9 fileutils=0.6.4 flac=0.5.0 flac.decoder=0.5.0 flac.ogg=0.5.0 fmt=0.9.0 fpath=0.7.3 frei0r=0.1.2 gd=1.0a5 gen=1.1 gmap=0.3.0 hkdf=1.0.4 inotify=2.4.1 integers ipaddr=5.5.0 ipaddr-sexp=5.5.0 ipaddr.unix=5.5.0 irc-client irc-client-unix jemalloc ladspa=0.2.2 lame=0.3.7 lastfm=0.3.3 lilv=0.1.0 liquidsoap-lang=2.2.1 liquidsoap-lang.console=2.2.1 liquidsoap_alsa=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_ao=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_bjack=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_builtins=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_camlimages=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_core=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_dssi=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_faad=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_fdkaac=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_ffmpeg=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_flac=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_frei0r=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_gd=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_irc=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_jemalloc=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_ladspa=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_lame=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_lastfm=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_lilv=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_lo=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_mad=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_magic=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_mem_usage=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_memtrace=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_ogg=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_ogg_flac=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_optionals=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_opus=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_osc=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_oss=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_portaudio=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_posix_time=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_prometheus=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_pulseaudio=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_runtime=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_samplerate=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_sdl=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_shine=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_soundtouch=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_speex=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_srt=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_ssl=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_stereotool=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_taglib=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_theora=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_tls=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_vorbis=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_xmlplaylist=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c liquidsoap_yaml=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c lo=0.2.0 logs=0.7.0 logs.fmt=0.7.0 logs.lwt=0.7.0 lwt=5.6.1 lwt.unix=5.6.1 macaddr=5.5.0 mad=0.5.3 magic=0.7.3 magic-mime=1.3.0 mem_usage=0.0.4 memtrace=0.2.3 menhirLib=20230608 metadata=0.2.0 mirage-crypto=0.11.1 mirage-crypto-ec=0.11.1 mirage-crypto-pk=0.11.1 mirage-crypto-rng=0.11.1 mirage-crypto-rng.unix=0.11.1 mm=0.8.4 mm.audio=0.8.4 mm.base=0.8.4 mm.image=0.8.4 mm.midi=0.8.4 mm.video=0.8.4 ocplib-endian ocplib-endian.bigstring ogg=0.7.4 ogg.decoder=0.7.4 opus=0.2.3 opus.decoder=0.2.3 osc osc-unix parsexp=v0.16.0 pbkdf pcre=7.5.0 portaudio=0.2.3 posix-base=b516d46 posix-socket=b516d46 posix-socket.constants=b516d46 posix-socket.stubs=b516d46 posix-socket.types=b516d46 posix-time2=b516d46 posix-time2.constants=b516d46 posix-time2.stubs=b516d46 posix-time2.types=b516d46 posix-types=b516d46 posix-types.constants=b516d46 ppx_sexp_conv.runtime-lib=v0.16.0 prometheus=1.2 prometheus-app=1.2 ptime=1.1.0 ptime.clock.os=1.1.0 pulseaudio=0.1.6 re=1.10.4 result=1.5 rresult=0.7.0 samplerate=0.1.6 sedlex=a1362bd seq=[distributed with OCaml 4.07 or above] sexplib=v0.16.0 sexplib0=v0.16.0 shine=0.2.3 soundtouch=0.1.9 speex=0.4.2 speex.decoder=0.4.2 srt=0.3.0 srt.constants=0.3.0 srt.stubs=0.3.0 srt.stubs.locked=0.3.0 srt.types=0.3.0 ssl=0.7.0 stdlib-shims=0.3.0 stereotool=gh-readonly-queue_rolling-release-v2.2.x_pr-3332-be75b6ec4c str=[distributed with OCaml] stringext=1.6.0 taglib=0.3.10 theora=0.4.1 theora.decoder=0.4.1 threads=[distributed with OCaml] threads.posix=[distributed with OCaml] tls=0.17.0 tsdl=v1.0.0 tsdl-image=0.5 tsdl-ttf=0.5 unix=[distributed with OCaml] unix-errno=52c6ecb unix-errno.errno_bindings=52c6ecb unix-errno.errno_types=52c6ecb unix-errno.errno_types_detected=52c6ecb unix-errno.unix=52c6ecb uri=4.2.0 uri-sexp=4.2.0 uri.services=4.2.0 vorbis=0.8.1 vorbis.decoder=0.8.1 x509=0.16.4 xmlm=1.4.0 xmlplaylist=0.1.5 yaml=3.1.0 yaml.bindings=3.1.0 yaml.bindings.types=3.1.0 yaml.c=3.1.0 yaml.ffi=3.1.0 yaml.types=3.1.0 zarith=1.12
2023/08/30 00:38:54 [main:3] 
2023/08/30 00:38:54 [main:3] DISCLAIMER: This version of Liquidsoap has been compiled from a snapshot of the
2023/08/30 00:38:54 [main:3] development code. As such, it should not be used in production unless you know
2023/08/30 00:38:54 [main:3] what you are doing!
2023/08/30 00:38:54 [main:3] 
2023/08/30 00:38:54 [main:3] We are, however, very interested in any feedback about our development code and
2023/08/30 00:38:54 [main:3] committed to fix issues as soon as possible.
2023/08/30 00:38:54 [main:3] 
2023/08/30 00:38:54 [main:3] If you are interested in collaborating to the development of Liquidsoap, feel
2023/08/30 00:38:54 [main:3] free to drop us a mail at <savonet-devl@lists.sf.net> or to join the slack chat
2023/08/30 00:38:54 [main:3] at <http://slack.liquidsoap.info>.
2023/08/30 00:38:54 [main:3] 
2023/08/30 00:38:54 [main:3] Please send any bug report or feature request at
2023/08/30 00:38:54 [main:3] <https://github.com/savonet/liquidsoap/issues>.
2023/08/30 00:38:54 [main:3] 
2023/08/30 00:38:54 [main:3] We hope you enjoy this snapshot build of Liquidsoap!
2023/08/30 00:38:54 [main:3] 
2023/08/30 00:38:54 [clock:3] Using native (high-precision) implementation for latency control
2023/08/30 00:38:57 [main:3] Standard library loaded in 3.55 seconds.
2023/08/30 00:39:01 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz main.
2023/08/30 00:39:01 [frame:3] Video frame size set to: 1280x720
2023/08/30 00:39:01 [frame:3] Frame size must be a multiple of 1764 ticks = 1764 audio samples = 1 video samples.
2023/08/30 00:39:01 [frame:3] Targeting 'frame.duration': 0.04s = 1764 audio samples = 1764 ticks.
2023/08/30 00:39:01 [frame:3] Frames last 0.04s = 1764 audio samples = 1 video samples = 1764 ticks.
2023/08/30 00:39:01 [lang.deprecated:2] WARNING: "mux_video" is deprecated and will be removed in future version. Please use "source.mux.video" instead.
2023/08/30 00:39:01 [source:1] Failed to prepare track: request not ready.
2023/08/30 00:39:01 [track_video_add_image.2:3] Content type is {video=canvas}.
2023/08/30 00:39:01 [video.crop:3] Content type is {video=canvas}.
2023/08/30 00:39:01 [track_video_add_image:3] "/var/azuracast/stations/niteradio/media/videostream/niteradio-cover.png" is static, resolving once for all...
2023/08/30 00:39:01 [decoder:3] Method "ffmpeg" accepted "/var/azuracast/stations/niteradio/media/videostream/niteradio-cover.png".
2023/08/30 00:39:01 [decoder:3] Method "ffmpeg" accepted "/var/azuracast/stations/niteradio/media/videostream/niteradio-cover.png".
2023/08/30 00:39:01 [track_video_add_image:3] Prepared "/var/azuracast/stations/niteradio/media/videostream/niteradio-cover.png" (RID 44).
2023/08/30 00:39:01 [source:1] Failed to prepare track: request not ready.
2023/08/30 00:39:01 [source:1] Failed to prepare track: request not ready.
2023/08/30 00:39:01 [source:1] Failed to prepare track: request not ready.
2023/08/30 00:39:01 [source:1] Failed to prepare track: request not ready.
2023/08/30 00:39:01 [source:1] Failed to prepare track: request not ready.
2023/08/30 00:39:01 [lang.deprecated:2] WARNING: "mux_video" is deprecated and will be removed in future version. Please use "source.mux.video" instead.
2023/08/30 00:39:01 [sandbox:3] Sandboxing disabled
2023/08/30 00:39:01 [startup:3] DSSI plugins registration: 0.00s
2023/08/30 00:39:01 [startup:3] FFmpeg filters registration: 0.02s
2023/08/30 00:39:01 [startup:3] FFmpeg bitstream filters registration: 0.00s
2023/08/30 00:39:01 [startup:3] Lilv plugins registration: 0.00s
2023/08/30 00:39:01 [startup:3] Frei0r plugin registration: 0.00s
2023/08/30 00:39:01 [startup:3] LADSPA plugins registration: 0.04s
2023/08/30 00:39:01 [startup:3] Typechecking: 3.27s
2023/08/30 00:39:01 [startup:3] Evaluation: 0.01s
2023/08/30 00:39:01 [startup:3] Typechecking: 0.05s
2023/08/30 00:39:01 [startup:3] Evaluation: 0.00s
2023/08/30 00:39:01 [startup:3] Typechecking: 0.09s
2023/08/30 00:39:01 [startup:3] Evaluation: 3.87s
2023/08/30 00:39:01 [startup:3] Loaded /var/azuracast/stations/niteradio/config/liquidsoap.liq: 3.98s
2023/08/30 00:39:01 [video.converter:3] Using preferred video converter: ffmpeg.
2023/08/30 00:39:01 [audio.converter:3] Using samplerate converter: libsamplerate.
2023/08/30 00:39:01 [firefox_test_no_xing_mp3:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:01 [sine.3:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:01 [firefox_test_mp3:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:01 [sine.2:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:01 [testbild:3] Content type is {audio=pcm(stereo),video=canvas}.
2023/08/30 00:39:01 [source.28:3] Content type is {audio=pcm(stereo),video=canvas}.
2023/08/30 00:39:01 [on_frame.3:3] Content type is {video=canvas}.
2023/08/30 00:39:01 [video.resize.2:3] Content type is {video=canvas}.
2023/08/30 00:39:01 [video.crop.4:3] Content type is {video=canvas}.
2023/08/30 00:39:01 [single.3:3] "/var/azuracast/stations/niteradio/media/videostream/Nite Radio Testbild.png" is static, resolving once for all...
2023/08/30 00:39:01 [decoder:3] Method "ffmpeg" accepted "/var/azuracast/stations/niteradio/media/videostream/Nite Radio Testbild.png".
2023/08/30 00:39:01 [sine:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:01 [safe_blank.5:3] Content type is {audio=pcm(stereo),video=canvas}.
2023/08/30 00:39:02 [decoder:3] Method "ffmpeg" accepted "/var/azuracast/stations/niteradio/media/videostream/Nite Radio Testbild.png".
2023/08/30 00:39:02 [single.3:3] Prepared "/var/azuracast/stations/niteradio/media/videostream/Nite Radio Testbild.png" (RID 45).
2023/08/30 00:39:02 [input_streamer:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [harbor:3] Adding mountpoint '/live' on port 8005
2023/08/30 00:39:02 [local_1:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [metadata_map.6:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [metadata_map.5:3] Content type is {}.
2023/08/30 00:39:02 [custom_metadata:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [on_frame:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [metadata_map.2:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [metadata_map:3] Content type is {}.
2023/08/30 00:39:02 [cross.2:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cross:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [blank_skip:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [amplify.6:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [amplify.5:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [amplify.3:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [amplify.2:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [buffer.producer:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [safe_blank:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [buffer.producer.2:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [safe_blank.2:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_interrupting_requests:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [interrupting_requests:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_requests:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [requests:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_next_song:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [next_song:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [source.available:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [autodj_startup_blank:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [source:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_zeitansage_volle_stunde:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_zeitansage_volle_stunde:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [delay.16:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [source.2:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_station_id:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_station_id:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_st__patricks_day:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_st__patricks_day:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_1970s_rock:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_1970s_rock:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_dark:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_dark:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_deep_trance:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_deep_trance:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_easy_listening:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_easy_listening:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_electro:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_electro:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_electronic:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_electronic:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_folk_rock:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_folk_rock:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_glam_rock:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_glam_rock:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_hard_rock:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_hard_rock:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_heavy_metal:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_heavy_metal:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_house:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_house:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_irish_pub:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_irish_pub:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_krautrock:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_krautrock:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_lounge:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_lounge:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_new_age:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_new_age:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_nuit_electronique:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_nuit_electronique:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_oldies:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_oldies:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_pop:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_pop:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_power_metal:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_power_metal:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_schlager:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_schlager:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_southern_rock:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_southern_rock:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_synthpop:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_synthpop:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [delay:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [source.3:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_gothic2C_darkwave___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_gothic2C_darkwave___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [on_track:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_gr___classic_rock:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_gr___classic_rock:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_gr___hard_rock:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_gr___hard_rock:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_gr___folk_rock:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_gr___folk_rock:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [delay.2:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [source.4:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_electro___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_electro___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [delay.3:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [source.5:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_pop___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_pop___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [delay.4:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [source.6:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_easy_listening___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_easy_listening___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [delay.5:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [source.7:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_schlager___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_schlager___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [delay.6:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [source.8:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_synthpop___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_synthpop___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [delay.7:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [source.9:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_promo_mittwoch:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_promo_mittwoch:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [delay.8:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [source.10:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_prog_rock___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_prog_rock___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [delay.9:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [source.11:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_electronic___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_electronic___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [delay.10:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [source.12:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_promo_freitag:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_promo_freitag:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [delay.11:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [source.13:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_new_age___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_new_age___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [delay.12:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [source.14:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_lounge___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_lounge___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [delay.13:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [source.15:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_house___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_house___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [delay.14:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [source.16:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_deep_trance___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_deep_trance___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [delay.15:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [source.17:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [cue_playlist_irish_pub___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [playlist_irish_pub___promo:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [metadata_map.4:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [metadata_map.3:3] Content type is {}.
2023/08/30 00:39:02 [error_jingle:3] "/usr/local/share/icecast/web/error.mp3" is static, resolving once for all...
2023/08/30 00:39:02 [decoder.ffmpeg:3] Requested content-type for "/usr/local/share/icecast/web/error.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:02 [decoder.ffmpeg:3] FFmpeg recognizes "/usr/local/share/icecast/web/error.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:02 [decoder.ffmpeg:3] Decoded content-type for "/usr/local/share/icecast/web/error.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:02 [error_jingle:3] Prepared "/usr/local/share/icecast/web/error.mp3" (RID 43).
2023/08/30 00:39:02 [local_2:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [/var/azuracast/stations/niteradio/hls/live_m3u8:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [input.harbor.2:3] Content type is {video=canvas}.
2023/08/30 00:39:02 [harbor:3] Adding mountpoint '/cam' on port 8005
2023/08/30 00:39:02 [buffer.consumer.3:3] Content type is {audio=pcm(stereo),video=canvas}.
2023/08/30 00:39:02 [video.add_rectangle.4:3] Content type is {audio=pcm(stereo),video=canvas}.
2023/08/30 00:39:02 [video.add_rectangle.3:3] Content type is {audio=pcm(stereo),video=canvas}.
2023/08/30 00:39:02 [source.27:3] Content type is {audio=pcm(stereo),video=canvas}.
2023/08/30 00:39:02 [video.add.3:3] Content type is {video=canvas}.
2023/08/30 00:39:02 [video.add_rectangle.2:3] Content type is {audio=pcm(stereo),video=canvas}.
2023/08/30 00:39:02 [source.26:3] Content type is {audio=pcm(stereo),video=canvas}.
2023/08/30 00:39:02 [video.add.2:3] Content type is {video=canvas}.
2023/08/30 00:39:02 [video.add_rectangle:3] Content type is {audio=pcm(stereo),video=canvas}.
2023/08/30 00:39:02 [video_add_image:3] Content type is {audio=pcm(stereo),video=canvas}.
2023/08/30 00:39:02 [video.add:3] Content type is {video=canvas}.
2023/08/30 00:39:02 [source.24:3] Content type is {audio=pcm(stereo),video=canvas}.
2023/08/30 00:39:02 [videos:3] Content type is {video=canvas}.
2023/08/30 00:39:02 [safe_blank.3:3] Content type is {video=canvas}.
2023/08/30 00:39:02 [amplify.9:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [amplify.8:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [on_frame.2:3] Content type is {video=canvas}.
2023/08/30 00:39:02 [source.available.2:3] Content type is {video=canvas}.
2023/08/30 00:39:02 [video.translate:3] Content type is {video=canvas}.
2023/08/30 00:39:02 [video.info:3] Content type is {video=canvas}.
2023/08/30 00:39:02 [video.crop.2:3] Content type is {video=canvas}.
2023/08/30 00:39:02 [video.text:3] Content type is {video=canvas}.
2023/08/30 00:39:02 [source.available.3:3] Content type is {video=canvas}.
2023/08/30 00:39:02 [video.translate.2:3] Content type is {video=canvas}.
2023/08/30 00:39:02 [video.info.2:3] Content type is {video=canvas}.
2023/08/30 00:39:02 [video.crop.3:3] Content type is {video=canvas}.
2023/08/30 00:39:02 [video.text.2:3] Content type is {video=canvas}.
2023/08/30 00:39:02 [buffer.consumer.2:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [buffer.consumer:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:02 [videostream:3] Content type is {audio=pcm(stereo),video=canvas}.
2023/08/30 00:39:02 [buffer.producer.3:3] Content type is {audio=pcm(stereo),video=canvas}.
2023/08/30 00:39:02 [safe_blank.4:3] Content type is {audio=pcm(stereo),video=canvas}.
2023/08/30 00:39:02 [clock.main:3] Streaming loop starts in auto-sync mode
2023/08/30 00:39:02 [clock.main:3] Delegating synchronization to CPU clock
2023/08/30 00:39:02 [clock.videostream:3] Streaming loop starts in auto-sync mode
2023/08/30 00:39:02 [clock.videostream:3] Delegating synchronization to CPU clock
2023/08/30 00:39:02 [firefox_test_no_xing_mp3:3] Connecting mount /firefox_test_no_xing.mp3 for source@127.0.0.1...
2023/08/30 00:39:02 [mksafe.4:3] Switch to safe_blank.4.
2023/08/30 00:39:02 [videostream:3] Connecting mount /video.m2t for source@127.0.0.1...
2023/08/30 00:39:02 [decoder.ffmpeg:3] Requested content-type for "http://icecast.thisisdax.com/HeartDanceMP3": {audio=pcm(stereo)}
2023/08/30 00:39:02 [decoder.ffmpeg:3] FFmpeg recognizes "http://icecast.thisisdax.com/HeartDanceMP3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:02 [decoder.ffmpeg:3] Decoded content-type for "http://icecast.thisisdax.com/HeartDanceMP3": {audio=pcm(stereo)}
2023/08/30 00:39:02 [lang:3] API nextsong - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/nextsong' with body: 
2023/08/30 00:39:02 [lang:3] API nextsong - Response (200): annotate:title="Different Music Taste",artist="Jeff Laurence",duration="15.00",song_id="aea3df728b19da454ee243d3aa01763a",media_id="318816",liq_cross_duration="0.10",liq_fade_in="0.10",liq_fade_out="0.10",playlist_id="34",jingle_mode="true":media:Other/Jingles/Jeff Laurence - Different Music Taste.mp3
[mp3 @ 0x7ff32da1e600] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:02 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Jeff Laurence - Different Music Taste.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:02 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Other/Jingles/Jeff Laurence - Different Music Taste.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:02 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Jeff Laurence - Different Music Taste.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff32da1e600] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:02 [videostream:3] Connection setup was successful.
2023/08/30 00:39:02 [firefox_test_no_xing_mp3:3] Connection setup was successful.
2023/08/30 00:39:02 [firefox_test_mp3:3] Connecting mount /firefox_test.mp3 for source@127.0.0.1...
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:02 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/time/time.de-DE.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:02 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/time/time.de-DE.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:02 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/time/time.de-DE.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:02 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Jeff Laurence - Extra Long Set.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:02 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Other/Jingles/Jeff Laurence - Extra Long Set.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:02 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Jeff Laurence - Extra Long Set.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:02 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Altan/Altan - The Widening Gyre (2015 album, IE)/Altan - The Road Home.flac": {audio=pcm(stereo)}
2023/08/30 00:39:02 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Altan/Altan - The Widening Gyre (2015 album, IE)/Altan - The Road Home.flac" as audio: {codec: flac, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x500, yuvj420p}
2023/08/30 00:39:02 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Altan/Altan - The Widening Gyre (2015 album, IE)/Altan - The Road Home.flac": {audio=pcm(stereo)}
2023/08/30 00:39:02 [firefox_test_mp3:3] Connection setup was successful.
2023/08/30 00:39:02 [mksafe.5:3] Switch to source.28.
2023/08/30 00:39:02 [testbild:3] Connecting mount /testbild.m2t for source@127.0.0.1...
2023/08/30 00:39:02 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Montrose/Montrose - Rock the Nation (2015 album, compilation, GB)/CD 2_ Live, 1974-12-26_ KSAN FM, San Francisco, CA, USA/Montrose - Rock Candy.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:02 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Montrose/Montrose - Rock the Nation (2015 album, compilation, GB)/CD 2_ Live, 1974-12-26_ KSAN FM, San Francisco, CA, USA/Montrose - Rock Candy.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 492x500, yuvj420p}
2023/08/30 00:39:02 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Montrose/Montrose - Rock the Nation (2015 album, compilation, GB)/CD 2_ Live, 1974-12-26_ KSAN FM, San Francisco, CA, USA/Montrose - Rock Candy.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:02 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Noxx, Sara/Noxx, Sara - Equinoxx (2003 album, DE)/Noxx, Sara - Night in My Hands.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:02 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Noxx, Sara/Noxx, Sara - Equinoxx (2003 album, DE)/Noxx, Sara - Night in My Hands.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x498, yuvj420p}
2023/08/30 00:39:02 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Noxx, Sara/Noxx, Sara - Equinoxx (2003 album, DE)/Noxx, Sara - Night in My Hands.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:02 [testbild:3] Connection setup was successful.
2023/08/30 00:39:02 [safe_fallback:3] Switch to metadata_map.4.
[mp3float @ 0x7ff32cf52e00] Could not update timestamps for skipped samples.
[mp3 @ 0x7ff31ee76c00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:02 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Gogh, van, Niels/Gogh, van, Niels - Frequenzklang/Gogh, van, Niels - Hit me like a Dirty Dog.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:02 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Gogh, van, Niels/Gogh, van, Niels - Frequenzklang/Gogh, van, Niels - Hit me like a Dirty Dog.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 160x160, yuvj444p}
2023/08/30 00:39:02 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Gogh, van, Niels/Gogh, van, Niels - Frequenzklang/Gogh, van, Niels - Hit me like a Dirty Dog.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff31ee76c00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:02 [next_song:3] Prepared "/var/azuracast/stations/niteradio/media/Other/Jingles/Jeff Laurence - Different Music Taste.mp3" (RID 46).
2023/08/30 00:39:02 [safe_fallback:3] Switch to custom_metadata with transition.
2023/08/30 00:39:02 [local_1:3] Connecting mount /radio.mp3 for source@127.0.0.1...
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:03 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Banco de Gaia/Banco de Gaia - Igizeh (2002 album, GB)/Banco de Gaia - Obsidian.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:03 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Banco de Gaia/Banco de Gaia - Igizeh (2002 album, GB)/Banco de Gaia - Obsidian.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x449, yuvj420p}
2023/08/30 00:39:03 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Banco de Gaia/Banco de Gaia - Igizeh (2002 album, GB)/Banco de Gaia - Obsidian.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:03 [local_1:3] Connection setup was successful.
2023/08/30 00:39:03 [local_2:3] Connecting mount /radio.aac for source@127.0.0.1...
2023/08/30 00:39:03 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Wolfsheim/Wolfsheim - Casting Shadows/Wolfsheim - Wundervoll.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:03 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Wolfsheim/Wolfsheim - Casting Shadows/Wolfsheim - Wundervoll.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x448, yuvj420p}
2023/08/30 00:39:03 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Wolfsheim/Wolfsheim - Casting Shadows/Wolfsheim - Wundervoll.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:03 [local_2:3] Connection setup was successful.
2023/08/30 00:39:03 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Namlook, Pete & Schulze, Klaus feat. Laswell, Bill/Namlook, Pete & Schulze, Klaus feat. Laswell, Bill - The Dark Side of the Moog IV (1996 album, DE)/Namlook, Pete & Schulze, Klaus feat. Laswell, Bill - Three Pipers at the Gates of Dawn, Part IV.flac": {audio=pcm(stereo)}
2023/08/30 00:39:03 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Namlook, Pete & Schulze, Klaus feat. Laswell, Bill/Namlook, Pete & Schulze, Klaus feat. Laswell, Bill - The Dark Side of the Moog IV (1996 album, DE)/Namlook, Pete & Schulze, Klaus feat. Laswell, Bill - Three Pipers at the Gates of Dawn, Part IV.flac" as audio: {codec: flac, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x497, yuvj420p}
2023/08/30 00:39:03 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Namlook, Pete & Schulze, Klaus feat. Laswell, Bill/Namlook, Pete & Schulze, Klaus feat. Laswell, Bill - The Dark Side of the Moog IV (1996 album, DE)/Namlook, Pete & Schulze, Klaus feat. Laswell, Bill - Three Pipers at the Gates of Dawn, Part IV.flac": {audio=pcm(stereo)}
[mpegts @ 0x7ff36d333c00] frame size not set
[mpegts @ 0x7ff36d334800] frame size not set
[mpegts @ 0x7ff36d335400] frame size not set
2023/08/30 00:39:03 [switch.31:3] Switch to mksafe.3.
2023/08/30 00:39:03 [mksafe.3:3] Switch to safe_blank.3.
2023/08/30 00:39:03 [clock.main:3] Delegating synchronization to active sources
2023/08/30 00:39:03 [live_fallback:3] Switch to cross.2.
2023/08/30 00:39:03 [schedule_switch.3:3] Switch to interrupting_fallback.
2023/08/30 00:39:03 [interrupting_fallback:3] Switch to requests_fallback.
2023/08/30 00:39:03 [requests_fallback:3] Switch to autodj_fallback.
2023/08/30 00:39:03 [autodj_fallback:3] Switch to dynamic_startup.
2023/08/30 00:39:03 [dynamic_startup:3] Switch to cue_next_song.
2023/08/30 00:39:03 [cue_next_song:3] Cueing in...
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:03 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Alexanders, Die/Alexanders, Die - [compilations]/Alexanders, Die - Nachts.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:03 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Alexanders, Die/Alexanders, Die - [compilations]/Alexanders, Die - Nachts.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x489, yuvj420p}
2023/08/30 00:39:03 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Alexanders, Die/Alexanders, Die - [compilations]/Alexanders, Die - Nachts.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:03 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Queen/Queen - Queen II/Queen - Seven Seas of Rhye.flac": {audio=pcm(stereo)}
2023/08/30 00:39:03 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Queen/Queen - Queen II/Queen - Seven Seas of Rhye.flac" as audio: {codec: flac, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 498x500, yuvj420p}
2023/08/30 00:39:03 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Queen/Queen - Queen II/Queen - Seven Seas of Rhye.flac": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:04 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Black Crowes, The/Black Crowes, The - Amorica/Black Crowes, The - Cursed Diamond.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:04 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Black Crowes, The/Black Crowes, The - Amorica/Black Crowes, The - Cursed Diamond.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x500, yuvj420p}
2023/08/30 00:39:04 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Black Crowes, The/Black Crowes, The - Amorica/Black Crowes, The - Cursed Diamond.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:04 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Gun Barrel/Gun Barrel - Live at the Kubana/Gun Barrel - Power-Dive.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:04 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Gun Barrel/Gun Barrel - Live at the Kubana/Gun Barrel - Power-Dive.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x446, yuvj420p}
2023/08/30 00:39:04 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Gun Barrel/Gun Barrel - Live at the Kubana/Gun Barrel - Power-Dive.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:04 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Tomcraft/Tomcraft - For the Queen/Tomcraft - Relax.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:04 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Tomcraft/Tomcraft - For the Queen/Tomcraft - Relax.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x500, yuvj420p}
2023/08/30 00:39:04 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Tomcraft/Tomcraft - For the Queen/Tomcraft - Relax.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:04 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Silly Wizard/Silly Wizard - The Early Years/Silly Wizard - The Fairy Dance.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:04 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Silly Wizard/Silly Wizard - The Early Years/Silly Wizard - The Fairy Dance.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x492, yuvj420p}
2023/08/30 00:39:04 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Silly Wizard/Silly Wizard - The Early Years/Silly Wizard - The Fairy Dance.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:04 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Midnight Circus/Midnight Circus - Midnight Circus (2003 album, DE)/Midnight Circus - I Had a Dream.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:04 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Midnight Circus/Midnight Circus - Midnight Circus (2003 album, DE)/Midnight Circus - I Had a Dream.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 499x500, yuvj420p}
2023/08/30 00:39:04 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Midnight Circus/Midnight Circus - Midnight Circus (2003 album, DE)/Midnight Circus - I Had a Dream.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:05 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Faithless/Faithless - Outrospective (2001 album, GB)/Faithless - Crazy English Summer.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:05 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Faithless/Faithless - Outrospective (2001 album, GB)/Faithless - Crazy English Summer.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x496, yuvj420p}
2023/08/30 00:39:05 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Faithless/Faithless - Outrospective (2001 album, GB)/Faithless - Crazy English Summer.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:05 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Tangerine Dream/Tangerine Dream - Rubycon/Tangerine Dream - Rubycon, Part One.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:05 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Tangerine Dream/Tangerine Dream - Rubycon/Tangerine Dream - Rubycon, Part One.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 160x160, yuvj444p}
2023/08/30 00:39:05 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Tangerine Dream/Tangerine Dream - Rubycon/Tangerine Dream - Rubycon, Part One.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:05 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Armstrong, Craig/Armstrong, Craig - Me Before You (Original Motion Picture Score) (2016 album, soundtrack, XW)/Armstrong, Craig - Lou Phones for Help.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:05 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Armstrong, Craig/Armstrong, Craig - Me Before You (Original Motion Picture Score) (2016 album, soundtrack, XW)/Armstrong, Craig - Lou Phones for Help.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x500, yuvj420p}
2023/08/30 00:39:05 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Armstrong, Craig/Armstrong, Craig - Me Before You (Original Motion Picture Score) (2016 album, soundtrack, XW)/Armstrong, Craig - Lou Phones for Help.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:05 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Hoffmann & Hoffmann/Hoffmann & Hoffmann - Himbeereis zum Frühstück (1994 album, DE)/Hoffmann & Hoffmann - Der Boxer.flac": {audio=pcm(stereo)}
2023/08/30 00:39:05 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Hoffmann & Hoffmann/Hoffmann & Hoffmann - Himbeereis zum Frühstück (1994 album, DE)/Hoffmann & Hoffmann - Der Boxer.flac" as audio: {codec: flac, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 492x500, yuvj420p}
2023/08/30 00:39:05 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Hoffmann & Hoffmann/Hoffmann & Hoffmann - Himbeereis zum Frühstück (1994 album, DE)/Hoffmann & Hoffmann - Der Boxer.flac": {audio=pcm(stereo)}
2023/08/30 00:39:05 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Louisan, Annett/Louisan, Annett - Zu viel Information (Fan Edition)/Louisan, Annett - Spiel Zigeuner.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:05 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Louisan, Annett/Louisan, Annett - Zu viel Information (Fan Edition)/Louisan, Annett - Spiel Zigeuner.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x496, yuvj420p}
2023/08/30 00:39:05 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Louisan, Annett/Louisan, Annett - Zu viel Information (Fan Edition)/Louisan, Annett - Spiel Zigeuner.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:05 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Galderia/Galderia - Return of the Cosmic Men (2017 album)/Galderia - Wake Up the World.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:05 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Galderia/Galderia - Return of the Cosmic Men (2017 album)/Galderia - Wake Up the World.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x500, yuvj420p}
2023/08/30 00:39:05 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Galderia/Galderia - Return of the Cosmic Men (2017 album)/Galderia - Wake Up the World.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:06 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Kollo, Dorthe/Kollo, Dorthe - Ihre großen Erfolge (1998 album, compilation, DE)/Kollo, Dorthe - Sein wahres Gesicht.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:06 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Kollo, Dorthe/Kollo, Dorthe - Ihre großen Erfolge (1998 album, compilation, DE)/Kollo, Dorthe - Sein wahres Gesicht.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x500, yuvj420p}
2023/08/30 00:39:06 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Kollo, Dorthe/Kollo, Dorthe - Ihre großen Erfolge (1998 album, compilation, DE)/Kollo, Dorthe - Sein wahres Gesicht.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:06 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/38 Special/38 Special - 38 Special (2003 album, GB)/38 Special - Long Time Gone.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:06 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/38 Special/38 Special - 38 Special (2003 album, GB)/38 Special - Long Time Gone.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x497, yuvj420p}
2023/08/30 00:39:06 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/38 Special/38 Special - 38 Special (2003 album, GB)/38 Special - Long Time Gone.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:06 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Rochowski, Marco/Rochowski, Marco - Silent Motion (2017 album, US)/Rochowski, Marco - Skydancer.flac": {audio=pcm(stereo)}
2023/08/30 00:39:06 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Rochowski, Marco/Rochowski, Marco - Silent Motion (2017 album, US)/Rochowski, Marco - Skydancer.flac" as audio: {codec: flac, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x496, yuvj420p}
2023/08/30 00:39:06 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Rochowski, Marco/Rochowski, Marco - Silent Motion (2017 album, US)/Rochowski, Marco - Skydancer.flac": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:06 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-gothic-darkwave.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:06 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-gothic-darkwave.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:06 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-gothic-darkwave.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:06 [decoder.ffmpeg:3] Requested content-type for "http://server14613.streamplus.de:35194/;": {audio=pcm(stereo)}
2023/08/30 00:39:06 [decoder.ffmpeg:3] FFmpeg recognizes "http://server14613.streamplus.de:35194/;" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:06 [decoder.ffmpeg:3] Decoded content-type for "http://server14613.streamplus.de:35194/;": {audio=pcm(stereo)}
2023/08/30 00:39:06 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Who, The/Who, The - The Who by Numbers (1996 album, DE)/Who, The - Blue Red and Grey.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:06 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Who, The/Who, The - The Who by Numbers (1996 album, DE)/Who, The - Blue Red and Grey.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x500, yuvj420p}
2023/08/30 00:39:06 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Who, The/Who, The - The Who by Numbers (1996 album, DE)/Who, The - Blue Red and Grey.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:06 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/BAP/BAP - Sonx (2004 album, DE)/BAP - Wie, wo un wann_.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:06 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/BAP/BAP - Sonx (2004 album, DE)/BAP - Wie, wo un wann_.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x500, yuvj420p}
2023/08/30 00:39:06 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/BAP/BAP - Sonx (2004 album, DE)/BAP - Wie, wo un wann_.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:06 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-electro.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:06 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-electro.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:06 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-electro.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:06 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Dylan, Bob/Dylan, Bob - Highway 61 Revisited/Dylan, Bob - Highway 61 Revisited.flac": {audio=pcm(stereo)}
2023/08/30 00:39:06 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Dylan, Bob/Dylan, Bob - Highway 61 Revisited/Dylan, Bob - Highway 61 Revisited.flac" as audio: {codec: flac, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x500, yuvj420p}
2023/08/30 00:39:06 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Dylan, Bob/Dylan, Bob - Highway 61 Revisited/Dylan, Bob - Highway 61 Revisited.flac": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:07 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-pop.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-pop.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-pop.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:07 [mksafe.4:3] Switch to buffer.producer.3 with transition.
[mp3 @ 0x7ff32de20600] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:07 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-easy-listening.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-easy-listening.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-easy-listening.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x7ff32de20600] Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:07 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-schlager-oldies.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-schlager-oldies.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-schlager-oldies.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff32de20600] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:07 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-synthpop.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-synthpop.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-synthpop.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x7ff32de20600] Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x7ff32de20600] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:07 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-mittwoch.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-mittwoch.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-mittwoch.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:07 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-prog-rock.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-prog-rock.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-prog-rock.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff32de20600] Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x7ff32de20600] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:07 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-electronic.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-electronic.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-electronic.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:07 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-freitag.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-freitag.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-freitag.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff32de20600] Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x7ff32de20600] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:07 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-new-age.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-new-age.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-new-age.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:07 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-lounge.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-lounge.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-lounge.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff32de20600] Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x7ff32de20600] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:07 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-house.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-house.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-house.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:07 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-deep-trance.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-deep-trance.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-deep-trance.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff32de20600] Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x7ff32de20600] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:07 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-irish-pub.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-irish-pub.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 00:39:07 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-irish-pub.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff36d335a00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:07 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/videostream/videos/Great Dorset Steam Fair 2017 Highlights.mkv": {video=canvas}
2023/08/30 00:39:07 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/videostream/videos/Great Dorset Steam Fair 2017 Highlights.mkv" as audio: {codec: aac, 44100Hz, 2 channel(s)}, video: {codec: h264, 1280x720, yuv420p}
2023/08/30 00:39:07 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/videostream/videos/Great Dorset Steam Fair 2017 Highlights.mkv": {video=canvas}
[mp3 @ 0x7ff32de20600] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:07 [video.text:3] Using sdl implementation
2023/08/30 00:39:07 [lang:3] AutoDJ is ready!
2023/08/30 00:39:07 [lang:3] API nextsong - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/nextsong' with body: 
2023/08/30 00:39:07 [decoder.taglib:2] Error while decoding file tags: Taglib.File.Invalid_file
2023/08/30 00:39:07 [lang:3] API feedback - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/feedback' with body: {
2023/08/30 00:39:07 [lang:3]   "song_id": "aea3df728b19da454ee243d3aa01763a",
2023/08/30 00:39:07 [lang:3]   "playlist_id": "34",
2023/08/30 00:39:07 [lang:3]   "media_id": "318816"
2023/08/30 00:39:07 [lang:3] }
2023/08/30 00:39:08 [lang:3] API nextsong - Response (200): annotate:title="Don't Run Too Far",artist="Golden Earring",duration="134.00",song_id="ac47ebf8403a5278510997b712d1dfab",media_id="288953",playlist_id="234":media:Tagged/Golden Earring/Golden Earring - The Devil Made Us Do It_ 35 Years (2000 album, compilation, NL)/CD 1_ Hand's Wet on the Wheel/Golden Earring - Don't Run Too Far.mp3
2023/08/30 00:39:08 [lang:3] API feedback - Response (200): true
[mp3 @ 0x7ff32de20600] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:08 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Golden Earring/Golden Earring - The Devil Made Us Do It_ 35 Years (2000 album, compilation, NL)/CD 1_ Hand's Wet on the Wheel/Golden Earring - Don't Run Too Far.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:08 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Golden Earring/Golden Earring - The Devil Made Us Do It_ 35 Years (2000 album, compilation, NL)/CD 1_ Hand's Wet on the Wheel/Golden Earring - Don't Run Too Far.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 320x320, yuvj420p}
2023/08/30 00:39:08 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Golden Earring/Golden Earring - The Devil Made Us Do It_ 35 Years (2000 album, compilation, NL)/CD 1_ Hand's Wet on the Wheel/Golden Earring - Don't Run Too Far.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:08 [videos:3] Prepared "/var/azuracast/stations/niteradio/media/videostream/videos/Great Dorset Steam Fair 2017 Highlights.mkv" (RID 90).
2023/08/30 00:39:08 [mksafe.3:3] Switch to videos with transition.
2023/08/30 00:39:08 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/videostream/videos/Great Dorset Steam Fair 2017.mkv": {video=canvas}
2023/08/30 00:39:08 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/videostream/videos/Great Dorset Steam Fair 2017.mkv" as audio: {codec: aac, 44100Hz, 2 channel(s)}, video: {codec: h264, 1920x1080, yuv420p}
2023/08/30 00:39:08 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/videostream/videos/Great Dorset Steam Fair 2017.mkv": {video=canvas}
[mp3 @ 0x7ff32de20600] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:08 [decoder.taglib:2] Error while decoding file tags: Taglib.File.Invalid_file
2023/08/30 00:39:15 [decoder:2] Decoding "/var/azuracast/stations/niteradio/media/Other/Jingles/Jeff Laurence - Different Music Taste.mp3" ended: Ffmpeg_decoder.End_of_file.
[mp3 @ 0x7ff31ee76c00] Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x7ff31ee76c00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:15 [next_song:3] Prepared "/var/azuracast/stations/niteradio/media/Tagged/Golden Earring/Golden Earring - The Devil Made Us Do It_ 35 Years (2000 album, compilation, NL)/CD 1_ Hand's Wet on the Wheel/Golden Earring - Don't Run Too Far.mp3" (RID 91).
2023/08/30 00:39:15 [cue_next_song:3] Cueing in...
2023/08/30 00:39:15 [cross:3] Analysis: -38.817407dB / -88.829909dB (0.06s / 0.06s)
2023/08/30 00:39:15 [lang:3] Using custom crossfade
2023/08/30 00:39:15 [source.31:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:15 [audio.add:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:15 [fade_in.2:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:15 [fade_in:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:15 [on_track.5:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:15 [on_metadata.2:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:15 [on_track.4:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:15 [cross_after:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:15 [buffer.2:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:15 [fade_out.2:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:15 [fade_out:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:15 [on_end:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:15 [on_track.3:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:15 [on_metadata:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:15 [on_track.2:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:15 [cross_before:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:15 [buffer:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:39:15 [lang:3] API nextsong - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/nextsong' with body: 
2023/08/30 00:39:15 [lang:3] API playlist/234 - Sending GET request to 'http://127.0.0.1/api/station/1/playlist/234'
2023/08/30 00:39:15 [lang:3] API nextsong - Response (200): annotate:title="Conspiracy",artist="The Black Crowes",duration="286.00",song_id="edc965e0353d84670f82e9b2c6754018",media_id="272614",playlist_id="257":media:Tagged/Black Crowes, The/Black Crowes, The - Amorica/Black Crowes, The - Conspiracy.mp3
[mp3 @ 0x7ff32de20600] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:16 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Black Crowes, The/Black Crowes, The - Amorica/Black Crowes, The - Conspiracy.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:16 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Black Crowes, The/Black Crowes, The - Amorica/Black Crowes, The - Conspiracy.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x500, yuvj420p}
2023/08/30 00:39:16 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Black Crowes, The/Black Crowes, The - Amorica/Black Crowes, The - Conspiracy.mp3": {audio=pcm(stereo)}
2023/08/30 00:39:16 [lang:3] API playlist/234 - Response (200): {"name":"GR - Classic Rock","type":"default","source":"songs","order":"shuffle","remote_url":null,"remote_type":"stream","remote_buffer":0,"is_enabled":true,"is_jingle":false,"play_per_songs":0,"play_per_minutes":0,"play_per_hour_minute":0,"weight":3,"include_in_requests":false,"include_in_on_demand":false,"backend_options":[""],"avoid_duplicates":true,"played_at":1693349093,"queue_reset_at":1693317772,"schedule_items":[],"id":234,"short_name":"gr_-_classic_rock","num_songs":15804,"total_length":4147583,"links":{"self":"https://example.com/api/station/1/playlist/234","toggle":"https://example.com/api/station/1/playlist/234/toggle","clone":"https://example.com/api/station/1/playlist/234/clone","queue":"https://example.com/api/station/1/playlist/234/queue","import":"https://example.com/api/station/1/playlist/234/import","reshuffle":"https://example.com/api/station/1/playlist/234/reshuffle","applyto":"https://example.com/api/station/1/playlist/234/apply-to","empty":"https://example.com/api/station/1/playlist/234/empty","export":{"pls":"https://example.com/api/station/1/playlist/234/export/pls","m3u":"https://example.com/api/station/1/playlist/234/export/m3u"}}}
2023/08/30 00:39:16 [lang:3] API playlist/234 - Playlist "GR - Classic Rock", requests: false, scheduled: false
2023/08/30 00:39:16 [lang:3] API feedback - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/feedback' with body: {
2023/08/30 00:39:16 [lang:3]   "song_id": "ac47ebf8403a5278510997b712d1dfab",
2023/08/30 00:39:16 [lang:3]   "playlist_id": "234",
2023/08/30 00:39:16 [lang:3]   "media_id": "288953"
2023/08/30 00:39:16 [lang:3] }
[mp3 @ 0x7ff32de20600] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:39:16 [lang:3] API feedback - Response (200): true
2023/08/30 00:41:22 [decoder:2] Decoding "/var/azuracast/stations/niteradio/media/Tagged/Golden Earring/Golden Earring - The Devil Made Us Do It_ 35 Years (2000 album, compilation, NL)/CD 1_ Hand's Wet on the Wheel/Golden Earring - Don't Run Too Far.mp3" ended: Ffmpeg_decoder.End_of_file.
[mp3 @ 0x7ff31ee76c00] Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x7ff31ee76c00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 00:41:23 [next_song:3] Prepared "/var/azuracast/stations/niteradio/media/Tagged/Black Crowes, The/Black Crowes, The - Amorica/Black Crowes, The - Conspiracy.mp3" (RID 93).
2023/08/30 00:41:23 [cue_next_song:3] Cueing in...
2023/08/30 00:41:23 [lang:3] API nextsong - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/nextsong' with body: 
2023/08/30 00:41:23 [cross:3] Analysis: -68.900406dB / -20.837084dB (3.98s / 3.98s)
2023/08/30 00:41:23 [lang:3] Using custom crossfade
2023/08/30 00:41:23 [source.34:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:41:23 [audio.add.2:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:41:23 [fade_in.4:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:41:23 [fade_in.3:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:41:23 [on_track.9:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:41:23 [on_metadata.4:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:41:23 [on_track.8:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:41:23 [cross_after.2:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:41:23 [buffer.4:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:41:23 [fade_out.4:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:41:23 [fade_out.3:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:41:23 [on_end.2:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:41:23 [on_track.7:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:41:23 [on_metadata.3:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:41:23 [on_track.6:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:41:23 [cross_before.2:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:41:23 [buffer.3:3] Content type is {audio=pcm(stereo)}.
2023/08/30 00:41:23 [lang:3] API playlist/257 - Sending GET request to 'http://127.0.0.1/api/station/1/playlist/257'
2023/08/30 00:41:23 [lang:3] API nextsong - Response (200): annotate:title="Maybe I'm Amazed",artist="Paul McCartney",duration="232.00",song_id="379eb47aaa0f189857363ad2954656d5",media_id="206505",playlist_id="234":media:Tagged/McCartney, Paul/McCartney, Paul - Wingspan_ Hits and History (2001 album, compilation, DE)/CD 2_ History/McCartney, Paul - Maybe I'm Amazed.mp3
2023/08/30 00:41:23 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/McCartney, Paul/McCartney, Paul - Wingspan_ Hits and History (2001 album, compilation, DE)/CD 2_ History/McCartney, Paul - Maybe I'm Amazed.mp3": {audio=pcm(stereo)}
2023/08/30 00:41:23 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/McCartney, Paul/McCartney, Paul - Wingspan_ Hits and History (2001 album, compilation, DE)/CD 2_ History/McCartney, Paul - Maybe I'm Amazed.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x500, yuvj420p}
2023/08/30 00:41:23 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/McCartney, Paul/McCartney, Paul - Wingspan_ Hits and History (2001 album, compilation, DE)/CD 2_ History/McCartney, Paul - Maybe I'm Amazed.mp3": {audio=pcm(stereo)}
2023/08/30 00:41:23 [lang:3] API playlist/257 - Response (200): {"name":"GR - Hard Rock","type":"default","source":"songs","order":"shuffle","remote_url":null,"remote_type":"stream","remote_buffer":0,"is_enabled":true,"is_jingle":false,"play_per_songs":0,"play_per_minutes":0,"play_per_hour_minute":0,"weight":1,"include_in_requests":false,"include_in_on_demand":false,"backend_options":[""],"avoid_duplicates":true,"played_at":1693349224,"queue_reset_at":1693317772,"schedule_items":[],"id":257,"short_name":"gr_-_hard_rock","num_songs":20063,"total_length":5237373,"links":{"self":"https://example.com/api/station/1/playlist/257","toggle":"https://example.com/api/station/1/playlist/257/toggle","clone":"https://example.com/api/station/1/playlist/257/clone","queue":"https://example.com/api/station/1/playlist/257/queue","import":"https://example.com/api/station/1/playlist/257/import","reshuffle":"https://example.com/api/station/1/playlist/257/reshuffle","applyto":"https://example.com/api/station/1/playlist/257/apply-to","empty":"https://example.com/api/station/1/playlist/257/empty","export":{"pls":"https://example.com/api/station/1/playlist/257/export/pls","m3u":"https://example.com/api/station/1/playlist/257/export/m3u"}}}
2023/08/30 00:41:23 [lang:3] API playlist/257 - Playlist "GR - Hard Rock", requests: false, scheduled: false
2023/08/30 00:41:23 [lang:3] API feedback - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/feedback' with body: {
2023/08/30 00:41:23 [lang:3]   "song_id": "edc965e0353d84670f82e9b2c6754018",
2023/08/30 00:41:23 [lang:3]   "playlist_id": "257",
2023/08/30 00:41:23 [lang:3]   "media_id": "272614"
2023/08/30 00:41:23 [lang:3] }
2023/08/30 00:41:23 [lang:3] API feedback - Response (200): true
2023/08/30 00:42:08 [decoder:2] Decoding "/var/azuracast/stations/niteradio/media/videostream/videos/Great Dorset Steam Fair 2017 Highlights.mkv" ended: Ffmpeg_decoder.End_of_file.
2023/08/30 00:42:09 [videos:3] Prepared "/var/azuracast/stations/niteradio/media/videostream/videos/Great Dorset Steam Fair 2017.mkv" (RID 92).
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7ff32de20600] stream 0, timescale not set
2023/08/30 00:42:09 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/videostream/videos/Nite Radio - Game of Life (with cover).mp4": {video=canvas}
2023/08/30 00:42:09 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/videostream/videos/Nite Radio - Game of Life (with cover).mp4" as video: {codec: h264, 1280x720, yuv420p}, video_2: {codec: mjpeg, 1280x720, yuvj420p}
2023/08/30 00:42:09 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/videostream/videos/Nite Radio - Game of Life (with cover).mp4": {video=canvas}
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7ff32de20600] stream 0, timescale not set

Might be a good test actually, since I’m producing 5 audio and two video streams with AzuraCast currently, and they do some overlaying and API calls and stuff. Let’s see. Or hear, actually. ;-)

toots commented 1 year ago

Great, thanks. Fingers crossed!

Moonbase59 commented 1 year ago

Too bad, I think there still might be something… Sigh.

My TOTH time+station announcement "time.de-DE.mp3" is auto-generated via TTS (every minute). It’s in a playlist that’s supposed to interrupt at "0m", track-insensitive.

At the time playing it had this text (sorry German):

Es ist genau dreizehn Uhr und du hörst Nite Radio.

I was listening to my videostream on the TV at the time, and I heard something like (from memory, may not be 100% exact):

(playing song interrupted for TOTH at 13:00) …
"Es ist genau drei … Nite Radio (fade) … zehn Uhr"
… (interrupted song continues)

Now I do have some complicated processing, video lower third overlaying, API calls, cue-in & cue-out of 2s ea. on the time file (which was originally for use with "add", so has 3s silence at begin & end), and I do use blank.skip, separate clocks for the video streams (one of which takes its audio from the radio stream source), and so on, who knows…

For diag, here’s my crossfading part:

# blank.skip() will skip to next song and NOT play <bonus track>.
# Defaults: max_blank=20.0 (seconds), threshold=-40.0 (dB)
radio = blank.skip(radio, max_blank=5.0, threshold=-80.0)

def live_aware_crossfade(old, new) =
    if to_live() then
        # If going to the live show, play a simple sequence
        sequence([fade.out(old.source),fade.in(new.source)])
    else
        # Otherwise, use the smart transition
        log("Using custom crossfade")
        cross.simple(old.source, new.source, fade_in=0.00, fade_out=3.50)
    end
end

radio = cross(minimum=0., duration=4.00, width=2.00, live_aware_crossfade, radio)

So far, over a few hours using Liquidsoap 2.2.1+git@de9dc76e1, the track-sensitive "normal" crossfades played ok, both on audio & video stream.


Here’s a few minutes around the event, from my Liquidsoap Log:

2023/08/30 12:53:30 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Cassidy, Eva/Cassidy, Eva - Songbird (1998 album, compilation, GB)/Cassidy, Eva - Songbird.mp3": {audio=pcm(stereo)}
2023/08/30 12:53:30 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Cassidy, Eva/Cassidy, Eva - Songbird (1998 album, compilation, GB)/Cassidy, Eva - Songbird.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x485, yuvj420p}
2023/08/30 12:53:30 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Cassidy, Eva/Cassidy, Eva - Songbird (1998 album, compilation, GB)/Cassidy, Eva - Songbird.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff32a39fc00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 12:53:31 [lang:3] API feedback - Response (200): true
2023/08/30 12:53:49 [decoder:2] Decoding "/var/azuracast/stations/niteradio/media/Other/Jingles/Programm/promo-requests.mp3" ended: Ffmpeg_decoder.End_of_file.
[mp3 @ 0x7ff31ee76c00] Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x7ff31ee76c00] Estimating duration from bitrate, this may be inaccurate
2023/08/30 12:53:50 [next_song:3] Prepared "/var/azuracast/stations/niteradio/media/Tagged/Cassidy, Eva/Cassidy, Eva - Songbird (1998 album, compilation, GB)/Cassidy, Eva - Songbird.mp3" (RID 362).
2023/08/30 12:53:50 [cue_next_song:3] Cueing in...
2023/08/30 12:53:50 [lang:3] API nextsong - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/nextsong' with body: 
2023/08/30 12:53:50 [cross:3] Analysis: -20.930195dB / -17.599519dB (0.06s / 0.10s)
2023/08/30 12:53:50 [lang:3] Using custom crossfade
2023/08/30 12:53:50 [source.759:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:53:50 [audio.add.241:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:53:50 [fade_in.490:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:53:50 [fade_in.489:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:53:50 [on_track.981:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:53:50 [on_metadata.490:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:53:50 [on_track.980:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:53:50 [cross_after.243:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:53:50 [buffer.490:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:53:50 [fade_out.490:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:53:50 [fade_out.489:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:53:50 [on_end.245:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:53:50 [on_track.979:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:53:50 [on_metadata.489:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:53:50 [on_track.978:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:53:50 [cross_before.243:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:53:50 [buffer.489:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:53:50 [lang:3] API playlist/226 - Sending GET request to 'http://127.0.0.1/api/station/1/playlist/226'
2023/08/30 12:53:50 [lang:3] API nextsong - Response (200): annotate:title="The Golden Rose",artist="Tom Petty",duration="284.00",song_id="b91b325763df990802282a1f6e167049",media_id="227438",playlist_id="226":media:Tagged/Petty, Tom/Petty, Tom - Highway Companion/Petty, Tom - The Golden Rose.mp3
2023/08/30 12:53:50 [lang:3] API playlist/226 - Response (200): {"name":"Easy Listening","type":"default","source":"songs","order":"shuffle","remote_url":null,"remote_type":"stream","remote_buffer":0,"is_enabled":true,"is_jingle":false,"play_per_songs":0,"play_per_minutes":0,"play_per_hour_minute":0,"weight":3,"include_in_requests":true,"include_in_on_demand":false,"backend_options":[""],"avoid_duplicates":true,"played_at":1693393328,"queue_reset_at":1693317772,"schedule_items":[{"start_time":1200,"end_time":1500,"start_date":null,"end_date":null,"days":[1,2,3,4,6,7,5],"loop_once":false,"id":216}],"id":226,"short_name":"easy_listening","num_songs":3122,"total_length":738375,"links":{"self":"https://example.com/api/station/1/playlist/226","toggle":"https://example.com/api/station/1/playlist/226/toggle","clone":"https://example.com/api/station/1/playlist/226/clone","queue":"https://example.com/api/station/1/playlist/226/queue","import":"https://example.com/api/station/1/playlist/226/import","reshuffle":"https://example.com/api/station/1/playlist/226/reshuffle","applyto":"https://example.com/api/station/1/playlist/226/apply-to","empty":"https://example.com/api/station/1/playlist/226/empty","export":{"pls":"https://example.com/api/station/1/playlist/226/export/pls","m3u":"https://example.com/api/station/1/playlist/226/export/m3u"}}}
2023/08/30 12:53:50 [json.parse:3] You are parsing a JSON value without type annotation. This has confusing side-effects. Consider adding a type annotation: `let json.parse (x : ...) = ...`
2023/08/30 12:53:50 [lang:3] API playlist/226 - Playlist "Easy Listening", requests: true, scheduled: true
2023/08/30 12:53:50 [lang:3] API feedback - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/feedback' with body: {
2023/08/30 12:53:50 [lang:3]   "song_id": "c128a348ad158d71cc13b2bf2062fd3c",
2023/08/30 12:53:50 [lang:3]   "playlist_id": "226",
2023/08/30 12:53:50 [lang:3]   "media_id": "176413"
2023/08/30 12:53:50 [lang:3] }
2023/08/30 12:53:50 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Petty, Tom/Petty, Tom - Highway Companion/Petty, Tom - The Golden Rose.mp3": {audio=pcm(stereo)}
2023/08/30 12:53:50 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Petty, Tom/Petty, Tom - Highway Companion/Petty, Tom - The Golden Rose.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 12:53:50 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Petty, Tom/Petty, Tom - Highway Companion/Petty, Tom - The Golden Rose.mp3": {audio=pcm(stereo)}
2023/08/30 12:53:50 [lang:3] API feedback - Response (200): true
2023/08/30 12:54:01 [decoder:2] Decoding "/var/azuracast/stations/niteradio/media/videostream/videos/VJ Loops - Abstract Blue Light Tunnel.mkv" ended: Ffmpeg_decoder.End_of_file.
2023/08/30 12:54:02 [videos:3] Prepared "/var/azuracast/stations/niteradio/media/videostream/videos/Relaxation - Fireplace.mkv" (RID 359).
2023/08/30 12:54:02 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/videostream/videos/Great Dorset Steam Fair 2017.mkv": {video=canvas}
2023/08/30 12:54:02 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/videostream/videos/Great Dorset Steam Fair 2017.mkv" as audio: {codec: aac, 44100Hz, 2 channel(s)}, video: {codec: h264, 1920x1080, yuv420p}
2023/08/30 12:54:02 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/videostream/videos/Great Dorset Steam Fair 2017.mkv": {video=canvas}
2023/08/30 12:54:02 [decoder.taglib:2] Error while decoding file tags: Taglib.File.Invalid_file
2023/08/30 12:57:29 [decoder:2] Decoding "/var/azuracast/stations/niteradio/media/Tagged/Cassidy, Eva/Cassidy, Eva - Songbird (1998 album, compilation, GB)/Cassidy, Eva - Songbird.mp3" ended: Ffmpeg_decoder.End_of_file.
2023/08/30 12:57:29 [next_song:3] Prepared "/var/azuracast/stations/niteradio/media/Tagged/Petty, Tom/Petty, Tom - Highway Companion/Petty, Tom - The Golden Rose.mp3" (RID 363).
[mp3float @ 0x7ff3128d8d00] Could not update timestamps for skipped samples.
2023/08/30 12:57:29 [cue_next_song:3] Cueing in...
2023/08/30 12:57:29 [lang:3] API nextsong - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/nextsong' with body: 
2023/08/30 12:57:30 [lang:3] API nextsong - Response (200): annotate:title="Erkennen Sie die Melodie?",artist="Gert Wilden",duration="61.00",song_id="9f16232c4155818914ff94696a0ad81f",media_id="264505",playlist_id="226":media:Tagged/Wilden, Gert/Wilden, Gert - [compilations]/Wilden, Gert - Erkennen Sie die Melodie_.mp3
2023/08/30 12:57:30 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Wilden, Gert/Wilden, Gert - [compilations]/Wilden, Gert - Erkennen Sie die Melodie_.mp3": {audio=pcm(stereo)}
2023/08/30 12:57:30 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Wilden, Gert/Wilden, Gert - [compilations]/Wilden, Gert - Erkennen Sie die Melodie_.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 300x300, yuvj420p}
2023/08/30 12:57:30 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Wilden, Gert/Wilden, Gert - [compilations]/Wilden, Gert - Erkennen Sie die Melodie_.mp3": {audio=pcm(stereo)}
2023/08/30 12:57:30 [cross:3] Analysis: -30.065862dB / -45.645345dB (3.96s / 4.00s)
2023/08/30 12:57:30 [lang:3] Using custom crossfade
2023/08/30 12:57:30 [source.762:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:57:30 [audio.add.242:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:57:30 [fade_in.492:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:57:30 [fade_in.491:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:57:30 [on_track.985:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:57:30 [on_metadata.492:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:57:30 [on_track.984:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:57:30 [cross_after.244:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:57:30 [buffer.492:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:57:30 [fade_out.492:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:57:30 [fade_out.491:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:57:30 [on_end.246:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:57:30 [on_track.983:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:57:30 [on_metadata.491:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:57:30 [on_track.982:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:57:30 [cross_before.244:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:57:30 [buffer.491:3] Content type is {audio=pcm(stereo)}.
2023/08/30 12:57:30 [lang:3] API playlist/226 - Sending GET request to 'http://127.0.0.1/api/station/1/playlist/226'
2023/08/30 12:57:30 [lang:3] API feedback - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/feedback' with body: {
2023/08/30 12:57:30 [lang:3]   "song_id": "b91b325763df990802282a1f6e167049",
2023/08/30 12:57:30 [lang:3]   "playlist_id": "226",
2023/08/30 12:57:30 [lang:3]   "media_id": "227438"
2023/08/30 12:57:30 [lang:3] }
2023/08/30 12:57:30 [lang:3] API playlist/226 - Response (200): {"name":"Easy Listening","type":"default","source":"songs","order":"shuffle","remote_url":null,"remote_type":"stream","remote_buffer":0,"is_enabled":true,"is_jingle":false,"play_per_songs":0,"play_per_minutes":0,"play_per_hour_minute":0,"weight":3,"include_in_requests":true,"include_in_on_demand":false,"backend_options":[""],"avoid_duplicates":true,"played_at":1693393389,"queue_reset_at":1693317772,"schedule_items":[{"start_time":1200,"end_time":1500,"start_date":null,"end_date":null,"days":[1,2,3,4,6,7,5],"loop_once":false,"id":216}],"id":226,"short_name":"easy_listening","num_songs":3122,"total_length":738375,"links":{"self":"https://example.com/api/station/1/playlist/226","toggle":"https://example.com/api/station/1/playlist/226/toggle","clone":"https://example.com/api/station/1/playlist/226/clone","queue":"https://example.com/api/station/1/playlist/226/queue","import":"https://example.com/api/station/1/playlist/226/import","reshuffle":"https://example.com/api/station/1/playlist/226/reshuffle","applyto":"https://example.com/api/station/1/playlist/226/apply-to","empty":"https://example.com/api/station/1/playlist/226/empty","export":{"pls":"https://example.com/api/station/1/playlist/226/export/pls","m3u":"https://example.com/api/station/1/playlist/226/export/m3u"}}}
2023/08/30 12:57:30 [lang:3] API feedback - Response (200): true
2023/08/30 12:57:30 [json.parse:3] You are parsing a JSON value without type annotation. This has confusing side-effects. Consider adding a type annotation: `let json.parse (x : ...) = ...`
2023/08/30 12:57:30 [lang:3] API playlist/226 - Playlist "Easy Listening", requests: true, scheduled: true
[mp3 @ 0x7ff30f2a7200] Estimating duration from bitrate, this may be inaccurate
2023/08/30 13:00:02 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/time/time.de-DE.mp3": {audio=pcm(stereo)}
2023/08/30 13:00:02 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/time/time.de-DE.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/30 13:00:02 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/time/time.de-DE.mp3": {audio=pcm(stereo)}
[mp3 @ 0x7ff30f2a7200] Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x7ff31ef40800] Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x7ff31ef40800] Estimating duration from bitrate, this may be inaccurate
2023/08/30 13:00:02 [interrupting_requests:3] Prepared "/var/azuracast/stations/niteradio/media/time/time.de-DE.mp3" (RID 366).
2023/08/30 13:00:02 [interrupting_fallback:3] Switch to cue_interrupting_requests with transition.
2023/08/30 13:00:02 [replay_metadata.525:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:02 [cue_interrupting_requests:3] Cueing in...
2023/08/30 13:00:02 [cross:3] Analysis: -21.214902dB / -21.079334dB (3.96s / 3.96s)
2023/08/30 13:00:02 [lang:3] Using custom crossfade
2023/08/30 13:00:02 [source.765:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:02 [audio.add.243:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:02 [fade_in.494:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:02 [fade_in.493:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:02 [on_track.989:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:02 [on_metadata.494:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:02 [on_track.988:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:02 [cross_after.245:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:02 [buffer.494:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:02 [fade_out.494:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:02 [fade_out.493:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:02 [on_end.247:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:02 [on_track.987:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:02 [on_metadata.493:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:02 [on_track.986:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:02 [cross_before.245:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:02 [buffer.493:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:02 [lang:3] API playlist/226 - Sending GET request to 'http://127.0.0.1/api/station/1/playlist/226'
2023/08/30 13:00:02 [lang:3] API feedback - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/feedback' with body: {
2023/08/30 13:00:02 [lang:3]   "song_id": "2086e4f20c72a18a52c554728e67481c",
2023/08/30 13:00:02 [lang:3]   "playlist_id": "37",
2023/08/30 13:00:02 [lang:3]   "media_id": "160231"
2023/08/30 13:00:02 [lang:3] }
2023/08/30 13:00:03 [lang:3] API feedback - Response (200): true
2023/08/30 13:00:03 [lang:3] API playlist/226 - Response (200): {"name":"Easy Listening","type":"default","source":"songs","order":"shuffle","remote_url":null,"remote_type":"stream","remote_buffer":0,"is_enabled":true,"is_jingle":false,"play_per_songs":0,"play_per_minutes":0,"play_per_hour_minute":0,"weight":3,"include_in_requests":true,"include_in_on_demand":false,"backend_options":[""],"avoid_duplicates":true,"played_at":1693393741,"queue_reset_at":1693317772,"schedule_items":[{"start_time":1200,"end_time":1500,"start_date":null,"end_date":null,"days":[1,2,3,4,6,7,5],"loop_once":false,"id":216}],"id":226,"short_name":"easy_listening","num_songs":3122,"total_length":738375,"links":{"self":"https://example.com/api/station/1/playlist/226","toggle":"https://example.com/api/station/1/playlist/226/toggle","clone":"https://example.com/api/station/1/playlist/226/clone","queue":"https://example.com/api/station/1/playlist/226/queue","import":"https://example.com/api/station/1/playlist/226/import","reshuffle":"https://example.com/api/station/1/playlist/226/reshuffle","applyto":"https://example.com/api/station/1/playlist/226/apply-to","empty":"https://example.com/api/station/1/playlist/226/empty","export":{"pls":"https://example.com/api/station/1/playlist/226/export/pls","m3u":"https://example.com/api/station/1/playlist/226/export/m3u"}}}
2023/08/30 13:00:03 [json.parse:3] You are parsing a JSON value without type annotation. This has confusing side-effects. Consider adding a type annotation: `let json.parse (x : ...) = ...`
2023/08/30 13:00:03 [lang:3] API playlist/226 - Playlist "Easy Listening", requests: true, scheduled: true
2023/08/30 13:00:09 [decoder:2] Decoding "/var/azuracast/stations/niteradio/media/time/time.de-DE.mp3" ended: Ffmpeg_decoder.End_of_file.
2023/08/30 13:00:10 [interrupting_fallback:3] Switch to requests_fallback with forgetful transition.
2023/08/30 13:00:10 [replay_metadata.528:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:10 [cross:3] Analysis: -16.432247dB / -21.627904dB (1.98s / 2.02s)
2023/08/30 13:00:10 [lang:3] Using custom crossfade
2023/08/30 13:00:10 [source.768:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:10 [audio.add.244:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:10 [fade_in.496:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:10 [fade_in.495:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:10 [on_track.993:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:10 [on_metadata.496:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:10 [on_track.992:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:10 [cross_after.246:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:10 [buffer.496:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:10 [fade_out.496:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:10 [fade_out.495:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:10 [on_end.248:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:10 [on_track.991:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:10 [on_metadata.495:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:10 [on_track.990:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:10 [cross_before.246:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:10 [buffer.495:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:00:10 [lang:3] API feedback - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/feedback' with body: {
2023/08/30 13:00:10 [lang:3]   "song_id": "b91b325763df990802282a1f6e167049",
2023/08/30 13:00:10 [lang:3]   "playlist_id": "226",
2023/08/30 13:00:10 [lang:3]   "media_id": "227438"
2023/08/30 13:00:10 [lang:3] }
2023/08/30 13:00:10 [lang:3] API playlist/226 - Sending GET request to 'http://127.0.0.1/api/station/1/playlist/226'
2023/08/30 13:00:10 [lang:3] API feedback - Response (200): true
2023/08/30 13:00:10 [lang:3] API playlist/226 - Response (200): {"name":"Easy Listening","type":"default","source":"songs","order":"shuffle","remote_url":null,"remote_type":"stream","remote_buffer":0,"is_enabled":true,"is_jingle":false,"play_per_songs":0,"play_per_minutes":0,"play_per_hour_minute":0,"weight":3,"include_in_requests":true,"include_in_on_demand":false,"backend_options":[""],"avoid_duplicates":true,"played_at":1693393741,"queue_reset_at":1693317772,"schedule_items":[{"start_time":1200,"end_time":1500,"start_date":null,"end_date":null,"days":[1,2,3,4,6,7,5],"loop_once":false,"id":216}],"id":226,"short_name":"easy_listening","num_songs":3122,"total_length":738375,"links":{"self":"https://example.com/api/station/1/playlist/226","toggle":"https://example.com/api/station/1/playlist/226/toggle","clone":"https://example.com/api/station/1/playlist/226/clone","queue":"https://example.com/api/station/1/playlist/226/queue","import":"https://example.com/api/station/1/playlist/226/import","reshuffle":"https://example.com/api/station/1/playlist/226/reshuffle","applyto":"https://example.com/api/station/1/playlist/226/apply-to","empty":"https://example.com/api/station/1/playlist/226/empty","export":{"pls":"https://example.com/api/station/1/playlist/226/export/pls","m3u":"https://example.com/api/station/1/playlist/226/export/m3u"}}}
2023/08/30 13:00:10 [json.parse:3] You are parsing a JSON value without type annotation. This has confusing side-effects. Consider adding a type annotation: `let json.parse (x : ...) = ...`
2023/08/30 13:00:10 [lang:3] API playlist/226 - Playlist "Easy Listening", requests: true, scheduled: true
[mp3float @ 0x7ff3128d8d00] Could not update timestamps for discarded samples.
2023/08/30 13:02:13 [decoder:2] Decoding "/var/azuracast/stations/niteradio/media/Tagged/Petty, Tom/Petty, Tom - Highway Companion/Petty, Tom - The Golden Rose.mp3" ended: Ffmpeg_decoder.End_of_file.
2023/08/30 13:02:13 [next_song:3] Prepared "/var/azuracast/stations/niteradio/media/Tagged/Wilden, Gert/Wilden, Gert - [compilations]/Wilden, Gert - Erkennen Sie die Melodie_.mp3" (RID 365).
[mp3float @ 0x7ff3096e4000] Could not update timestamps for skipped samples.
2023/08/30 13:02:13 [cue_next_song:3] Cueing in...
2023/08/30 13:02:13 [lang:3] API nextsong - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/nextsong' with body: 
2023/08/30 13:02:13 [cross:3] Analysis: -63.674351dB / -77.945539dB (3.97s / 3.99s)
2023/08/30 13:02:13 [lang:3] Using custom crossfade
2023/08/30 13:02:13 [source.771:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:02:13 [audio.add.245:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:02:13 [fade_in.498:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:02:13 [fade_in.497:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:02:13 [on_track.997:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:02:13 [on_metadata.498:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:02:13 [on_track.996:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:02:13 [cross_after.247:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:02:13 [buffer.498:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:02:13 [fade_out.498:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:02:13 [fade_out.497:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:02:13 [on_end.249:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:02:13 [on_track.995:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:02:13 [on_metadata.497:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:02:13 [on_track.994:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:02:13 [cross_before.247:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:02:13 [buffer.497:3] Content type is {audio=pcm(stereo)}.
2023/08/30 13:02:13 [lang:3] API feedback - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/feedback' with body: {
2023/08/30 13:02:13 [lang:3]   "song_id": "9f16232c4155818914ff94696a0ad81f",
2023/08/30 13:02:13 [lang:3]   "playlist_id": "226",
2023/08/30 13:02:13 [lang:3]   "media_id": "264505"
2023/08/30 13:02:13 [lang:3] }
2023/08/30 13:02:13 [lang:3] API nextsong - Response (200): annotate:title="Medley Starmania",artist="Lara Fabian",duration="355.00",song_id="d384c7fc4cb676f92b47179746765f57",media_id="220650",playlist_id="226":media:Tagged/Fabian, Lara/Fabian, Lara - Lara Fabian (2004 album, compilation, FR)/Fabian, Lara - Medley Starmania.flac
2023/08/30 13:02:13 [lang:3] API feedback - Response (200): true
2023/08/30 13:02:13 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/niteradio/media/Tagged/Fabian, Lara/Fabian, Lara - Lara Fabian (2004 album, compilation, FR)/Fabian, Lara - Medley Starmania.flac": {audio=pcm(stereo)}
2023/08/30 13:02:13 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/niteradio/media/Tagged/Fabian, Lara/Fabian, Lara - Lara Fabian (2004 album, compilation, FR)/Fabian, Lara - Medley Starmania.flac" as audio: {codec: flac, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 300x300, yuvj420p}
2023/08/30 13:02:13 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/niteradio/media/Tagged/Fabian, Lara/Fabian, Lara - Lara Fabian (2004 album, compilation, FR)/Fabian, Lara - Medley Starmania.flac": {audio=pcm(stereo)}
2023/08/30 13:02:13 [lang:3] API playlist/226 - Sending GET request to 'http://127.0.0.1/api/station/1/playlist/226'
2023/08/30 13:02:14 [lang:3] API playlist/226 - Response (200): {"name":"Easy Listening","type":"default","source":"songs","order":"shuffle","remote_url":null,"remote_type":"stream","remote_buffer":0,"is_enabled":true,"is_jingle":false,"play_per_songs":0,"play_per_minutes":0,"play_per_hour_minute":0,"weight":3,"include_in_requests":true,"include_in_on_demand":false,"backend_options":[""],"avoid_duplicates":true,"played_at":1693393741,"queue_reset_at":1693317772,"schedule_items":[{"start_time":1200,"end_time":1500,"start_date":null,"end_date":null,"days":[1,2,3,4,6,7,5],"loop_once":false,"id":216}],"id":226,"short_name":"easy_listening","num_songs":3122,"total_length":738375,"links":{"self":"https://example.com/api/station/1/playlist/226","toggle":"https://example.com/api/station/1/playlist/226/toggle","clone":"https://example.com/api/station/1/playlist/226/clone","queue":"https://example.com/api/station/1/playlist/226/queue","import":"https://example.com/api/station/1/playlist/226/import","reshuffle":"https://example.com/api/station/1/playlist/226/reshuffle","applyto":"https://example.com/api/station/1/playlist/226/apply-to","empty":"https://example.com/api/station/1/playlist/226/empty","export":{"pls":"https://example.com/api/station/1/playlist/226/export/pls","m3u":"https://example.com/api/station/1/playlist/226/export/m3u"}}}
2023/08/30 13:02:14 [json.parse:3] You are parsing a JSON value without type annotation. This has confusing side-effects. Consider adding a type annotation: `let json.parse (x : ...) = ...`
2023/08/30 13:02:14 [lang:3] API playlist/226 - Playlist "Easy Listening", requests: true, scheduled: true

Hope that helps in whatever way…

Moonbase59 commented 1 year ago

I tried to record both at the 14:00 mark—no difference in audio & video, both garbled: Liquidsoap-AzuraCast-Garbled-TOTH-Recording.zip

Here is also the "original" time.de-DE.mp3 (actually not, since it changes every minute; this is from 14:25): time.de-DE.mp3.zip

(What it should say is Es ist Mittwoch, genau 14 Uhr, und du hörst Nite Radio.)

toots commented 1 year ago

Thanks @Moonbase59. What you are describing here is this issue: https://github.com/savonet/liquidsoap/issues/3181 which we are also investigating.

Because both cases involve a long time, I'm temped to think that they are from the same underlying causes but this hasn't been confirmed yet.

It's also possible that https://github.com/savonet/liquidsoap/issues/3318 is related as well.

The investigation continues on my end. I have been running this test script, same as above but with cue_cut added:

settings.server.log.level.set(5)
settings.server.telnet.set(true)
settings.server.telnet.bind_addr.set("0.0.0.0")
settings.server.telnet.port.set(1235)
settings.server.timeout.set(-1.0)
settings.decoder.decoders.set(["ffmpeg"])

# Security fallback
security = single("/Users/toots/sources/test-station/flac/Horoya Band/Horoya Band - Horiya Band du Guinea (k7 2288)/01. Souleymane Diane.flac")

# Here's the playlist, annotated as per our Python pre-production program dictates
myplaylist =
  playlist(
    reload_mode="watch",
    prefix="annotate:liq_cue_in=\"10.\",liq_cue_out=\"120.\":",
    "/Users/toots/sources/test-station/nina"
  )

# Cut off any silent starts
myplaylist = cue_cut(myplaylist)

# Do the crossfades
myplaylist =
  crossfade(
    smart=false,
    fade_out=0.0,
    fade_in=0.0,
    minimum=-1.0,
    default=(fun (a, b) -> add(normalize=false, ([b, a]))),
    conservative=true,
    myplaylist
  )

#myplaylist = mksafe(myplaylist)
radio =
  fallback(track_sensitive=false, [myplaylist, security])

radio_comp =
  fallback(
    track_sensitive=false, [myplaylist, security]
  )

# What shall we name our HLS segments?
#
def segment_name(~position, ~extname, stream_name) =
  timestamp = int_of_float(time())
  duration = 10
  "#{stream_name}_#{duration}_#{timestamp}_#{position}.#{extname}"
end

# Here's the high bandwidth stream
output.file.hls(
  playlist="live_high.m3u8",
  segment_name=segment_name,
  segment_duration=2.0,
  segments=20,
  segments_overhead=20,
  "/Users/toots/sources/test-station/hls",
  [
    (
      "AAC",
      %ffmpeg(
        format = "mpegts",
        %audio(
          codec = "aac",
          samplerate = 48000,
        )
      )
    )
  ],
  radio
)

# Here's the low bandwidth stream
output.file.hls(
  playlist="live.m3u8",
  segment_name=segment_name,
  segment_duration=2.0,
  segments=20,
  segments_overhead=20,
  "/Users/toots/sources/test-station/hls",
  [
    (
      "HEAAC+",
      %ffmpeg(
        format = "mpegts",
        %audio(
          codec = "aac",
          samplerate = 32000,
        )
      )
    )
  ],
  radio_comp
)

Again, any one with a faulty script would help a lot trying to take things out of it one by one until having something as minimal as possible.

Thanks for y'all patience y'all. We've got a good 2.2.1 bugfix pending and I'm hoping to fix this and ship it soon.

Moonbase59 commented 1 year ago

Again, any one with a faulty script would help a lot trying to take things out of it one by one until having something as minimal as possible.

Very true, but when you have no idea of the cause, and come from a more complicated software environment like AzuraCast, it can be difficult to set up a minimal example.

Anyway, the good thing is I didn’t (yet?) hear other crossfading problems. And as long as you can pinpoint the (possible) issue, we’ll surely be glad—and wait for the next version to be tested. :-)

Btw, I forgot to say that AzuraCast, per default, uses cue_cut, directly after each playlist definition. So we have the same situation here, except my additional blank.skip, which I’m unsure about: The "time" file has 3s of silence at start & end, plus fade-in, fade-out and overlap annotated, and blank.skip(…, max_blank=5.0, …) being used. So should it remove that or not?

Auswahl_266

Warblefly commented 1 year ago

Using Liquidsoap 2.2.1+git@de9dc76e1 (the last commit to rolling-release-v2.2.x)

Music crossfades from the playlist are still ok after 12 hours.

But the problem with inserted files, via the request mechanism over telnet, persists.

(Edit: I'll mention #3181 because this might be the problem in question.)

An incoming inserted file plays over the last second or so of the outgoing music (before the liq_cross_duration would allow the next track in version 2.1.4).

Then, after the inserted file, the last second of the previous outgoing file (from the playlist) plays, then the playlist's next track starts.

Thank you for looking into this problem.

Here's the log from around that time.

The track "Gabriella's Gavotte" by John Dankworth had its last few notes crashed by the inserted 'cbsnews.mka'.

After the news, the playout returned to the (almost silent) last second of the John Dankworth track. Then, without any overlap, just a silence, the Bob Dylan track began.

The "cbsnews.mka" is the inserted track via the telnet request mechanism.

2023/08/31 08:44:29 [crossfade:4] After : ("longtail", "False")
2023/08/31 08:44:29 [crossfade:4] After : ("on_air_timestamp", "1693467869.00")
2023/08/31 08:44:29 [crossfade:4] After : ("kind", "{audio=pcm(stereo)}")
2023/08/31 08:44:29 [crossfade:4] After : ("artist", "John Dankworth")
2023/08/31 08:44:29 [crossfade:4] After : ("decoder", "ffmpeg")
2023/08/31 08:44:29 [crossfade:4] After : ("liq_cross_duration", "3.260")
2023/08/31 08:44:29 [crossfade:4] After : ("title", "Gabriella's Gavotte")
2023/08/31 08:44:29 [crossfade:4] After : ("liq_cue_in", "0.000")
2023/08/31 08:44:29 [crossfade:4] After : ("filename", "/home/john/src/radio/mez3/gabriellas-gavotte-dankworth-anpm.e8fdf39bfeb3a03ef0360c7bf40e63ab.mka")
2023/08/31 08:44:29 [crossfade:4] After : ("temporary", "false")
2023/08/31 08:44:29 [crossfade:4] After : ("source", "bc2-30DEC2020-complete_m3u8")
2023/08/31 08:44:29 [crossfade:4] After : ("initial_uri", "annotate:liq_cue_in=\"0.000\",liq_cross_duration=\"3.260\",duration=\"229.460\",liq_amplify=\"-4.900dB\":/home/john/src/radio/mez3/gabriellas-gavotte-dankworth-anpm.e8fdf39bfeb3a03ef0360c7bf40e63ab.mka")
2023/08/31 08:44:29 [crossfade:4] After : ("encoder", "Lavf58.49.100")
2023/08/31 08:44:29 [crossfade:4] After : ("status", "playing")
2023/08/31 08:44:29 [crossfade:4] After : ("on_air", "2023/08/31 08:44:29")
2023/08/31 08:44:29 [crossfade:4] After : ("loudness", "-18.100")
2023/08/31 08:44:29 [crossfade:4] After : ("rid", "145")
2023/08/31 08:44:29 [crossfade:4] After : ("duration", "229.460")
2023/08/31 08:44:29 [crossfade:4] After : ("liq_amplify", "-4.900dB")
2023/08/31 08:44:29 [crossfade:3] Simple transition: crossed, fade-in, fade-out.
2023/08/31 08:44:29 [source:4] Source source.437 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:44:29 [source.437:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:44:29 [source:4] Source audio.add.143 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:44:29 [audio.add.143:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:44:29 [source:4] Source fade_in.286 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:44:29 [fade_in.286:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:44:29 [source:4] Source fade_in.285 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:44:29 [fade_in.285:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:44:29 [source:4] Source on_track.572 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:44:29 [on_track.572:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:44:29 [source:4] Source on_metadata.286 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:44:29 [on_metadata.286:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:44:29 [source:4] Source on_track.571 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:44:29 [on_track.571:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:44:29 [source:4] Source cross_after.143 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:44:29 [cross_after.143:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:44:29 [source:4] Source buffer.286 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:44:29 [buffer.286:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:44:29 [source:4] Source fade_out.286 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:44:29 [fade_out.286:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:44:29 [source:4] Source fade_out.285 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:44:29 [fade_out.285:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:44:29 [source:4] Source on_end.143 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:44:29 [on_end.143:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:44:29 [source:4] Source on_track.570 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:44:29 [on_track.570:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:44:29 [source:4] Source on_metadata.285 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:44:29 [on_metadata.285:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:44:29 [source:4] Source on_track.569 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:44:29 [on_track.569:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:44:29 [source:4] Source cross_before.143 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:44:29 [cross_before.143:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:44:29 [source:4] Source buffer.285 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:44:29 [buffer.285:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:44:29 [cross_after.143:4] Fading in with type: sin and duration: 0.s.
2023/08/31 08:44:39 [buffer.285:4] End of track.
2023/08/31 08:44:39 [buffer.285:4] Buffer emptied, buffering needed.
2023/08/31 08:44:39 [cross_before.143:4] Fading out with type sin, duration: 0. and 0.s remaining.
2023/08/31 08:44:39 [buffer.286:4] End of track.
2023/08/31 08:44:39 [buffer.286:4] Buffer emptied, buffering needed.
2023/08/31 08:44:39 [source:4] Source source.437 gets down.
2023/08/31 08:44:39 [source:4] Source audio.add.143 gets down.
2023/08/31 08:44:39 [source:4] Source fade_in.286 gets down.
2023/08/31 08:44:39 [source:4] Source fade_in.285 gets down.
2023/08/31 08:44:39 [source:4] Source on_track.572 gets down.
2023/08/31 08:44:39 [source:4] Source on_metadata.286 gets down.
2023/08/31 08:44:39 [source:4] Source on_track.571 gets down.
2023/08/31 08:44:39 [source:4] Source cross_after.143 gets down.
2023/08/31 08:44:39 [source:4] Source buffer.286 gets down.
2023/08/31 08:44:39 [source:4] Source fade_out.286 gets down.
2023/08/31 08:44:39 [source:4] Source fade_out.285 gets down.
2023/08/31 08:44:39 [source:4] Source on_end.143 gets down.
2023/08/31 08:44:39 [source:4] Source on_track.570 gets down.
2023/08/31 08:44:39 [source:4] Source on_metadata.285 gets down.
2023/08/31 08:44:39 [source:4] Source on_track.569 gets down.
2023/08/31 08:44:39 [source:4] Source cross_before.143 gets down.
2023/08/31 08:44:39 [source:4] Source buffer.285 gets down.
2023/08/31 08:44:39 [cross:4] Buffering end of track...
2023/08/31 08:44:39 [cross:4] More buffering will be needed.
2023/08/31 08:48:01 [override:4] Pushing <request(id=147)> on the queue.
2023/08/31 08:48:01 [decoder:4] Available decoders: ffmpeg (priority: 10)
2023/08/31 08:48:01 [decoder:4] Trying decoder "ffmpeg"
2023/08/31 08:48:01 [decoder.ffmpeg:3] Requested content-type for "/home/john/src/radio/cbsnews.mka": {audio=pcm(stereo)}
2023/08/31 08:48:01 [decoder.ffmpeg:3] FFmpeg recognizes "/home/john/src/radio/cbsnews.mka" as audio: {codec: aac, 48000Hz, 2 channel(s)}
2023/08/31 08:48:01 [decoder.ffmpeg:3] Decoded content-type for "/home/john/src/radio/cbsnews.mka": {audio=pcm(stereo)}
2023/08/31 08:48:01 [decoder:4] Selected decoder ffmpeg for file "/home/john/src/radio/cbsnews.mka" with expected kind {audio=pcm(stereo)} and detected content {audio=pcm(stereo)}
2023/08/31 08:48:01 [override:4] Queued 1 requests
2023/08/31 08:48:14 [decoder:2] Decoding "/home/john/src/radio/mez3/gabriellas-gavotte-dankworth-anpm.e8fdf39bfeb3a03ef0360c7bf40e63ab.mka" ended: Ffmpeg_decoder.End_of_file.
2023/08/31 08:48:14 [decoder:4] Raised at Ffmpeg_decoder.mk_decoder.(fun).f in file "src/core/decoder/ffmpeg_decoder.ml", line 827, characters 12-29
2023/08/31 08:48:14 [decoder:4] Called from Decoder.mk_decoder.fill in file "src/core/decoder/decoder.ml", line 504, characters 10-31
2023/08/31 08:48:14 [decoder:4]
2023/08/31 08:48:15 [bc2-30DEC2020-complete_m3u8:4] Finished with "/home/john/src/radio/mez3/gabriellas-gavotte-dankworth-anpm.e8fdf39bfeb3a03ef0360c7bf40e63ab.mka".
2023/08/31 08:48:15 [bc2-30DEC2020-complete_m3u8:4] Remaining 0 requests
2023/08/31 08:48:15 [bc2-30DEC2020-complete_m3u8:3] Prepared "/home/john/src/radio/mez3/08 Sub Terranean Homesick Blues.ea2c29203f11368b85997c0ef532d26f.mka" (RID 146).
2023/08/31 08:48:15 [amplify.2:4] End of the current overriding.
2023/08/31 08:48:15 [override:4] Remaining 0 requests
2023/08/31 08:48:15 [override:3] Prepared "/home/john/src/radio/cbsnews.mka" (RID 147).
2023/08/31 08:48:15 [switch:3] Switch to override with forgetful transition.
2023/08/31 08:48:15 [source:4] Source replay_metadata.320 gets down.
2023/08/31 08:48:15 [source:4] Source replay_metadata.329 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:48:15 [replay_metadata.329:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:48:15 [cross:4] Setting crossfade duration to 30.00s
2023/08/31 08:48:15 [cross:4] Overriding crossfade duration from metadata liq_cross_duration
2023/08/31 08:48:15 [cross:4] Setting crossfade duration to 0.40s
2023/08/31 08:48:15 [cross:3] Analysis: -25.557754dB / -26.420486dB (3.26s / 3.30s)
2023/08/31 08:48:15 [crossfade:4] Before: ("longtail", "False")
2023/08/31 08:48:15 [crossfade:4] Before: ("on_air_timestamp", "1693467869.00")
2023/08/31 08:48:15 [crossfade:4] Before: ("kind", "{audio=pcm(stereo)}")
2023/08/31 08:48:15 [crossfade:4] Before: ("artist", "John Dankworth")
2023/08/31 08:48:15 [crossfade:4] Before: ("decoder", "ffmpeg")
2023/08/31 08:48:15 [crossfade:4] Before: ("liq_cross_duration", "3.260")
2023/08/31 08:48:15 [crossfade:4] Before: ("title", "Gabriella's Gavotte")
2023/08/31 08:48:15 [crossfade:4] Before: ("liq_cue_in", "0.000")
2023/08/31 08:48:15 [crossfade:4] Before: ("filename", "/home/john/src/radio/mez3/gabriellas-gavotte-dankworth-anpm.e8fdf39bfeb3a03ef0360c7bf40e63ab.mka")
2023/08/31 08:48:15 [crossfade:4] Before: ("temporary", "false")
2023/08/31 08:48:15 [crossfade:4] Before: ("source", "bc2-30DEC2020-complete_m3u8")
2023/08/31 08:48:15 [crossfade:4] Before: ("initial_uri", "annotate:liq_cue_in=\"0.000\",liq_cross_duration=\"3.260\",duration=\"229.460\",liq_amplify=\"-4.900dB\":/home/john/src/radio/mez3/gabriellas-gavotte-dankworth-anpm.e8fdf39bfeb3a03ef0360c7bf40e63ab.mka")
2023/08/31 08:48:15 [crossfade:4] Before: ("encoder", "Lavf58.49.100")
2023/08/31 08:48:15 [crossfade:4] Before: ("status", "playing")
2023/08/31 08:48:15 [crossfade:4] Before: ("on_air", "2023/08/31 08:44:29")
2023/08/31 08:48:15 [crossfade:4] Before: ("loudness", "-18.100")
2023/08/31 08:48:15 [crossfade:4] Before: ("rid", "145")
2023/08/31 08:48:15 [crossfade:4] Before: ("duration", "229.460")
2023/08/31 08:48:15 [crossfade:4] Before: ("liq_amplify", "-4.900dB")
2023/08/31 08:48:15 [crossfade:4] After : ("on_air_timestamp", "1693468095.00")
2023/08/31 08:48:15 [crossfade:4] After : ("kind", "{audio=pcm(stereo)}")
2023/08/31 08:48:15 [crossfade:4] After : ("artist", "CBS")
2023/08/31 08:48:15 [crossfade:4] After : ("decoder", "ffmpeg")
2023/08/31 08:48:15 [crossfade:4] After : ("liq_cross_duration", "0.4")
2023/08/31 08:48:15 [crossfade:4] After : ("title", "CBS Radio News")
2023/08/31 08:48:15 [crossfade:4] After : ("filename", "/home/john/src/radio/cbsnews.mka")
2023/08/31 08:48:15 [crossfade:4] After : ("temporary", "false")
2023/08/31 08:48:15 [crossfade:4] After : ("source", "override")
2023/08/31 08:48:15 [crossfade:4] After : ("initial_uri", "annotate:liq_fade_in=\"0.0\",liq_fade_out=\"0.0\",liq_cross_duration=\"0.4\",title=\"CBS Radio News\",artist=\"CBS\":/home/john/src/radio/cbsnews.mka")
2023/08/31 08:48:15 [crossfade:4] After : ("liq_fade_out", "0.0")
2023/08/31 08:48:15 [crossfade:4] After : ("encoder", "Lavc60.23.100 libfdk_aac")
2023/08/31 08:48:15 [crossfade:4] After : ("status", "playing")
2023/08/31 08:48:15 [crossfade:4] After : ("on_air", "2023/08/31 08:48:15")
2023/08/31 08:48:15 [crossfade:4] After : ("liq_fade_in", "0.0")
2023/08/31 08:48:15 [crossfade:4] After : ("rid", "147")
2023/08/31 08:48:15 [crossfade:4] After : ("duration", "00:02:47.099000000")
2023/08/31 08:48:15 [crossfade:3] Simple transition: crossed, fade-in, fade-out.
2023/08/31 08:48:15 [source:4] Source source.440 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:48:15 [source.440:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:48:15 [source:4] Source audio.add.144 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:48:15 [audio.add.144:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:48:15 [source:4] Source fade_in.288 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:48:15 [fade_in.288:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:48:15 [source:4] Source fade_in.287 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:48:15 [fade_in.287:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:48:15 [source:4] Source on_track.576 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:48:15 [on_track.576:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:48:15 [source:4] Source on_metadata.288 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:48:15 [on_metadata.288:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:48:15 [source:4] Source on_track.575 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:48:15 [on_track.575:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:48:15 [source:4] Source cross_after.144 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:48:15 [cross_after.144:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:48:15 [source:4] Source buffer.288 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:48:15 [buffer.288:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:48:15 [source:4] Source fade_out.288 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:48:15 [fade_out.288:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:48:15 [source:4] Source fade_out.287 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:48:15 [fade_out.287:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:48:15 [source:4] Source on_end.144 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:48:15 [on_end.144:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:48:15 [source:4] Source on_track.574 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:48:15 [on_track.574:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:48:15 [source:4] Source on_metadata.287 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:48:15 [on_metadata.287:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:48:15 [source:4] Source on_track.573 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:48:15 [on_track.573:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:48:15 [source:4] Source cross_before.144 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:48:15 [cross_before.144:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:48:15 [source:4] Source buffer.287 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:48:15 [buffer.287:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:48:15 [cross_after.144:4] New fade duration: 0.s.
2023/08/31 08:48:15 [cross_after.144:4] Fading in with type: sin and duration: 0.s.
2023/08/31 08:48:17 [buffer.287:4] End of track.
2023/08/31 08:48:17 [buffer.287:4] Buffer emptied, buffering needed.
2023/08/31 08:48:17 [cross_before.144:4] Fading out with type sin, duration: 0. and 0.s remaining.
2023/08/31 08:48:18 [buffer.288:4] End of track.
2023/08/31 08:48:18 [buffer.288:4] Buffer emptied, buffering needed.
2023/08/31 08:48:18 [source:4] Source source.440 gets down.
2023/08/31 08:48:18 [source:4] Source audio.add.144 gets down.
2023/08/31 08:48:18 [source:4] Source fade_in.288 gets down.
2023/08/31 08:48:18 [source:4] Source fade_in.287 gets down.
2023/08/31 08:48:18 [source:4] Source on_track.576 gets down.
2023/08/31 08:48:18 [source:4] Source on_metadata.288 gets down.
2023/08/31 08:48:18 [source:4] Source on_track.575 gets down.
2023/08/31 08:48:18 [source:4] Source cross_after.144 gets down.
2023/08/31 08:48:18 [source:4] Source buffer.288 gets down.
2023/08/31 08:48:18 [source:4] Source fade_out.288 gets down.
2023/08/31 08:48:18 [source:4] Source fade_out.287 gets down.
2023/08/31 08:48:18 [source:4] Source on_end.144 gets down.
2023/08/31 08:48:18 [source:4] Source on_track.574 gets down.
2023/08/31 08:48:18 [source:4] Source on_metadata.287 gets down.
2023/08/31 08:48:18 [source:4] Source on_track.573 gets down.
2023/08/31 08:48:18 [source:4] Source cross_before.144 gets down.
2023/08/31 08:48:18 [source:4] Source buffer.287 gets down.
2023/08/31 08:48:18 [cross:4] Buffering end of track...
2023/08/31 08:48:18 [cross:4] More buffering will be needed.
[aac @ 0x7f3f28e1be00] Could not update timestamps for discarded samples.
2023/08/31 08:51:01 [decoder:2] Decoding "/home/john/src/radio/cbsnews.mka" ended: Ffmpeg_decoder.End_of_file.
2023/08/31 08:51:01 [decoder:4] Raised at Ffmpeg_decoder.mk_decoder.(fun).f in file "src/core/decoder/ffmpeg_decoder.ml", line 827, characters 12-29
2023/08/31 08:51:01 [decoder:4] Called from Decoder.mk_decoder.fill in file "src/core/decoder/decoder.ml", line 504, characters 10-31
2023/08/31 08:51:01 [decoder:4]
2023/08/31 08:51:01 [override:4] Finished with "/home/john/src/radio/cbsnews.mka".
2023/08/31 08:51:01 [switch:3] Switch to amplify.3 with forgetful transition.
2023/08/31 08:51:01 [source:4] Source replay_metadata.329 gets down.
2023/08/31 08:51:01 [source:4] Source replay_metadata.332 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [replay_metadata.332:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [cross:4] Setting crossfade duration to 30.00s
2023/08/31 08:51:01 [cue_cut:4] Cue points : none / none
2023/08/31 08:51:01 [cue_cut:3] Cueing in...
2023/08/31 08:51:01 [amplify.2:4] Overriding amplification: 0.254097.
2023/08/31 08:51:01 [cross:4] Overriding crossfade duration from metadata liq_cross_duration
2023/08/31 08:51:01 [cross:4] Setting crossfade duration to 7.69s
2023/08/31 08:51:01 [decoder:4] Available decoders: ffmpeg (priority: 10)
2023/08/31 08:51:01 [decoder:4] Trying decoder "ffmpeg"
2023/08/31 08:51:01 [cross:3] Analysis: -29.538248dB / -71.397456dB (0.40s / 0.40s)
2023/08/31 08:51:01 [crossfade:4] Before: ("on_air_timestamp", "1693468095.00")
2023/08/31 08:51:01 [crossfade:4] Before: ("kind", "{audio=pcm(stereo)}")
2023/08/31 08:51:01 [crossfade:4] Before: ("artist", "CBS")
2023/08/31 08:51:01 [crossfade:4] Before: ("decoder", "ffmpeg")
2023/08/31 08:51:01 [crossfade:4] Before: ("liq_cross_duration", "0.4")
2023/08/31 08:51:01 [crossfade:4] Before: ("title", "CBS Radio News")
2023/08/31 08:51:01 [crossfade:4] Before: ("filename", "/home/john/src/radio/cbsnews.mka")
2023/08/31 08:51:01 [crossfade:4] Before: ("temporary", "false")
2023/08/31 08:51:01 [crossfade:4] Before: ("source", "override")
2023/08/31 08:51:01 [decoder.ffmpeg:3] Requested content-type for "/home/john/src/radio/mez3/01 - Sandy Denny - Late November - 4.31.f9a474b1fd6d6da1f726da7bb20ecc98.mka": {audio=pcm(stereo)}
2023/08/31 08:51:01 [crossfade:4] Before: ("initial_uri", "annotate:liq_fade_in=\"0.0\",liq_fade_out=\"0.0\",liq_cross_duration=\"0.4\",title=\"CBS Radio News\",artist=\"CBS\":/home/john/src/radio/cbsnews.mka")
2023/08/31 08:51:01 [decoder.ffmpeg:3] FFmpeg recognizes "/home/john/src/radio/mez3/01 - Sandy Denny - Late November - 4.31.f9a474b1fd6d6da1f726da7bb20ecc98.mka" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/31 08:51:01 [crossfade:4] Before: ("liq_fade_out", "0.0")
2023/08/31 08:51:01 [decoder.ffmpeg:3] Decoded content-type for "/home/john/src/radio/mez3/01 - Sandy Denny - Late November - 4.31.f9a474b1fd6d6da1f726da7bb20ecc98.mka": {audio=pcm(stereo)}
2023/08/31 08:51:01 [crossfade:4] Before: ("encoder", "Lavc60.23.100 libfdk_aac")
2023/08/31 08:51:01 [crossfade:4] Before: ("status", "playing")
2023/08/31 08:51:01 [decoder:4] Selected decoder ffmpeg for file "/home/john/src/radio/mez3/01 - Sandy Denny - Late November - 4.31.f9a474b1fd6d6da1f726da7bb20ecc98.mka" with expected kind {audio=pcm(stereo)} and detected content {audio=pcm(stereo)}
2023/08/31 08:51:01 [crossfade:4] Before: ("on_air", "2023/08/31 08:48:15")
2023/08/31 08:51:01 [bc2-30DEC2020-complete_m3u8:4] Queued 1 requests
2023/08/31 08:51:01 [crossfade:4] Before: ("liq_fade_in", "0.0")
2023/08/31 08:51:01 [crossfade:4] Before: ("rid", "147")
2023/08/31 08:51:01 [crossfade:4] Before: ("duration", "00:02:47.099000000")
2023/08/31 08:51:01 [crossfade:4] After : ("replaygain_track_peak", "0.974642")
2023/08/31 08:51:01 [crossfade:4] After : ("album", "Music & Photos")
2023/08/31 08:51:01 [crossfade:4] After : ("longtail", "False")
2023/08/31 08:51:01 [crossfade:4] After : ("date", "2013")
2023/08/31 08:51:01 [crossfade:4] After : ("disc", "1/1")
2023/08/31 08:51:01 [crossfade:4] After : ("on_air_timestamp", "1693468261.00")
2023/08/31 08:51:01 [crossfade:4] After : ("kind", "{audio=pcm(stereo)}")
2023/08/31 08:51:01 [crossfade:4] After : ("artist", "Bob Dylan")
2023/08/31 08:51:01 [crossfade:4] After : ("decoder", "ffmpeg")
2023/08/31 08:51:01 [crossfade:4] After : ("liq_cross_duration", "7.690")
2023/08/31 08:51:01 [crossfade:4] After : ("title", "Sub Terranean Homesick Blues")
2023/08/31 08:51:01 [crossfade:4] After : ("liq_cue_in", "0.000")
2023/08/31 08:51:01 [crossfade:4] After : ("filename", "/home/john/src/radio/mez3/08 Sub Terranean Homesick Blues.ea2c29203f11368b85997c0ef532d26f.mka")
2023/08/31 08:51:01 [crossfade:4] After : ("temporary", "false")
2023/08/31 08:51:01 [crossfade:4] After : ("source", "bc2-30DEC2020-complete_m3u8")
2023/08/31 08:51:01 [crossfade:4] After : ("tracknumber", "08/21")
2023/08/31 08:51:01 [crossfade:4] After : ("initial_uri", "annotate:liq_cue_in=\"0.000\",liq_cross_duration=\"7.690\",duration=\"139.090\",liq_amplify=\"-11.900dB\":/home/john/src/radio/mez3/08 Sub Terranean Homesick Blues.ea2c29203f11368b85997c0ef532d26f.mka")
2023/08/31 08:51:01 [crossfade:4] After : ("encoder", "LAME3.99r")
2023/08/31 08:51:01 [crossfade:4] After : ("status", "playing")
2023/08/31 08:51:01 [crossfade:4] After : ("replaygain_track_gain", "-6.94 dB")
2023/08/31 08:51:01 [crossfade:4] After : ("tbpm", "85.94")
2023/08/31 08:51:01 [crossfade:4] After : ("on_air", "2023/08/31 08:51:01")
2023/08/31 08:51:01 [crossfade:4] After : ("loudness", "-11.100")
2023/08/31 08:51:01 [crossfade:4] After : ("rid", "146")
2023/08/31 08:51:01 [crossfade:4] After : ("genre", "Folk")
2023/08/31 08:51:01 [crossfade:4] After : ("duration", "139.090")
2023/08/31 08:51:01 [crossfade:4] After : ("album_artist", "Bob Dylan")
2023/08/31 08:51:01 [crossfade:4] After : ("liq_amplify", "-11.900dB")
2023/08/31 08:51:01 [crossfade:3] Simple transition: crossed, fade-in, fade-out.
2023/08/31 08:51:01 [source:4] Source source.443 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source.443:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source:4] Source audio.add.145 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [audio.add.145:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source:4] Source fade_in.290 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [fade_in.290:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source:4] Source fade_in.289 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [fade_in.289:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source:4] Source on_track.580 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [on_track.580:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source:4] Source on_metadata.290 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [on_metadata.290:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source:4] Source fade_in.289 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [fade_in.289:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source:4] Source on_track.580 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [on_track.580:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source:4] Source on_metadata.290 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [on_metadata.290:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source:4] Source on_track.579 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [on_track.579:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source:4] Source cross_after.145 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [cross_after.145:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source:4] Source buffer.290 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [buffer.290:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source:4] Source fade_out.290 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [fade_out.290:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source:4] Source fade_out.289 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [fade_out.289:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source:4] Source on_end.145 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [on_end.145:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source:4] Source on_track.578 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [on_track.578:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source:4] Source on_metadata.289 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [on_metadata.289:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source:4] Source on_track.577 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [on_track.577:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source:4] Source cross_before.145 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [cross_before.145:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [source:4] Source buffer.289 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:51:01 [buffer.289:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:51:01 [cross_before.145:4] New fade duration: 0.s.
2023/08/31 08:51:01 [cross_after.145:4] Fading in with type: sin and duration: 0.s.
2023/08/31 08:51:01 [buffer.289:4] End of track.
2023/08/31 08:51:01 [buffer.289:4] Buffer emptied, buffering needed.
2023/08/31 08:51:01 [cross_before.145:4] Fading out with type sin, duration: 0. and 0.s remaining.
2023/08/31 08:51:01 [buffer.290:4] End of track.
2023/08/31 08:51:01 [buffer.290:4] Buffer emptied, buffering needed.
2023/08/31 08:51:01 [source:4] Source source.443 gets down.
2023/08/31 08:51:01 [source:4] Source audio.add.145 gets down.
2023/08/31 08:51:01 [source:4] Source fade_in.290 gets down.
2023/08/31 08:51:01 [source:4] Source fade_in.289 gets down.
2023/08/31 08:51:01 [source:4] Source on_track.580 gets down.
2023/08/31 08:51:01 [source:4] Source on_metadata.290 gets down.
2023/08/31 08:51:01 [source:4] Source on_track.579 gets down.
2023/08/31 08:51:01 [source:4] Source cross_after.145 gets down.
2023/08/31 08:51:01 [source:4] Source buffer.290 gets down.
2023/08/31 08:51:01 [source:4] Source fade_out.290 gets down.
2023/08/31 08:51:01 [source:4] Source fade_out.289 gets down.
2023/08/31 08:51:01 [source:4] Source on_end.145 gets down.
2023/08/31 08:51:01 [source:4] Source on_track.578 gets down.
2023/08/31 08:51:01 [source:4] Source on_metadata.289 gets down.
2023/08/31 08:51:01 [source:4] Source on_end.145 gets down.
2023/08/31 08:51:01 [source:4] Source on_track.578 gets down.
2023/08/31 08:51:01 [source:4] Source on_metadata.289 gets down.
2023/08/31 08:51:01 [source:4] Source on_track.577 gets down.
2023/08/31 08:51:01 [source:4] Source cross_before.145 gets down.
2023/08/31 08:51:01 [source:4] Source buffer.289 gets down.
2023/08/31 08:51:01 [cross:4] Buffering end of track...
2023/08/31 08:51:02 [cross:4] More buffering will be needed.
[mp3float @ 0x7f3f2816fc80] Could not update timestamps for discarded samples.
2023/08/31 08:53:12 [decoder:2] Decoding "/home/john/src/radio/mez3/08 Sub Terranean Homesick Blues.ea2c29203f11368b85997c0ef532d26f.mka" ended: Ffmpeg_decoder.End_of_file.
2023/08/31 08:53:12 [decoder:4] Raised at Ffmpeg_decoder.mk_decoder.(fun).f in file "src/core/decoder/ffmpeg_decoder.ml", line 827, characters 12-29
2023/08/31 08:53:12 [decoder:4] Called from Decoder.mk_decoder.fill in file "src/core/decoder/decoder.ml", line 504, characters 10-31
2023/08/31 08:53:12 [decoder:4]
2023/08/31 08:53:13 [bc2-30DEC2020-complete_m3u8:4] Finished with "/home/john/src/radio/mez3/08 Sub Terranean Homesick Blues.ea2c29203f11368b85997c0ef532d26f.mka".
2023/08/31 08:53:13 [bc2-30DEC2020-complete_m3u8:4] Remaining 0 requests
2023/08/31 08:53:13 [bc2-30DEC2020-complete_m3u8:3] Prepared "/home/john/src/radio/mez3/01 - Sandy Denny - Late November - 4.31.f9a474b1fd6d6da1f726da7bb20ecc98.mka" (RID 148).
2023/08/31 08:53:13 [amplify.2:4] End of the current overriding.
2023/08/31 08:53:13 [cross:4] Setting crossfade duration to 30.00s
2023/08/31 08:53:13 [cue_cut:4] Cue points : 0.699977324263 / none
2023/08/31 08:53:13 [cue_cut:3] Cueing in...
2023/08/31 08:53:13 [decoder:4] Available decoders: ffmpeg (priority: 10)
2023/08/31 08:53:13 [decoder:4] Trying decoder "ffmpeg"
2023/08/31 08:53:13 [decoder.ffmpeg:3] Requested content-type for "/home/john/src/radio/mez3/11-runaway people.dfd215a80d1f85fdb5da3621bf615cb5.mka": {audio=pcm(stereo)}
2023/08/31 08:53:13 [decoder.ffmpeg:3] FFmpeg recognizes "/home/john/src/radio/mez3/11-runaway people.dfd215a80d1f85fdb5da3621bf615cb5.mka" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2023/08/31 08:53:13 [decoder.ffmpeg:3] Decoded content-type for "/home/john/src/radio/mez3/11-runaway people.dfd215a80d1f85fdb5da3621bf615cb5.mka": {audio=pcm(stereo)}
2023/08/31 08:53:13 [decoder:4] Selected decoder ffmpeg for file "/home/john/src/radio/mez3/11-runaway people.dfd215a80d1f85fdb5da3621bf615cb5.mka" with expected kind {audio=pcm(stereo)} and detected content {audio=pcm(stereo)}
2023/08/31 08:53:13 [bc2-30DEC2020-complete_m3u8:4] Queued 1 requests
2023/08/31 08:53:13 [amplify.2:4] Overriding amplification: 0.266073.
2023/08/31 08:53:13 [cross:4] Overriding crossfade duration from metadata liq_cross_duration
2023/08/31 08:53:13 [cross:4] Setting crossfade duration to 7.44s
2023/08/31 08:53:13 [cross:3] Analysis: -52.025294dB / -97.128969dB (7.68s / 7.68s)
2023/08/31 08:53:13 [crossfade:4] Before: ("replaygain_track_peak", "0.974642")
2023/08/31 08:53:13 [crossfade:4] Before: ("album", "Music & Photos")
2023/08/31 08:53:13 [crossfade:4] Before: ("longtail", "False")
2023/08/31 08:53:13 [crossfade:4] Before: ("date", "2013")
2023/08/31 08:53:13 [crossfade:4] Before: ("disc", "1/1")
2023/08/31 08:53:13 [crossfade:4] Before: ("on_air_timestamp", "1693468261.00")
2023/08/31 08:53:13 [crossfade:4] Before: ("kind", "{audio=pcm(stereo)}")
2023/08/31 08:53:13 [crossfade:4] Before: ("artist", "Bob Dylan")
2023/08/31 08:53:13 [crossfade:4] Before: ("decoder", "ffmpeg")
2023/08/31 08:53:13 [crossfade:4] Before: ("liq_cross_duration", "7.690")
2023/08/31 08:53:13 [crossfade:4] Before: ("title", "Sub Terranean Homesick Blues")
2023/08/31 08:53:13 [crossfade:4] Before: ("liq_cue_in", "0.000")
2023/08/31 08:53:13 [crossfade:4] Before: ("filename", "/home/john/src/radio/mez3/08 Sub Terranean Homesick Blues.ea2c29203f11368b85997c0ef532d26f.mka")
2023/08/31 08:53:13 [crossfade:4] Before: ("temporary", "false")
2023/08/31 08:53:13 [crossfade:4] Before: ("source", "bc2-30DEC2020-complete_m3u8")
2023/08/31 08:53:13 [crossfade:4] Before: ("tracknumber", "08/21")
2023/08/31 08:53:13 [crossfade:4] Before: ("initial_uri", "annotate:liq_cue_in=\"0.000\",liq_cross_duration=\"7.690\",duration=\"139.090\",liq_amplify=\"-11.900dB\":/home/john/src/radio/mez3/08 Sub Terranean Homesick Blues.ea2c29203f11368b85997c0ef532d26f.mka")
2023/08/31 08:53:13 [crossfade:4] Before: ("encoder", "LAME3.99r")
2023/08/31 08:53:13 [crossfade:4] Before: ("status", "playing")
2023/08/31 08:53:13 [crossfade:4] Before: ("replaygain_track_gain", "-6.94 dB")
2023/08/31 08:53:13 [crossfade:4] Before: ("tbpm", "85.94")
2023/08/31 08:53:13 [crossfade:4] Before: ("on_air", "2023/08/31 08:51:01")
2023/08/31 08:53:13 [crossfade:4] Before: ("loudness", "-11.100")
2023/08/31 08:53:13 [crossfade:4] Before: ("rid", "146")
2023/08/31 08:53:13 [crossfade:4] Before: ("genre", "Folk")
2023/08/31 08:53:13 [crossfade:4] Before: ("duration", "139.090")
2023/08/31 08:53:13 [crossfade:4] Before: ("album_artist", "Bob Dylan")
2023/08/31 08:53:13 [crossfade:4] Before: ("liq_amplify", "-11.900dB")
2023/08/31 08:53:13 [crossfade:4] After : ("replaygain_track_peak", "1.056343")
2023/08/31 08:53:13 [crossfade:4] After : ("composer", "Sandy Denny")
2023/08/31 08:53:13 [crossfade:4] After : ("album", "The North Star Grassman and the Ravens")
2023/08/31 08:53:13 [crossfade:4] After : ("longtail", "False")
2023/08/31 08:53:13 [crossfade:4] After : ("date", "1971")
2023/08/31 08:53:13 [crossfade:4] After : ("disc", "1/1")
2023/08/31 08:53:13 [crossfade:4] After : ("on_air_timestamp", "1693468393.00")
2023/08/31 08:53:13 [crossfade:4] After : ("encoded_by", "dBpoweramp Release 14.2")
2023/08/31 08:53:13 [crossfade:4] After : ("kind", "{audio=pcm(stereo)}")
2023/08/31 08:53:13 [crossfade:4] After : ("artist", "Sandy Denny")
2023/08/31 08:53:13 [crossfade:4] After : ("decoder", "ffmpeg")
2023/08/31 08:53:13 [crossfade:4] After : ("accurateripdiscid", "015-001f879b-01639723-cd0d6d0f-1")
2023/08/31 08:53:13 [crossfade:4] After : ("liq_cross_duration", "7.440")
2023/08/31 08:53:13 [crossfade:4] After : ("title", "Late November")
2023/08/31 08:53:13 [crossfade:4] After : ("liq_cue_in", "0.700")
2023/08/31 08:53:13 [crossfade:4] After : ("filename", "/home/john/src/radio/mez3/01 - Sandy Denny - Late November - 4.31.f9a474b1fd6d6da1f726da7bb20ecc98.mka")
2023/08/31 08:53:13 [crossfade:4] After : ("publisher", "Island")
2023/08/31 08:53:13 [crossfade:4] After : ("accurateripresult", "AccurateRip: Not in database   Secure: Yes   [7151F09B]")
2023/08/31 08:53:13 [crossfade:4] After : ("temporary", "false")
2023/08/31 08:53:13 [crossfade:4] After : ("source", "bc2-30DEC2020-complete_m3u8")
2023/08/31 08:53:13 [crossfade:4] After : ("tracknumber", "1/15")
2023/08/31 08:53:13 [crossfade:4] After : ("initial_uri", "annotate:liq_cue_in=\"0.700\",liq_cross_duration=\"7.440\",duration=\"271.640\",liq_amplify=\"-11.500dB\":/home/john/src/radio/mez3/01 - Sandy Denny - Late November - 4.31.f9a474b1fd6d6da1f726da7bb20ecc98.mka")
2023/08/31 08:53:13 [crossfade:4] After : ("catalog_#", "Universal- Records L")
2023/08/31 08:53:13 [crossfade:4] After : ("tmed", "CD (Lossless)")
2023/08/31 08:53:13 [crossfade:4] After : ("encoder", "LAME3.98r")
2023/08/31 08:53:13 [crossfade:4] After : ("status", "playing")
2023/08/31 08:53:13 [crossfade:4] After : ("replaygain_track_gain", "-6.51 dB")
2023/08/31 08:53:13 [crossfade:4] After : ("tbpm", "75.48")
2023/08/31 08:53:13 [crossfade:4] After : ("on_air", "2023/08/31 08:53:13")
2023/08/31 08:53:13 [crossfade:4] After : ("loudness", "-11.500")
2023/08/31 08:53:13 [crossfade:4] After : ("rid", "148")
2023/08/31 08:53:13 [crossfade:4] After : ("genre", "Folk")
2023/08/31 08:53:13 [crossfade:4] After : ("duration", "271.640")
2023/08/31 08:53:13 [crossfade:4] After : ("album_artist", "Sandy Denny")
2023/08/31 08:53:13 [crossfade:4] After : ("liq_amplify", "-11.500dB")
2023/08/31 08:53:13 [crossfade:3] Simple transition: crossed, fade-in, fade-out.
2023/08/31 08:53:13 [source:4] Source source.446 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:53:13 [source.446:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:53:13 [source:4] Source audio.add.146 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:53:13 [audio.add.146:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:53:13 [source:4] Source fade_in.292 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:53:13 [fade_in.292:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:53:13 [source:4] Source fade_in.291 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:53:13 [fade_in.291:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:53:13 [source:4] Source on_track.584 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:53:13 [on_track.584:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:53:13 [source:4] Source on_metadata.292 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:53:13 [on_metadata.292:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:53:13 [source:4] Source on_track.583 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:53:13 [on_track.583:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:53:13 [source:4] Source cross_after.146 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:53:13 [cross_after.146:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:53:13 [source:4] Source buffer.292 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:53:13 [buffer.292:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:53:13 [source:4] Source fade_out.292 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:53:13 [fade_out.292:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:53:13 [source:4] Source fade_out.291 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:53:13 [fade_out.291:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:53:13 [source:4] Source on_end.146 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:53:13 [on_end.146:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:53:13 [source:4] Source on_track.582 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:53:13 [on_track.582:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:53:13 [source:4] Source on_metadata.291 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:53:13 [on_metadata.291:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:53:13 [source:4] Source on_track.581 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:53:13 [on_track.581:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:53:13 [source:4] Source cross_before.146 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:53:13 [cross_before.146:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:53:13 [source:4] Source buffer.291 gets up with content type: {audio=pcm(stereo)}.
2023/08/31 08:53:13 [buffer.291:3] Content type is {audio=pcm(stereo)}.
2023/08/31 08:53:13 [cross_after.146:4] Fading in with type: sin and duration: 0.s.
2023/08/31 08:53:20 [buffer.291:4] End of track.
2023/08/31 08:53:20 [buffer.291:4] Buffer emptied, buffering needed.
2023/08/31 08:53:20 [cross_before.146:4] Fading out with type sin, duration: 0. and 0.s remaining.
2023/08/31 08:53:21 [buffer.292:4] End of track.
2023/08/31 08:53:21 [buffer.292:4] Buffer emptied, buffering needed.
2023/08/31 08:53:21 [source:4] Source source.446 gets down.
2023/08/31 08:53:21 [source:4] Source audio.add.146 gets down.
2023/08/31 08:53:21 [source:4] Source fade_in.292 gets down.
2023/08/31 08:53:21 [source:4] Source fade_in.291 gets down.
2023/08/31 08:53:21 [source:4] Source on_track.584 gets down.
2023/08/31 08:53:21 [source:4] Source on_metadata.292 gets down.
2023/08/31 08:53:21 [source:4] Source on_track.583 gets down.
2023/08/31 08:53:21 [source:4] Source cross_after.146 gets down.
2023/08/31 08:53:21 [source:4] Source buffer.292 gets down.
2023/08/31 08:53:21 [source:4] Source fade_out.292 gets down.
2023/08/31 08:53:21 [source:4] Source fade_out.291 gets down.
2023/08/31 08:53:21 [source:4] Source on_end.146 gets down.
2023/08/31 08:53:21 [source:4] Source on_track.582 gets down.
2023/08/31 08:53:21 [source:4] Source on_metadata.291 gets down.
2023/08/31 08:53:21 [source:4] Source on_track.581 gets down.
2023/08/31 08:53:21 [source:4] Source cross_before.146 gets down.
2023/08/31 08:53:21 [source:4] Source buffer.291 gets down.
2023/08/31 08:53:21 [cross:4] Buffering end of track...
2023/08/31 08:53:21 [cross:4] More buffering will be needed.
[mp3float @ 0x7f3f2816fc80] Could not update timestamps for discarded samples.
2023/08/31 08:57:35 [decoder:2] Decoding "/home/john/src/radio/mez3/01 - Sandy Denny - Late November - 4.31.f9a474b1fd6d6da1f726da7bb20ecc98.mka" ended: Ffmpeg_decoder.End_of_file.
2023/08/31 08:57:35 [decoder:4] Raised at Ffmpeg_decoder.mk_decoder.(fun).f in file "src/core/decoder/ffmpeg_decoder.ml", line 827, characters 12-29
2023/08/31 08:57:35 [decoder:4] Called from Decoder.mk_decoder.fill in file "src/core/decoder/decoder.ml", line 504, characters 10-31
2023/08/31 08:57:35 [decoder:4]
2023/08/31 08:57:36 [bc2-30DEC2020-complete_m3u8:4] Finished with "/home/john/src/radio/mez3/01 - Sandy Denny - Late November - 4.31.f9a474b1fd6d6da1f726da7bb20ecc98.mka".
2023/08/31 08:57:36 [bc2-30DEC2020-complete_m3u8:4] Remaining 0 requests
2023/08/31 08:57:36 [bc2-30DEC2020-complete_m3u8:3] Prepared "/home/john/src/radio/mez3/11-runaway people.dfd215a80d1f85fdb5da3621bf615cb5.mka" (RID 149).
2023/08/31 08:57:36 [amplify.2:4] End of the current overriding.
2023/08/31 08:57:36 [cross:4] Setting crossfade duration to 30.00s
2023/08/31 08:57:36 [cue_cut:4] Cue points : none / none
2023/08/31 08:57:36 [cue_cut:3] Cueing in...
2023/08/31 08:57:36 [amplify.2:4] Overriding amplification: 0.354813.
2023/08/31 08:57:36 [cross:4] Overriding crossfade duration from metadata liq_cross_duration
Moonbase59 commented 1 year ago

Testing Liquidsoap 2.3.0+git@3dbbdc994 (.deb from main) in AzuraCast, let’s see.

Moonbase59 commented 1 year ago

First hit of an interrupting, non-track-sensitive playlist entry succeded (20:00 TOTH announcement). Let’s cross our fingers that #3181 might be fixed…

Nice side effect of all these unpleasantries: I listen to my own station more often and rediscover music long forgotten… hee, hee. :grin:

toots commented 1 year ago

We found and fixed a pretty subtile yet bad bug where the muxer (used in a lot of operators now with tracks) was leaking audio. This might definitely have caused this issue.

Would y'all be able to test the latest rolling release: https://github.com/savonet/liquidsoap/releases/tag/rolling-release-v2.2.x ?

@Moonbase59 the TTS drift was definitely cause by this and is fixed now!

Warblefly commented 1 year ago

Thank you for looking at this. Compiling from Github now and switching.

Moonbase59 commented 1 year ago

Tagging @BusterNeece for AzuraCast.

Thanks all for bughunting & @toots for finding & fixing. Have been listening for ~3 hours now, so far all good. One step further!

Moonbase59 commented 1 year ago

@toots: 3dbbdc9 not yet perfect: Crossfade garble gone, but both audio & video streams produce dropouts, and the system shows high CPU spikes at that time. That worked in the version before (de9dc76), and I could watch audio/video streams for hours without dropouts, on misc. browsers, KODI, and misc. audio players.

Arbeitsfläche 1_025

Arbeitsfläche 1_026

Guess something’s "running off" and gets resynced, or the like?

Moonbase59 commented 1 year ago

@Warblefly How’s testing on your end?

Moonbase59 commented 1 year ago

Hm. Spent the whole night with that, almost 5 a.m. now, maybe I’m getting a little tired. Seems there must be some subtle difference with AzuraCast’s Reload (reloads config apparently, states as "supported", which I used) and Restart (which actually stops and starts Liquidsoap).

Seems Restart did bring me back to acceptable CPU levels, no dropouts so far. I’ll start it again for a few hours after sleeping… ’Nite y’all.

Arbeitsfläche 1_029

Warblefly commented 1 year ago

@Warblefly How’s testing on your end?

Thank you for asking. I set the system running at 2100UTC and will be listening to it again in about twenty minutes from now.

BusterNeece commented 1 year ago

Hm. Spent the whole night with that, almost 5 a.m. now, maybe I’m getting a little tired. Seems there must be some subtle difference with AzuraCast’s Reload (reloads config apparently, states as "supported", which I used) and Restart (which actually stops and starts Liquidsoap).

@Moonbase59 The difference on AzuraCast's side between "Reload" and "Restart" is solely on the broadcasting frontend side (i.e. Icecast). If you reload, we send a signal to refresh the config in-place without disconnecting listeners. In both cases, we fully restart the AutoDJ as there's no way for us to in-place reload config.

BusterNeece commented 1 year ago

Also, AzuraCast Rolling Release updated to include latest LS RR.

Warblefly commented 1 year ago

Latest rolling-release-2.2.x working as expected here. THANK YOU!

After twelve hours, injected audio still plays as it should, with the tiny overlaps as programmed, and no unexpected interruptions of either stream fed from the same playlist, via the two FFmpeg encoders and processing chains.

http://warblefly.sytes.net:8000/live.m3u8 for the low bandwidth stream.

CPU is still as expected, no spikes that I can see.

This is, of course, an audio only pair of streams.

I'm leaving it running now. Will report later; must do some site visits.

Warblefly commented 1 year ago

Sorry, wrong link. Plain http. Been running for about thirteen hours now. News audio injected twice per hour via telnet request mechanism.

http://warblefly.sytes.net:8000/live.m3u8

Moonbase59 commented 1 year ago

Thanks @BusterNeece for the explanation, always wanted to know. Odd that wasn’t enough to reload then (looking at LS after all, Icecast didn’t show visible irregularities).

Station has been playing for ~5 hours now, and I’m at load averages of 2.5–3.5 again, and dropouts of 0,5–1s every 8–15s on both audio & video streams. This even affects the second video stream, which is only a test image, really:

# PAL 16:9 Testbild mit 1 kHz Ton, -23 dB

testbild_v = image(station_base_dir ^ "/media/videostream/Nite Radio Testbild.png")
testbild_a = sine(amplitude=lin_of_dB(-23.0), 1000.0)
testbild = mksafe(mux_video(video=testbild_v, testbild_a))

output.icecast(%ffmpeg(format="mpegts",
  %audio(
    codec="aac",
    samplerate=44100,
    channels=2,
    b="192k",
    profile="aac_low"
  ),
  %video(codec="libx264",g="50",
    maxrate="8000k",bufsize="16000k",
    preset="ultrafast", tune="zerolatency")),
    id="testbild", host = "127.0.0.1", port = 8000, password = "(PASSWORD)", mount = "/testbild.m2t", name = "Nite Radio", description = "Non-public test & evaluation server only", genre = "Various", url = "https://example.com/public/niteradio", public = false, encoding = "UTF-8", send_icy_metadata=true, testbild)

So we have something that builds up over time, and wasn’t there in versions before. Except for the "insert garble", the older versions could run all streams for days without any (other) problems or unexpected CPU spikes, and load averages of 0.8–1.8, heavily depending on video content, of course.

(I am pushing the limits here intentionally for testing, using fast-moving VJ loop 1080p30 source material plus the overlaying and API calls, with carefully tuned output encoding, to generate a 720p25 stream, and see what a station owner can actually do with moderate resources.)


@Warblefly Good to hear! I’ve also had no glitches on my inserts anymore (mostly interrupting TOTH announcement).


@toots Maybe still some muxer or clock prob? Too bad it always takes some time to show up…

I’d be prepared to follow one of the following strategies to assist further testing, since I might have a system pushing things to several limits: 157k songs over NFS mount, 61 playlists, custom xfade, 5 audio + 2 video streams, extra input harbor for DJ webcam, etc.

  1. Leave all as is (LS 2.3.0+git@3dbbdc994), but do whatever extra debugging needed (and easily possible), like increasing log level, gdb, whatever.
  2. Leave all as is (because it worked before), just replacing the LS (Ubuntu jammy .deb) inside the AzuraCast Docker container.
  3. Upgrade to current AzuraCast rolling, for a cross-check, and re-test (that would use LS 2.2.1+git@46968a5ac).
  4. Get rid of all my extra video and Firefox test stream code and re-test with "normal" AzuraCast audio streams only (1xMP3 128k, 1xAAC 128k, 1xHLS).

@toots Which do you suggest, or what else would you like me to do?

Moonbase59 commented 1 year ago

Still watching the badly corrupt video stream on a TV using KODI 20.1 here: An interesting effect just developed: Every few seconds, it looks like the video is sped up (like fast-forwarding) then retirns to normal speed again. (Rather funny, actually, watching steam rollers on the Great Dorset Steam Fair suddenly jumping in speed…)

(This is something KODI does if video streams can’t keep up with frame rate/have missing frames.)

toots commented 1 year ago

Hi there. I'm gonna stick with the original report here and mark this issue as closed. Please feel free to open a separate issue for anything else y'all need us to pay attention to. Thanks!