Hi all,
I'm using an instance of Liquidsoap for a studio-to-transmitter link running for 72 hours.

I get the audio with a USB soundcard connected to a PC with Stretch (encoder), liquidsoap writes on the HDD, streams to a RaspberryPi on LAN (decoder), and to a distant server (webradio). Every (+/-) 106 minutes i get a message that the buffers are emptied. I read on this mailing list that is due to my cheap soundcard not sampling at exactly 44.1kHz.
So when it occurs, i have a 1sec blank, that is not a big problem to me..

But, I have a second problem, and I don't know if it's related : I got a "We must catchup 10.44 seconds!"
And on the audio on the decoder I got a 11sec blank.. (11:22:33 - 11:22:43)

Do you think these problems are related, and do you have an idea how can I avoid that catchup problem please ?

Thanks !
Yann

encoder.liq :
    radio = input.alsa(id="alsain",device='plughw:1,0')

    # encoders
    mp3 = %mp3(bitrate=128)
    opus = %opus(bitrate=128,channels=2)

    # file
    output.file(mp3,
'/home/primitive/recorded/%Y-%m-%d/%Y-%m-%d-%H_%M_%S.mp3',
                reopen_when={0m0s},
                radio
               )

    # decoder (raspi on LAN)
    clock.assign_new(id="stlclock",
                    [output.icecast(opus,
                            host="192.168.1.251",
                            port=8081,
                            password="pass",
                            mount="primitive",
mksafe(id="stlsafe",buffer(id="stlbuf", radio))
                    )])

    # webradio (distant server)
    clock.assign_new(id="webclock",
                    [output.icecast(opus,
                            host="185.x.y.z",
                            port=8080,
                            password="pass",
                            mount="primitive",
mksafe(id="websafe",buffer(id="webbuf", buffer=1.0, max=2.0, radio))
                    )])

decoder.liq :
    encoder = input.harbor("primitive",port=8081,password="pass",buffer=2.,max=20.)
    encoder = mksafe(id="stlsafe",encoder)
    encoder = buffer.adaptative(id="stlbuf", reset=true, encoder)
    output.dummy(fallible=true,encoder)
    output.alsa(device='plughw:1,0',encoder)


encoder.log :
    2019/01/14 10:00:00 [/home/primitive/recorded/%Y-%m-%d/%Y-%m-%d-%H_%M_%S(dot)mp3:3] Re-opening output pipe...
    2019/01/14 10:40:29 [webbuf:3] Buffer emptied, start buffering...
    2019/01/14 10:40:29 [websafe:3] Switch to safe_blank with transition.
    2019/01/14 10:40:30 [websafe:3] Switch to webbuf with transition.
    2019/01/14 10:42:22 [stlbuf:3] Buffer emptied, start buffering...
    2019/01/14 10:42:22 [stlsafe:3] Switch to safe_blank with transition.
    2019/01/14 10:42:23 [stlsafe:3] Switch to stlbuf with transition.
    2019/01/14 11:00:00 [/home/primitive/recorded/%Y-%m-%d/%Y-%m-%d-%H_%M_%S(dot)mp3:3] Re-opening output pipe...     2019/01/14 11:22:43 [clock.wallclock_stlclock:2] We must catchup 10.44 seconds!
    2019/01/14 11:22:43 [stlbuf:3] Buffer emptied, start buffering...
    2019/01/14 11:22:43 [stlsafe:3] Switch to safe_blank with transition.
    2019/01/14 11:22:44 [stlsafe:3] Switch to stlbuf with transition.
    2019/01/14 12:00:00 [/home/primitive/recorded/%Y-%m-%d/%Y-%m-%d-%H_%M_%S(dot)mp3:3] Re-opening output pipe...
    2019/01/14 12:26:26 [webbuf:3] Buffer emptied, start buffering...
    2019/01/14 12:26:26 [websafe:3] Switch to safe_blank with transition.
    2019/01/14 12:26:27 [websafe:3] Switch to webbuf with transition.
    2019/01/14 13:00:00 [/home/primitive/recorded/%Y-%m-%d/%Y-%m-%d-%H_%M_%S(dot)mp3:3] Re-opening output pipe...
    2019/01/14 13:11:53 [stlbuf:3] Buffer emptied, start buffering...
    2019/01/14 13:11:53 [stlsafe:3] Switch to safe_blank with transition.
    2019/01/14 13:11:54 [stlsafe:3] Switch to stlbuf with transition.
    2019/01/14 14:00:00 [/home/primitive/recorded/%Y-%m-%d/%Y-%m-%d-%H_%M_%S(dot)mp3:3] Re-opening output pipe...

decoder.log :
    2019/01/14 11:22:32 [input(dot)harbor_6286:4] End of track.
    2019/01/14 11:22:32 [input(dot)harbor_6286:4] Buffer emptied, buffering needed.     2019/01/14 11:22:32 [stlsafe:3] Switch to safe_blank with forgetful transition.     2019/01/14 11:22:32 [input(dot)harbor_6286:4] Activations changed: static=[], dynamic=[stlsafe:buffer_6291:buffer_6291].     2019/01/14 11:22:32 [safe_blank:4] Activations changed: static=[stlsafe:buffer_6291:buffer_6291], dynamic=[stlsafe:buffer_6291:buffer_6291].
    2019/01/14 11:22:35 [source:4] Garbage collected empty_6350.
    2019/01/14 11:22:43 [stlsafe:3] Switch to input(dot)harbor_6286 with transition.     2019/01/14 11:22:43 [safe_blank:4] Activations changed: static=[], dynamic=[stlsafe:buffer_6291:buffer_6291].     2019/01/14 11:22:43 [input(dot)harbor_6286:4] Activations changed: static=[stlsafe:buffer_6291:buffer_6291], dynamic=[stlsafe:buffer_6291:buffer_6291].




_______________________________________________
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users

Reply via email to