BTW, here is a LiquidSoap script that will stream a folder of videos to an owncast server inserting a random station break every 4th video:
-
BTW, here is a LiquidSoap script that will stream a folder of videos to an owncast server inserting a random station break every 4th video:
settings.frame.video.width := 1280 settings.frame.video.height := 720
m = medialib(persistency="videos.json", "/media/videos/") l = m.find(artist_contains="") l = list.shuffle(l)
m2 = medialib(persistency="jingles.json", "/media/jingles/") l2 = m.find(artist_contains="") l2 = list.shuffle(l2)
s = random( weights=[1,4], [ playlist.list(l2), playlist.list(l) ] )
encoder = %ffmpeg( format="flv", %video.raw(codec="libx264", "x264-params"="keyint=60:min-keyint=60:scenecut=0:tune=zerolatency", hwaccel="auto", pixel_format="yuv420p", b="2500k", preset="veryfast", r=25, g=50), %audio( codec="aac", b="128k", samplerate=48000 ), )
output.url(fallible=true,url="rtmp://THE_OWNCAST_URL/live/THE_STREAMING_KEY",encoder,s)
-
Anyone have experience with LiquidSoap for broadcasting video?
I'm poking around trying to figure out how to establish an always-on MTV like FediTV for music videos.
I tried ffmpeg and that worked up to a limit -- it has a documented but unimplemented feature (say what?) for pulling metadata out of video files and getting them onscreen (artist, track, album). It also doesn't handle failures all that well for 24x7 broadcasting. Maybe it could with some magic but...
That is what LiquidSoap was designed for.
With LiquidSoap you could setup a constant stream that pulls from a randomized playlist of videos and
- inject periodic station identification
- supersede regular broadcast to allow for live events
- fallback to known good video when something breaks (no dead air)
- transcode on-the-fly
But still struggling to pull metadata out of the videos and get it onscreen - which is deal breaker - this is about artist promotion as far as I am concerned. I worry this is down to the same missing feature in ffmpeg (since it uses ffmpeg internally).
(p.s. one interesting side effect could be... syndication... or something like it. I've noticed that there are many owncasts that go unused most of the time... i believe you could set this up to syndicate the stream to all of them and then allow any of them to pick up a live stream on demand - talking about gravitons, tibr, labr, basspistol, being able to opt-in to syndication but that is for another day)
Anyway, does anyone have experience setting up LiquidSoap and getting metadata onscreen?
Complete examples are hard to find... and I declare, functional programming is not my strong suit. See what I did there?