1

我最近一直在使用liquidsoap,试图为在线广播电台设置自动流媒体。到目前为止一切正常,除了我需要一种方法让所有文件具有相同的响度,因为它们将来自许多不同的人,并且将跨越至少五个十年的发布日期,所以我期待他们掌握许多不同的响度级别。

问题是,当我尝试添加任何提供enable_replaygain_metadata()的 ReplayGain 实现(和replay_gain:-protocol)时,我得到了Source failed (no more tracks) stopping output...,即使我实际上没有使用任何 ReplayGain 值。

我已经检查了相关脚本 ( /usr/lib/liquidsoap/1.1.1/extract-replaygain) 和脚本 ( ) 调用的二进制文件mp3gain,它们都返回了我期望的结果。

但是,由于两者enable_replaygain_metadata()replay_gain:-protocol 都没有很好的记录,我不知道他们实际期望什么样的返回值,或者他们的行为应该是什么。而且由于我找不到有关原因的任何有用信息,因此到目前为止,在线搜索解决方案相对没有结果,我发现的所有信息都告诉我这个问题不应该发生。

对此问题的任何帮助将不胜感激。


操作系统:Ubuntu 16.04

液体皂版本:1.1.1

mp3gain 版本:1.5.2


工作脚本:(./Auto-DJ包含66个目录共1045个文件,均为mp3)

# Log dir
set("log.file",false)
set("log.stdout",true)
set("log.level",4)

# Music
tracks = playlist("./Auto-DJ")

#Play on a Timer
timer = switch([({ 12h-24h }, tracks)])

# Start building the feed with music
stream = smart_crossfade(
    start_next = 2.0, 
    fade_in = 0.0, 
    fade_out = 0.0, 
    high = -9.0, 
    medium = -15.0, 
    margin = 120.0, 
    width= 0.05, 
    timer)

# Stream it out

output.icecast(
    %mp3.vbr(
        stereo=true, 
        stereo_mode="joint_stereo", 
        samplerate=44100, 
        internal_quality=0, 
        quality = 0, 
        id3v2 = true
    ), 
    fallible = true, 
    format = "audio/mpeg", 
    genre = "Rock", 
    host = "192.168.127.2", 
    mount="/stream", 
    port = 8000,
    password = "hackme", 
    timeout = 30.0, 
    stream)

enable_replaygain_metadata()之前添加的liquidsoap日志tracks = playlist(".")

