# Liquidsoap

## audio stream generation

### A simple video script

The other day, I wanted to prepare some videos of my favorite reggae and soul tunes for uploading them to YouTube. My goal was very simple: prepare a video with the music, and a static image.

After briefly digging for a simple software to do that, which I could not find, I said “hey, why not doing it with liquidsoap”? Well, that is fairly easy!

Here is the code:

     # Log to stdout
     set("log.file",false)
     set("log.stdout",true)
     set("log.level",4)
     # Enable video
     set("frame.video.width",640)
     set("frame.video.height",480)

     audio_file = "/tmp/bla.mp3"
     video_file = "/tmp/bla.jpg"

     # Grab file's title
     r = request.create(audio_file)
     title =
       if request.resolve(r) then
         meta = request.metadata(r)
         meta["title"]
       else
         # File not readable
         log("Error: cannot decode audio file!")
         shutdown ()
         ""
       end
     title =
       if title == "" then
          "Unknow title"
       else
          title
       end

     # The audio song.
     audio = request.queue(interactive=false,queue=[r])

     # Create a video source with the image for video track
     video = single(video_file)

     # Mux audio and video
     #source = mux_audio(audio=audio,video)
     source = mux_video(video=video,audio)

     # Disable real-time processing, to process with the maximun speed
     source = clock(sync=false,source)

     # Output to a theora file, shutdown on stop
     output.file(%ogg(%vorbis,%theora),
                 id="youtube",fallible=true,
                 on_stop=shutdown,reopen_on_metadata=true,
                 "/tmp/#{title}.ogv",
                 source)

This should produce on file named `<title>.ogv` where `<title>` is the title metadata of your song.

Inspired from blog.rastageeks.org.