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.4k stars 130 forks source link

"Unknown" title in metadata #30

Closed AzatGaliev closed 11 years ago

AzatGaliev commented 11 years ago

Hi!

I have a problem: after I installed liquidsoap from repo, all my tracks send to icecast with "Unknown" title. Artist is empty. Here is full script:

#!/usr/bin/env liquidsoap

set("log.file.path", "/home/liquidsoap/logs/***.log")
set("init.daemon", true)
set("init.daemon.pidfile", true)
set("init.daemon.pidfile.path", "<sysrundir>/***.pid")
set("init.daemon.change_user", true)
set("init.daemon.change_user.user", "liquidsoap")
set("init.daemon.change_user.group", "liquidsoap")
set("server.telnet", true)

def crossfade2(a, b)
    add(normalize=false, [sequence([blank(duration=5.), fade.initial(duration=10., b)]), fade.final(duration=10., a)])
end

playlist = request.dynamic({request.create("bar:foo", indicators=get_process_lines("/home/liquidsoap/get_track.pl"))})
playlist = crossfade(start_next=5., fade_out=3., fade_in=5., playlist)
playlist = audio_to_stereo(playlist)
live = input.harbor("live", port=9000, password="***")

radio = mksafe(fallback(track_sensitive=false, transitions=[crossfade2, crossfade2], [live, playlist]))

out = output.icecast(host="localhost", port=8000, password="***", name="***", description="Музыка вашего настрения!", genre="Dance, House, Trance, R&B, Pop", url="***", encoding="UTF-8")

out(%mp3(stereo=true, samplerate=44100, bitrate=112), mount="112", radio)
out(%mp3(stereo=true, samplerate=44100, bitrate=128), mount="128", radio)
out(%mp3(stereo=true, samplerate=44100, bitrate=64), mount="56", radio)
out(%mp3(stereo=true, samplerate=44100, bitrate=56), mount="32", radio)
out(%aac(channels=2, samplerate=44100, bitrate=40), format="audio/aacp", mount="aacp", radio)
out(%aac(channels=2, samplerate=44100, bitrate=64), format="audio/aacp", mount="aacp64", radio)

All my tracks have id3v2 tags. Before update all were right.

Thanks!

ALuserX commented 11 years ago

Sorry to interrupt, guys, but we probably have the same issue on our system.

After upgrade to 1.0.1 last saturday I noticed that some tracks would play with "Unknown" tag, although it used to work on 0.9.8. Our radio includes a bunch of different genres including chiptune, 8-bit music and even music that is ripped from software key generators. I noticed that those files with unknown tags were the ones from the /keygen/ folder. Then I opened a couple of them and noticed that the only tags that were set are "Artist" and "Track" and other common tags "Album", "Year" and "Genre" were missing.

So I went, created a couple of 3s long mp3 files and tagged each of them with a single missing tag, so that I got no-album.mp3, no-genre.mp3 and no-year.mp3. Then I requested them via telnet and asked our chat-bot to show me the queue.

Telnet:

request.push /home/aluserx/temp/no-album.mp3
9
END
request.push /home/aluserx/temp/no-genre.mp3
3
END
request.push /home/aluserx/temp/no-year.mp3
10
END

ChatBot Output:

 !queue

1. Test - Test [9]
2. Test - Test [3]
3.  -  [10] 

As you clearly can see, the problem is that if the "YEAR"-Tag is missing tags aren't shown at all.

Telnet metadata after playback:

request.metadata 10
temporary="false"
queue="primary"
decoder="MAD"
kind="{audio=2;video=0;midi=0}"
rid="10"
on_air="2013/02/19 01:58:09"
initial_uri="/home/aluserx/temp/no-year.mp3"
source="request"
status="destroyed"
filename="/home/aluserx/temp/no-year.mp3"
END

Hope it helps either the devs or the poor bastard who experienced the same. :)

Cheers, Alex

smimram commented 11 years ago

Did you build from git version? If so, do you have taglib support enabled?

For instance, if I run

liquidsoap 'output.dummy(sine())'

I get something like

2013/02/19 00:10:48 [main:3] Using: graphics=[distributed with Ocaml] pcre=6.2.5 dtools=0.3.0 duppy=0.4.2 duppy.syntax=0.4.2 cry=0.2.2 mm=0.2.1 xmlplaylist=0.1.3 lastfm=0.3.0 ogg=0.4.4 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.1 gstreamer=0.2.0 frei0r=0.1.0 aacplus=0.2.0 voaacenc=0.1.0 theora=0.3.0 schroedinger=0.1.0 gavl=0.1.5 ffmpeg=0.1.0 bjack=0.1.4 alsa=0.2.1 ao=0.2.0 samplerate=0.1.2 taglib=0.3.0 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.0 camlimages=4.0.0 lo=0.1.0 yojson=1.0.3

at the begining, the important part being taglib=0.3.0. Do you also have taglib?

toots commented 11 years ago

Geez, that was a bad bug, thanks for spotting it out guys.. Should be fixed with 56339633b1ed66bab0479a62f7b28c701e174654

daslicht commented 10 years ago

related: https://github.com/savonet/liquidsoap/issues/169