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.