vicwomg / pikaraoke

Youtube-based Karaoke machine for Raspberry Pi, OSX, Windows, and Linux
GNU General Public License v3.0
461 stars 118 forks source link

Background videos for MP3/CDG #98

Open shaunblyde opened 3 years ago

shaunblyde commented 3 years ago

A friend has a dedicated karaoke machine and (same as at karaoke bars), it has the feature to play videos behind the lyrics from the CDG file.

I realise this is not necessarily a simple feature, but would be great to have PiKaraoke try to automatically pull a matching music video from Youtube (and permanently associate this to the MPG+CDG, as well as make it user editable for each song).

In absence of a matching video, PiKaroke could play users videos at random (or by a category selection) which are stored in a different folder.

This is some great software, and this feature would allow it to come close to parity with a dedicated machine, avoiding my friend lugging it around for parties.

vicwomg commented 3 years ago

if you can figure out how to make VLC do this, then let me know. But we're limited to what VLC itself can do

shaunblyde commented 3 years ago

I haven't looked into your implementation of presenting the CDG file along with the MP3. But this presents a way of simultaneously showing an MP4 video stream with accompanying MP3 audio, using the input-slave command of VLC: https://superuser.com/questions/685507/how-to-play-a-soundless-video-and-add-a-audio-file-at-the-same-time

I'm not sure if the CDGs themselves also need to be made transparent to ensure you can see the video behind it, but a very early starting point could be here: https://www.codeproject.com/Articles/89845/MP3-CDG-Karaoke-Player

vicwomg commented 3 years ago

I'm not doing anything fancy. In vlc if you pass it an mp3, it will play an associated cdg file. No extra params needed. So again, let me know if you find any specific sequence of commands to make this work.

Hartebee5t commented 3 years ago

... this presents a way of simultaneously showing an MP4 video stream with accompanying MP3 audio, using the input-slave command of VLC: https://superuser.com/questions/685507/how-to-play-a-soundless-video-and-add-a-audio-file-at-the-same-time

I'm not sure if the CDGs themselves also need to be made transparent to ensure you can see the video behind it,...

I suspect the difficulty in addressing this idea is that the CDG lyric text is already being presented as the video stream, so wouldn't we need a method of converting the CDG element into some kind of overlay so it could be effectively merged with any background video? That involves either