Hello,

Thank you for all the work on this project.

As I convert to Liquidsoap 2.0.0, I might be losing metadata through an
FFmpeg filter.

In the script, there is a function to implement some of my FFmpeg loudness
adjustment filters that previously were in the output pipe.

But metadata goes missing. Taking this function out successfully restores
metadata.

What is the correct way to let metadata get to the Icecast stream that this
script eventually outputs?

Am I losing it because the conversion to 'raw' discards the metadata,
leaving only the audio?

Here is the audio processor, followed by a wrapper using the
ffmpeg.raw.encode.audio function to enter the processing, and the
ffmpeg.raw.decode.audio function to leave the processing.

def audio_process(s) =
  def mkfilter(graph) =
    s = ffmpeg.filter.audio.input(graph, s)
    s = ffmpeg.filter.dynaudnorm(graph, s, gausssize=25, correctdc=true,
altboundary=true, maxgain=12., targetrms=1.)
    s = ffmpeg.filter.aresample(graph, s, sample_rate=192000)
    s = ffmpeg.filter.alimiter(graph, s, limit=0.95, attack=5.,
release=80., asc=true, asc_level=1.)
    s = ffmpeg.filter.aresample(graph, s, sample_rate=48000)
    ffmpeg.filter.audio.output(graph, s)
  end
  ffmpeg.filter.create(mkfilter)
end

def audio_process_wrap(s) =
  a = ffmpeg.raw.encode.audio(%ffmpeg(%audio.raw), s)
  a = audio_process(a)
  ffmpeg.raw.decode.audio(a)
end

with best wishes,
John
_______________________________________________
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users

Reply via email to