3

したがって、ポート 8080 にポート入力がある Liquidsoap のインスタンスがあります。

私が望んでいるのは、誰かが /live に接続するたびに、ストリームが記録されてサーバーに保存されることです。

これは問題なく動作しますが、たとえば、録音中に切断してプレイリストを開始できるようにすると、もう一度ストリーミングしようとすると、新しいファイルが作成されますが、新しいファイルと以前の録音の両方への書き込みが開始されます。

基本的に、最初のファイルを上書きします。これが起こらない唯一の方法は、2 つのブロードキャストの間に Liquidsoap が再起動する場合です。

これが私のliqファイルのコピーです:

#!/usr/bin/liquidsoap

# Don't create a pidfile
#set("init.daemon.pidfile",false)

# Create Log File
set("log.file.path","/tmp/ls-log.log")
set("log.file.perms",755)
set("log.unix_timestamps",true)

# DJ or Metadata IP Address
set("harbor.bind_addr","0.0.0.0")

# Port / Pass for Live DJs
live = input.harbor(id="live",port=8080,password="xxxxxx", "live")

# Find /home/music/ -type f -name "*.mp3" > /etc/liquidsoap/music.m3u

# Path to playlist file which contains a list of local mp3's (/home/user/mp3/song.mp3)
playlist = playlist("./home/taskone/stream/playlists/dubstep/playlist.txt")

# Path to backup track if other streams fail
backup = single("./home/taskone/stream/backups/dubstep/Task One - Studio Sessions.mp3")

# Do not monitor for radio silence and also specify the expected play order
radio = fallback(track_sensitive=false,[live, playlist, backup])

# Function to manually change song title
title = insert_metadata(radio)
insert = fst(title)
radio = snd(title)  

def set_meta(~protocol,~data,~headers,uri) =
title = url.split(uri)
meta = metadata.export(snd(title))
show_title = meta["title"]

ret = if meta != [] then insert(meta) "Title Updated - #{show_title}" else "No metadata to add!" end
http_response(protocol=protocol,code=200,headers=[("Content-Type","text/html")],data="<html><body><b>#{ret}</b></body></html>") end

# Port to register metadata updates via http
harbor.http.register(port=8080,method="GET","/setmeta",set_meta)


# dump live_dj recordings to a file
timestamp = '%d-%m-%Y'
show_title = 'XXXXXXX'
output.file(%mp3(bitrate=320, id3v2=true), reopen_on_metadata=false, "/var/www/html/recorded_shows/#{show_title} Recorded On #{timestamp}.mp3", live, fallible=true)

# Output to an Icecast Server
output.icecast(
  %mp3(bitrate=192),
  mount="/stream",
  host="localhost", port=8000, password="XXXXXXXX",
  radio)
4

3 に答える 3

0

パラメータappend=trueをに追加output.fileすると、既存のファイルを上書きする代わりに、新しいオーディオ データが既存のファイルに追加されます。

これをファイル名のタイムスタンプと組み合わせて、日次/時間別のダンプを作成できます。

その他のパラメーターについては、ドキュメントを参照output.fileしてください: Liquidsoap 1.4.1 - API リファレンス: output.file

于 2020-03-09T20:59:13.397 に答える