Page 1 of 2

VLyriC: new software for displaying hymn lyrics on video at stake conference

Posted: Tue Mar 13, 2012 8:51 pm
by cboling
When the computer for the setup I've been using since 2004 died a couple of weeks before conference and I had trouble recreating it, I decided it was time for a new, more universal, way of doing the display. I ended up writing VLyriC, which uses VLC as the display engine, and is a easier than a Powerpoint-style slide show -- esp. when making last-minute changes on the fly during the meeting. I also added camera selection to it (since my previous method wasn't available on Linux).

All that's required is VLC and this program (and one or more video sources for VLC to use -- a dummy source if you don't want video) and you're in business. The program and source code are available at the above link. It saved my weekend, and I hope it helps someone else.
VLyriC.jpg
VLyriC.jpg (25.38 KiB) Viewed 3585 times
(How nice! The forum image uploader turned my 23k png into a crummy-looking 25k jpeg. Guess it was too big...:rolleyes:)

Posted: Wed Mar 14, 2012 7:59 am
by ksolsen
Very impressive! I love it.

Posted: Wed Mar 14, 2012 8:51 pm
by michaelfish
I'd like to see what the text-over-video looks like.

Can you upload a sample? For instance, where is the text overlayed (bottom, middle, etc.)? What font did you decide to use? How is the overlay quality, etc? What is the resolution factor (low, medium, 720, HD)?

Thanks

Posted: Thu Mar 15, 2012 8:50 am
by Aczlan
How does this interact with the Webcast software? Does it show up as another video source that sits in the middle between the capture card and the Webcast software, or does it require extra hardware to do Chroma-keying?

Thanks

Aaron Z

Posted: Thu Mar 15, 2012 2:05 pm
by cboling
michaelfish wrote:What font did you decide to use?
The VLC plugin doesn't appear to give a choice of typeface (anyone know differently?); it uses a basic sans-serif typeface that is probably system-dependent.
I'd like to see what the text-over-video looks like.
The project page shows a picture of the screen (click for larger version) with a custom title on it.
where is the text overlayed (bottom, middle, etc.)?
Totally flexible. I choose to have it at the bottom, but you can change the init strings to place it wherever you want. Put every line in a different place if you really want to drive your audience batty! :eek:
How is the overlay quality, etc? What is the resolution factor (low, medium, 720, HD)?
VLC will play your video at whatever resolution you desire (limited, of course, by the native resolution of your source). As the project page mentions (really -- it's hidden in there!) VLC 1.x seems to render the text at the same resolution as the video, but 2.0 appears to use full display resolution (which is nice if you're displaying 640x480 video on a 1024x768 projector). I updated that paragraph with links to a pair of screen shots that compare the same pair of lines displayed in both versions. (Note that both the VLC version and OS differ between the two shots. The basic font is OS-dependent; the rendering style is VLC-dependent.) I'd put the samples right here for you, but I can't figure out how to attach a picture without it transcoding it to jpeg. (if anyone knows how, I'd appreciate an education!)

Posted: Thu Mar 15, 2012 2:23 pm
by cboling
Aczlan wrote:How does this interact with the Webcast software? Does it show up as another video source that sits in the middle between the capture card and the Webcast software, or does it require extra hardware to do Chroma-keying?
VLC doesn't create a new V4L2/DirectShow device or anything fancy like that; it relies strictly on your display output. Unless someone knows of a display plugin for VLC that does that (it's certainly possible to make one), you'll need to use one computer to produce the display, and feed the video into a capture device of a 2nd computer in order to webcast it.

Even if you use VLC's built-in transcode/broadcast capabilities, you'll only get the original video without the text overlays; the overlay takes place after that step and is applied directly to the display module. I know because I tried it, and was disappointed -- it would've been great to have it broadcast on the LAN with nothing more needed!

Posted: Thu Mar 15, 2012 2:32 pm
by Aczlan
cboling wrote:Even if you use VLC's built-in transcode/broadcast capabilities, you'll only get the original video without the text overlays; the overlay takes place after that step and is applied directly to the display module. I know because I tried it, and was disappointed -- it would've been great to have it broadcast on the LAN with nothing more needed!
Looking online turned up http://forums.adobe.com/thread/538563 which pointed me to http://www.e2esoft.cn/news/pages/vcam_vlc_plugin.html which appears to be a way to have the VLC output to a virtual device that looks like a camera to that computer.
May have to play with this...

Aaron Z

Posted: Thu Mar 15, 2012 4:05 pm
by cboling
Aczlan wrote:vcam_vlc_plugin
Outstanding! I tried it out, and it indeed works. I updated the project page w/ the full scoop.

Posted: Thu Mar 15, 2012 4:16 pm
by Aczlan
cboling wrote:Outstanding! I tried it out, and it indeed works. I updated the project page w/ the full scoop.
Glad to hear it. Will have to experiment with it next time I am testing the webcasting setup.
Am I correct in thinking that I should be able to setup a signal chain as follows: Camera video/building audio > VLC (for overlay) > VCAM to merge the stream > Webcast software

Thanks

Aaron Z

Posted: Thu Mar 15, 2012 4:29 pm
by cboling
Aczlan wrote: Camera video/building audio > VLC (for overlay) > VCAM to merge the stream > Webcast software
Precisely.

You could also wait and add the audio with the VCam device; that should decrease CPU usage slightly (not having to process audio twice), but could further increase the temporal disparity between the audio and video streams. If the webcast software doesn't allow you to adjust the A/V sync, adding the audio sooner (as you suggested) would allow you to use VLC to tweak the audio delay.