2016/10/07 14:01:12 >>> LOG START
2016/10/07 14:01:11 [protocols.external:3] Found "/usr/bin/wget".
2016/10/07 14:01:11 [main:3] Liquidsoap 1.1.1
2016/10/07 14:01:11 [main:3] Using: graphics=[distributed with Ocaml] pcre=7.0.4 dtools=0.3.1 duppy=0.5.1 duppy.syntax=0.5.1 cry=0.2.2 mm=0.2.1 xmlplaylist=0.1.3 lastfm=0.3.0 ogg=0.4.5 vorbis=0.6.1 opus=0.1.0 speex=0.2.0 mad=0.4.4 flac=0.1.1 flac.ogg=0.1.1 dynlink=[distributed with Ocaml] lame=0.3.2 shine=0.2.0 gstreamer=0.2.0 frei0r=0.1.0 voaacenc=0.1.0 theora=0.3.0 schroedinger=0.1.0 gavl=0.1.5 bjack=0.1.4 alsa=0.2.1 ao=0.2.0 samplerate=0.1.2 taglib=0.3.1 magic=0.7.3 camomile=0.8.4 inotify=1.0 faad=0.3.2 soundtouch=0.1.7 portaudio=0.2.0 pulseaudio=0.1.2 ladspa=0.1.4 dssi=0.1.1 sdl=0.9.1 camlimages=4.2.0 lo=0.1.0 yojson=1.2.3 gd=1.0a5
2016/10/07 14:01:11 [dynamic.loader:3] Could not find dynamic module for fdkaac encoder.
2016/10/07 14:01:11 [dynamic.loader:3] Could not find dynamic module for aacplus encoder.
2016/10/07 14:01:11 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/voaacenc.cmxs.
2016/10/07 14:01:11 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/shine.cmxs.
2016/10/07 14:01:11 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/sdl.cmxs.
2016/10/07 14:01:11 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/soundtouch.cmxs.
2016/10/07 14:01:11 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/samplerate.cmxs.
2016/10/07 14:01:11 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/pulseaudio.cmxs.
2016/10/07 14:01:11 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/oss.cmxs.
2016/10/07 14:01:11 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/mad.cmxs.
2016/10/07 14:01:11 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/lo.cmxs.
2016/10/07 14:01:11 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/portaudio.cmxs.
2016/10/07 14:01:11 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/lame.cmxs.
2016/10/07 14:01:11 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/bjack.cmxs.
2016/10/07 14:01:11 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/cry.cmxs.
2016/10/07 14:01:11 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/gstreamer.cmxs.
2016/10/07 14:01:11 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/xmlplaylist.cmxs.
2016/10/07 14:01:11 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/gd.cmxs.
2016/10/07 14:01:11 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/gavl.cmxs.
2016/10/07 14:01:11 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/frei0r.cmxs.
2016/10/07 14:01:12 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/flac.cmxs.
2016/10/07 14:01:12 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/ogg.cmxs.
2016/10/07 14:01:12 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/faad.cmxs.
2016/10/07 14:01:12 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/ladspa.cmxs.
2016/10/07 14:01:12 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/graphics.cmxs.
2016/10/07 14:01:12 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/ao.cmxs.
2016/10/07 14:01:12 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/alsa.cmxs.
2016/10/07 14:01:12 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/camlimages.cmxs.
2016/10/07 14:01:12 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/dssi.cmxs.
2016/10/07 14:01:12 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/flac_ogg.cmxs.
2016/10/07 14:01:12 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/lastfm.cmxs.
2016/10/07 14:01:12 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/opus.cmxs.
2016/10/07 14:01:12 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/schroedinger.cmxs.
2016/10/07 14:01:12 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/speex.cmxs.
2016/10/07 14:01:12 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/taglib.cmxs.
2016/10/07 14:01:12 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/theora.cmxs.
2016/10/07 14:01:12 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/vorbis.cmxs.
2016/10/07 14:01:12 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz master.
2016/10/07 14:01:12 [frame:3] Frame size must be a multiple of 1764 ticks = 1764 audio samples = 1 video samples.
2016/10/07 14:01:12 [frame:3] Targetting 'frame.duration': 0.04s = 1764 audio samples = 1764 ticks.
2016/10/07 14:01:12 [frame:3] Frames last 0.04s = 1764 audio samples = 1 video samples = 1764 ticks.
2016/10/07 14:01:12 [video.converter:4] Using preferred video converter: gavl.
2016/10/07 14:01:12 [audio.converter:4] Using preferred samplerate converter: libsamplerate.
2016/10/07 14:01:12 [threads:3] Created thread "generic queue #1".
2016/10/07 14:01:12 [threads:3] Created thread "generic queue #2".
2016/10/07 14:01:12 [clock:4] Currently 2 clocks allocated.
2016/10/07 14:01:12 [clock.wallclock_main:4] Starting 1 sources...
2016/10/07 14:01:12 [source:4] Source output.icecast_6366 gets up.
2016/10/07 14:01:12 [source:4] Source smart_cross_6361 gets up.
2016/10/07 14:01:12 [source:4] Source switch_6359 gets up.
2016/10/07 14:01:12 [source:4] Source playlist_6357 gets up.
2016/10/07 14:01:12 [playlist-(dot):3] Loading playlist...
2016/10/07 14:01:12 [playlist-(dot):3] Playlist is a directory.
2016/10/07 14:01:12 [playlist-(dot):3] Successfully loaded a playlist of 1045 tracks.
2016/10/07 14:01:12 [playlist-(dot):4] Content kind is {audio=2;video=0;midi=0}.
2016/10/07 14:01:12 [playlist-(dot):4] Activations changed: static=[], dynamic=[switch_6359:smart_cross_6361].
2016/10/07 14:01:12 [switch_6359:4] Activations changed: static=[], dynamic=[smart_cross_6361].
2016/10/07 14:01:12 [switch_6359:4] Activations changed: static=[smart_cross_6361], dynamic=[smart_cross_6361].
2016/10/07 14:01:12 [smart_cross_6361:4] Activations changed: static=[/stream:/stream], dynamic=[].
2016/10/07 14:01:12 [decoder:4] Trying method "META" for "./Apocalyptica/Fade To Black.mp3"...
2016/10/07 14:01:12 [decoder:4] Trying method "WAV" for "./Apocalyptica/Fade To Black.mp3"...
2016/10/07 14:01:12 [/stream:4] Activations changed: static=[/stream], dynamic=[].
2016/10/07 14:01:12 [/stream:4] Enabling caching mode: active source.
2016/10/07 14:01:12 [decoder.wav:4] Invalid MIME type for "./Apocalyptica/Fade To Black.mp3": audio/mpeg!
2016/10/07 14:01:12 [decoder.wav:4] Invalid file extension for "./Apocalyptica/Fade To Black.mp3"!
2016/10/07 14:01:12 [decoder:4] Trying method "MIDI" for "./Apocalyptica/Fade To Black.mp3"...
2016/10/07 14:01:12 [decoder:4] Trying method "IMAGE" for "./Apocalyptica/Fade To Black.mp3"...
2016/10/07 14:01:12 [decoder:4] Trying method "MAD" for "./Apocalyptica/Fade To Black.mp3"...
2016/10/07 14:01:12 [/stream:3] Connecting mount /stream for source@192.168.127.2...
2016/10/07 14:01:12 [decoder.mad:4] Libmad recognizes "./Apocalyptica/Fade To Black.mp3" as mpeg audio (layer III, 128kbps, 44100Hz, 2 channels).
2016/10/07 14:01:12 [decoder:3] Method "MAD" accepted "./Apocalyptica/Fade To Black.mp3".
2016/10/07 14:01:12 [decoder.gstreamer:4] Invalid MIME type for "./Apocalyptica/Fade To Black.mp3": audio/mpeg!
2016/10/07 14:01:12 [decoder.gstreamer:4] Invalid file extension for "./Apocalyptica/Fade To Black.mp3"!
2016/10/07 14:01:12 [metadata.flac:4] Invalid MIME type for "./Apocalyptica/Fade To Black.mp3": audio/mpeg!
2016/10/07 14:01:12 [metadata.flac:4] Invalid file extension for "./Apocalyptica/Fade To Black.mp3"!
2016/10/07 14:01:12 [decoder.ogg:4] Invalid MIME type for "./Apocalyptica/Fade To Black.mp3": audio/mpeg!
2016/10/07 14:01:12 [/stream:3] Connection setup was successful.
2016/10/07 14:01:12 [threads:3] Created thread "wallclock_main" (1 total).
2016/10/07 14:01:12 [clock:4] Main phase starts.
2016/10/07 14:01:12 [decoder.ogg:4] Invalid file extension for "./Apocalyptica/Fade To Black.mp3"!
2016/10/07 14:01:12 [metadata.mp4:4] Invalid MIME type for "./Apocalyptica/Fade To Black.mp3": audio/mpeg!
2016/10/07 14:01:12 [metadata.mp4:4] Invalid file extension for "./Apocalyptica/Fade To Black.mp3"!
2016/10/07 14:01:12 [clock.wallclock_main:3] Streaming loop starts, synchronized with wallclock.
2016/10/07 14:01:12 [/stream:3] Source failed (no more tracks) stopping output...
2016/10/07 14:01:12 [/stream:3] Closing connection...
2016/10/07 14:01:17 [playlist-(dot):4] Remaining: 0.0s, queued: 0.0s, adding: 30.0s (RID 1)
2016/10/07 14:02:26 [main:3] Shutdown started!
2016/10/07 14:02:26 [main:3] Waiting for threads to terminate...
2016/10/07 14:02:26 [/stream:4] Activations changed: static=[], dynamic=[].
2016/10/07 14:02:26 [source:4] Source /stream gets down.
2016/10/07 14:02:26 [smart_cross_6361:4] Activations changed: static=[], dynamic=[].
2016/10/07 14:02:26 [source:4] Source smart_cross_6361 gets down.
2016/10/07 14:02:26 [switch_6359:4] Activations changed: static=[], dynamic=[smart_cross_6361].
2016/10/07 14:02:26 [switch_6359:4] Activations changed: static=[], dynamic=[].
2016/10/07 14:02:26 [source:4] Source switch_6359 gets down.
2016/10/07 14:02:26 [playlist-(dot):4] Activations changed: static=[], dynamic=[].
2016/10/07 14:02:26 [source:4] Source playlist-(dot) gets down.
2016/10/07 14:02:26 [playlist-(dot):4] Waiting for feeding task to stop...
2016/10/07 14:02:26 [playlist-(dot):4] Cleaning up request queue...
2016/10/07 14:02:26 [clock.wallclock_main:3] Streaming loop stopped.
2016/10/07 14:02:26 [threads:3] Thread "wallclock_main" terminated (0 remaining).
2016/10/07 14:02:26 [main:3] Cleaning downloaded files...
2016/10/07 14:02:26 [main:3] Freeing memory...
2016/10/07 14:02:26 >>> LOG END

