Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
We Distribute
  1. Home
  2. General
  3. 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:

Scheduled Pinned Locked Moved General
2 Posts 1 Posters 18 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • limebar@the.socialmusic.networkL This user is from outside of this forum
    limebar@the.socialmusic.networkL This user is from outside of this forum
    limebar@the.socialmusic.network
    wrote on last edited by
    #1

    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)

    1 Reply Last reply
    0
    • limebar@the.socialmusic.networkL This user is from outside of this forum
      limebar@the.socialmusic.networkL This user is from outside of this forum
      limebar@the.socialmusic.network
      wrote on last edited by limebar@the.socialmusic.network
      #2

      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?

      1 Reply Last reply
      0
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      • Login

      • Don't have an account? Register

      • Login or register to search.
      Powered by NodeBB Contributors
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • World
      • Users
      • Groups