我最近一直在使用liquidsoap,试图为在线广播电台设置自动流媒体。 到目前为止一切正常,除了我需要一种方法来让所有文件具有相同的响度,因为它们将来自许多不同的人并将跨越至少五十年的发布日期,所以我期待它们被掌握到很多不同的响度级别。
问题是,当我尝试添加任何提供的ReplayGain实现(enable_replaygain_metadata()
和replay_gain:
- 协议)时,我得到Source failed (no more tracks) stopping output...
,即使我实际上没有使用任何ReplayGain值。
我已经检查了相关脚本(/usr/lib/liquidsoap/1.1.1/extract-replaygain
)和脚本调用的二进制文件(mp3gain
),他们都回馈了我期望的结果。
但是,由于enable_replaygain_metadata()
和replay_gain:
- 协议都没有得到很好的记录,我不知道他们实际期望的返回值是什么,或者他们的行为应该是什么。由于我找不到有关原因的任何有用信息,因此到目前为止在线搜索解决方案相对没有用,我发现所有信息都告诉我这个问题不应该发生。
非常感谢任何有关此问题的帮助。
操作系统:Ubuntu 16.04
liquidsoap版本: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()
之前添加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
添加了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()
或playlist.safe()
作为来源而不是playlist()
时效果很好,所以我猜它只适用于本地文件,这与文档所说的完全相反。但是,playlist.safe()
必须检查启动时找到的每个文件,因此需要一些时间。
有没有办法让这项工作符合标准playlist()
?