Liquidsoap日志添加了replay_gain:-protocol: ( playlist(".", prefix="replay_gain:"))

2016/10/07 14:05:05 >>> LOG START
2016/10/07 14:04:47 [protocols.external:3] Found "/usr/bin/wget".
2016/10/07 14:04:47 [main:3] Liquidsoap 1.1.1
2016/10/07 14:04:47 [main:3] Using: graphics=[distributed with Ocaml] pcre=7.0.4 dtools=0.3.1 duppy=0.5.1 duppy.syntax=0.5.1 cry=0.2.2 mm=0.2.1 xmlplaylist=0.1.3 lastfm=0.3.0 ogg=0.4.5 vorbis=0.6.1 opus=0.1.0 speex=0.2.0 mad=0.4.4 flac=0.1.1 flac.ogg=0.1.1 dynlink=[distributed with Ocaml] lame=0.3.2 shine=0.2.0 gstreamer=0.2.0 frei0r=0.1.0 voaacenc=0.1.0 theora=0.3.0 schroedinger=0.1.0 gavl=0.1.5 bjack=0.1.4 alsa=0.2.1 ao=0.2.0 samplerate=0.1.2 taglib=0.3.1 magic=0.7.3 camomile=0.8.4 inotify=1.0 faad=0.3.2 soundtouch=0.1.7 portaudio=0.2.0 pulseaudio=0.1.2 ladspa=0.1.4 dssi=0.1.1 sdl=0.9.1 camlimages=4.2.0 lo=0.1.0 yojson=1.2.3 gd=1.0a5
2016/10/07 14:04:47 [dynamic.loader:3] Could not find dynamic module for fdkaac encoder.
2016/10/07 14:04:47 [dynamic.loader:3] Could not find dynamic module for aacplus encoder.
2016/10/07 14:04:52 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/voaacenc.cmxs.
2016/10/07 14:05:04 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/shine.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/sdl.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/soundtouch.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/samplerate.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/pulseaudio.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/oss.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/mad.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/lo.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/portaudio.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/lame.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/bjack.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/cry.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/gstreamer.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/xmlplaylist.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/gd.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/gavl.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/frei0r.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/flac.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/ogg.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/faad.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/ladspa.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/graphics.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/ao.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/alsa.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/camlimages.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/dssi.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/flac_ogg.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/lastfm.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/opus.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/schroedinger.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/speex.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/taglib.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/theora.cmxs.
2016/10/07 14:05:05 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/vorbis.cmxs.
2016/10/07 14:05:05 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz master.
2016/10/07 14:05:05 [frame:3] Frame size must be a multiple of 1764 ticks = 1764 audio samples = 1 video samples.
2016/10/07 14:05:05 [frame:3] Targetting 'frame.duration': 0.04s = 1764 audio samples = 1764 ticks.
2016/10/07 14:05:05 [frame:3] Frames last 0.04s = 1764 audio samples = 1 video samples = 1764 ticks.
2016/10/07 14:05:05 [video.converter:4] Using preferred video converter: gavl.
2016/10/07 14:05:05 [audio.converter:4] Using preferred samplerate converter: libsamplerate.
2016/10/07 14:05:05 [threads:3] Created thread "generic queue #1".
2016/10/07 14:05:05 [threads:3] Created thread "generic queue #2".
2016/10/07 14:05:05 [clock:4] Currently 2 clocks allocated.
2016/10/07 14:05:05 [clock.wallclock_main:4] Starting 1 sources...
2016/10/07 14:05:05 [source:4] Source output.icecast_6365 gets up.
2016/10/07 14:05:05 [source:4] Source smart_cross_6360 gets up.
2016/10/07 14:05:05 [source:4] Source switch_6358 gets up.
2016/10/07 14:05:05 [source:4] Source playlist_6356 gets up.
2016/10/07 14:05:05 [playlist-(dot):3] Loading playlist...
2016/10/07 14:05:05 [playlist-(dot):3] Playlist is a directory.
2016/10/07 14:05:06 [playlist-(dot):3] Successfully loaded a playlist of 1045 tracks.
2016/10/07 14:05:06 [playlist-(dot):4] Content kind is {audio=2;video=0;midi=0}.
2016/10/07 14:05:06 [playlist-(dot):4] Activations changed: static=[], dynamic=[switch_6358:smart_cross_6360].
2016/10/07 14:05:06 [switch_6358:4] Activations changed: static=[], dynamic=[smart_cross_6360].
2016/10/07 14:05:06 [switch_6358:4] Activations changed: static=[smart_cross_6360], dynamic=[smart_cross_6360].
2016/10/07 14:05:06 [smart_cross_6360:4] Activations changed: static=[/stream:/stream], dynamic=[].
2016/10/07 14:05:06 [/stream:4] Activations changed: static=[/stream], dynamic=[].
2016/10/07 14:05:06 [/stream:4] Enabling caching mode: active source.
2016/10/07 14:05:06 [/stream:3] Connecting mount /stream for source@192.168.127.2...
2016/10/07 14:05:06 [/stream:3] Connection setup was successful.
2016/10/07 14:05:06 [threads:3] Created thread "wallclock_main" (1 total).
2016/10/07 14:05:06 [clock:4] Main phase starts.
2016/10/07 14:05:06 [clock.wallclock_main:3] Streaming loop starts, synchronized with wallclock.
2016/10/07 14:05:06 [/stream:3] Source failed (no more tracks) stopping output...
2016/10/07 14:05:06 [/stream:3] Closing connection...
2016/10/07 14:05:14 [decoder:4] Trying method "META" for "./ASP/Weltunter.mp3"...
2016/10/07 14:05:14 [decoder:4] Trying method "WAV" for "./ASP/Weltunter.mp3"...
2016/10/07 14:05:14 [decoder.wav:4] Invalid MIME type for "./ASP/Weltunter.mp3": audio/mpeg!
2016/10/07 14:05:14 [decoder.wav:4] Invalid file extension for "./ASP/Weltunter.mp3"!
2016/10/07 14:05:14 [decoder:4] Trying method "MIDI" for "./ASP/Weltunter.mp3"...
2016/10/07 14:05:14 [decoder:4] Trying method "IMAGE" for "./ASP/Weltunter.mp3"...
2016/10/07 14:05:14 [decoder:4] Trying method "MAD" for "./ASP/Weltunter.mp3"...
2016/10/07 14:05:14 [decoder.mad:4] Libmad recognizes "./ASP/Weltunter.mp3" as mpeg audio (layer III, 128kbps, 44100Hz, 2 channels).
2016/10/07 14:05:14 [decoder:3] Method "MAD" accepted "./ASP/Weltunter.mp3".
2016/10/07 14:05:14 [decoder.gstreamer:4] Invalid MIME type for "./ASP/Weltunter.mp3": audio/mpeg!
2016/10/07 14:05:14 [decoder.gstreamer:4] Invalid file extension for "./ASP/Weltunter.mp3"!
2016/10/07 14:05:14 [metadata.flac:4] Invalid MIME type for "./ASP/Weltunter.mp3": audio/mpeg!
2016/10/07 14:05:14 [metadata.flac:4] Invalid file extension for "./ASP/Weltunter.mp3"!
2016/10/07 14:05:14 [decoder.ogg:4] Invalid MIME type for "./ASP/Weltunter.mp3": audio/mpeg!
2016/10/07 14:05:14 [decoder.ogg:4] Invalid file extension for "./ASP/Weltunter.mp3"!
2016/10/07 14:05:14 [metadata.mp4:4] Invalid MIME type for "./ASP/Weltunter.mp3": audio/mpeg!
2016/10/07 14:05:14 [metadata.mp4:4] Invalid file extension for "./ASP/Weltunter.mp3"!
2016/10/07 14:05:14 [playlist-(dot):4] Remaining: 0.0s, queued: 0.0s, adding: 30.0s (RID 1)
2016/10/07 14:08:32 [clock.wallclock_main:2] We must catchup 18.20 seconds!
2016/10/07 14:18:21 [main:3] Shutdown started!
2016/10/07 14:18:21 [main:3] Waiting for threads to terminate...
2016/10/07 14:18:21 [/stream:4] Activations changed: static=[], dynamic=[].
2016/10/07 14:18:21 [source:4] Source /stream gets down.
2016/10/07 14:18:21 [smart_cross_6360:4] Activations changed: static=[], dynamic=[].
2016/10/07 14:18:21 [source:4] Source smart_cross_6360 gets down.
2016/10/07 14:18:21 [switch_6358:4] Activations changed: static=[], dynamic=[smart_cross_6360].
2016/10/07 14:18:21 [switch_6358:4] Activations changed: static=[], dynamic=[].
2016/10/07 14:18:21 [source:4] Source switch_6358 gets down.
2016/10/07 14:18:21 [playlist-(dot):4] Activations changed: static=[], dynamic=[].
2016/10/07 14:18:21 [source:4] Source playlist-(dot) gets down.
2016/10/07 14:18:21 [playlist-(dot):4] Waiting for feeding task to stop...
2016/10/07 14:18:21 [playlist-(dot):4] Cleaning up request queue...
2016/10/07 14:18:21 [clock.wallclock_main:3] Streaming loop stopped.
2016/10/07 14:18:21 [threads:3] Thread "wallclock_main" terminated (0 remaining).
2016/10/07 14:18:21 [main:3] Cleaning downloaded files...
2016/10/07 14:18:21 [main:3] Freeing memory...
2016/10/07 14:18:21 >>> LOG END

在一段时间未生成任何输出后,两者都已手动停止。


编辑:

在检查了我的目录中是否有导致 mp3gain 失败或返回垃圾的错误文件后,我发现了以下内容:

显然,enable_replaygain_metadata()当我使用single()orplaylist.safe()作为源而不是 时,它工作得很好playlist(),所以我猜它只适用于本地文件,这与文档所说的完全相反。但是,playlist.safe()必须检查启动时找到的每个文件,因此需要一些时间。

有什么办法可以使这项工作符合标准playlist()吗?

4

0 回答 0