Jump to content

CDG+MP3 Karaoke support in Emby


Recommended Posts

Posted

I have searched the Feature Requests thread, and I know similar requests have been made, but only for general karaoke support with people requesting support for old depreciated formats as .mid and .kar.

CDG+MP3 is by far the most common file format in Karaoke, and also the format used by most professionals. The sound and music quality is by far superior to the midi based file formats.

CDG+MP3 is also directly supported in Ffmpeg, and can be transcoded on the fly using a simple command.  The video format is only 300x216 (304x224 buffer dimension) so transcoding it would be very cpu friendly.

The Ffmpeg command to convert the file is as follows:

ffmpeg -copyts -i "01 - Rihanna - Russian Roulette.cdg" -i "01 - Rihanna - Russian Roulette.mp3" -b:v 1M -y "01 - Rihanna - Russian Roulette.MP4"

This will force a 1meg video.. I don't know if that is a necessity, as it will produce a larger file than if you omit the -b:v 1M -y option..
The -copyts is there to ignore timestamps in the files, as sometimes this will induce a sync issue with the lyrics shown. Works flawlessly.

Now, cdg+mp3 files are normally stored in .zip files to keep them together and for easy management.  If there is a problem unzipping and using the files then deleting them after use, I see no problem unzipping the files and leaving them as pairs on the server.. The zipping is purely for ease of use and does not offer much of a space requirement reduction.

Please consider this, as a Karaoke Jockey as a side gig, I know a lot of people enjoy this, and in these covid times, no shows are held, and people need entertaining.  I serve my immediate family and friends with content, and to be able to add karaoke singing on the fly with emby would be a valuable addition.

Best regards,

dexus.

  • Like 6
  • Agree 3
Posted

Karaoke is not a bad idea for the future. Thanks for the feedback.

  • Like 1
Posted

Thanks for taking an interest.  This would surely put Emby above any other streaming platform in terms of media support, and multi use value.  I know Kodi and Plex support cdg+mp3, but they are not built for streaming across the vast internets... 

  • 8 months later...
Posted
On 10/11/2020 at 10:11 AM, Luke said:

Karaoke is not a bad idea for the future. Thanks for the feedback.

Any news on karaoke request?

Regards

Posted
44 minutes ago, NETFY said:

Any news on karaoke request?

Regards

Hi, not yet, sorry. We are monitoring it for community feedback. Thanks.

mrfragger
Posted
On 10/11/2020 at 3:00 AM, dexus said:

I see no problem unzipping the files and leaving them as pairs on the server.. The zipping is purely for ease of use and does not offer much of a space requirement reduction

Mp3 not opus doesn’t compress at all but cdg files compress at about 90%. I do your ffmpeg command and made the opus and cdg into an mp4 but file was 2.5x than those two. I continue to just use VLC as it works. 

Posted
On 6/30/2021 at 5:53 AM, Luke said:

Hi, not yet, sorry. We are monitoring it for community feedback. Thanks.

Would love that too... ! 👋

  • Agree 1
  • 5 months later...
Posted (edited)
On 6/30/2021 at 1:53 PM, Luke said:

Hi, not yet, sorry. We are monitoring it for community feedback. Thanks.

Get this support and you wins over some Plex users (lot of request on Plex for karaoke support) and a large Asian audiences they are Karaoke mad 

from Japan to Vietnam to China  potential some big market there

Edited by usenet
  • 2 years later...
Posted
On 6/30/2021 at 11:53 AM, Luke said:

嗨,还没有,对不起。我们正在对其进行监控,以获取社区反馈。谢谢。

Please support karaoke,help
 
  • 8 months later...
Posted

I'm actually surprised that this hasn't been implemented yet, as the format cdg+mp3  is supported in ffmpg natively. As for indexing, the format uses regular mp3 tags wirh artist song etc..

  • Thanks 1
  • 5 months later...
Posted

Someone has recently produced a Karoake plugin for Jellyfin which plays your audio (with original artist) and display lyric files which you have to download in advance.  Looks promising but it would be better to be able to just use CDG files if you have a load (like me)

 

Posted

+1. I actually have a load of karaoke mp3+cdg files lying around on a bunch of collection karaoke discs.
It would be fantastic to be able to put them into Emby and (finally) put them to use! 

Posted

@Luke @GrimReaperapparently someone had this working in HTML (12 years ago!) see https://ltucker.github.io/html5_karaoke/.

The implementation is rather straightforward:

<html>
    <head>
        <script src="./wcdg.js"></script>
    </head>

    <body>
        <div id="karaoke-player"></div>

        <canvas id="karaoke-display" width="600" height="432" style="background: url('player.png')">
        </canvas>
        <br>
        <audio id="song">
            <source src="./example.mp3" type="audio/mpeg">
        </audio>
        <br>
        <script>
            var player = new CDGPlayer(document.getElementById('karaoke-display'));
            player.load("./example.cdg");

            document.getElementById('song').addEventListener("playing", function () {
                player.play();
            });
            document.getElementById('karaoke-display').addEventListener('click', function () { document.getElementById('song').play(); });
        </script>
    </body>
</html>

Do the other platforms also have access to JS?

Regardless, I've added the files in the attachments, with exception of the .cdg and .mp3 for copyright reasons.

 

player.png

index.html wcdg.js

  • Thanks 1
Posted
1 hour ago, brothom said:

@Luke @GrimReaperapparently someone had this working in HTML (12 years ago!) see https://ltucker.github.io/html5_karaoke/.

The implementation is rather straightforward:

<html>
    <head>
        <script src="./wcdg.js"></script>
    </head>

    <body>
        <div id="karaoke-player"></div>

        <canvas id="karaoke-display" width="600" height="432" style="background: url('player.png')">
        </canvas>
        <br>
        <audio id="song">
            <source src="./example.mp3" type="audio/mpeg">
        </audio>
        <br>
        <script>
            var player = new CDGPlayer(document.getElementById('karaoke-display'));
            player.load("./example.cdg");

            document.getElementById('song').addEventListener("playing", function () {
                player.play();
            });
            document.getElementById('karaoke-display').addEventListener('click', function () { document.getElementById('song').play(); });
        </script>
    </body>
</html>

Do the other platforms also have access to JS?

Regardless, I've added the files in the attachments, with exception of the .cdg and .mp3 for copyright reasons.

 

player.png

index.html 850 B · 0 downloads wcdg.js 18.4 kB · 0 downloads

So ultimately this is just lyrics highlighting?

Posted (edited)
28 minutes ago, Luke said:

So ultimately this is just lyrics highlighting?

In a nutshell yes. The mp3 has a companion file (cdg) which is similar to a graphic subtitle, highlighting which parts of the lyrics are being sung at the time, here are some screenshots from one of my files:

image.png.3ecf08f6dddfd20ebdfe4c73fae2a15b.pngimage.png.c7882b8337761cc221aa5318b9bf8338.png

image.png.16d52ddc6065c56825c53da80f34c553.png

These cdg files wildy vary in quality though. Some are just lyrics, some contain extra graphics.

Edited by brothom
Posted (edited)

@LukeAdditionally, I've expanded on the source's wcdg player by adding play/pause/seek support (renamed stop to pause and added new seek method) which might need some refining due to the method only relying on integers as points in time.
Hopefully this is somewhat helpful to you guys.

wcdg.js

index.html

Edited by brothom
  • Like 1
  • Thanks 1
  • 4 months later...
Fratopolis
Posted

I never even though about this. Importing my karaoke collection into Emby. I'll 1+ this as well.

  • Thanks 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...