Clickable HTML subtitles

Hé bien @Namna, je suis content de ne pas être le seul dans cette situation :slight_smile:
J’ai moi aussi de la difficulté à synchroniser mes clics avec le début et la fin des paroles.
Alors, j’ai moi aussi opté pour une méthode utilisant uniquement Shotcut.

Je me suis créé un modèle de clip contenant un filtre Texte: Simple et les filtres fade IN/OUT. J’ai appliqué un effet de movement au début et à la fin. J’ai choisi d’utiliser les keyframes simples afin de permettre d’allonger et rétrécir le clip sans bousiller les keyframes.
Ce qui donne ceci:
shotcut_AWunniN6Xd

J’ai sauvegardé ce modèle dans un fichier texte afin de pouvoir l’importer dans d’autres projets.

Une fois importé dans la timeline, de le copie et je le colle a chaque position où une phrase commence
J’insère ensuite la ligne de texte adéquate dans chaque clip et j’ajuste aussi la longueur du clip si nécessaire.

Notez que j’importe les paroles de la chanson dans l’onglet Notes de Shotcut afin d’éviter d’avoir passer d’une fenêtre à une autre pour copier/coller les lignes de texte.

Well @Namna, I’m glad I’m not the only one in this situation :slight_smile:
I also have trouble timing my clicks with the beginning and end of the lyrics.
So, I too opted for a Shotcut only method.

I created a clip template containing a Text: Simple filter and fade IN/OUT filters
I applied a movement effect at the beginning and at the end. I chose to use simple keyframes so it is possible to change the lenght of the clip without messing up the keyframes.
It looks like this:
shotcut_AWunniN6Xd

I saved this template in a text file so that I can import it into other projects.

Once imported in the timeline, I copy and paste it at each position where a sentence starts.
I then insert the appropriate line of text in each clip and also adjust the length of the clip if necessary.

Note that I import the song lyrics into the Notes tab of Shotcut so that I don’t have to go from one window to another to copy and paste the lines of text.

Mon modèle pour sous-titres ou paroles de chansons.
The template I use for subtiles or song lyrics.
subtitles-template.txt (2.4 KB)

2 Likes

Thanks for your kind words, Namna! Yes, my HTML coding is coming on! Pity about my JavaScript skills though - I’m still finding it difficult to understand… I try to analyse @elusien’s code but I am nowhere near skilled enough to actually write any…

@namna, what video mode did you use for your video? Because it came out like this at 1080p (words not aligned):

… and at 720p there were no subtitles at all! Strange!

Anyway, your lyrics are hilarious!!

Interesting about making mistakes whilst recording the screen-capture. For me, though it speeds things up enormously. When I made my “Yesterday” demo, I had one “rehearsal” in which I made no mistakes (!) and in the actual take I made the timing error just because I glanced down to check it was recording. So if I had recorded the first take, I could have done it in 2 minutes.

I agree, though there may be a skill in it and it does help if you know the music. The trick was to hit [TAB] on the last word of the lyric line, and try to anticipate the next line. In most cases, [TAB] [TAB] gives you a satisfactory result.

I’m wondering if my musical training helps me since I’m used to co-ordinating brain and fingers in time? (not intending to be disrespectful to you guys in any way, of course!)… So yes, it may be that this method isn’t for everyone and @musicalbox, those are great tips for adding subtitles… (add the text first then copy/paste the movement to all text clips later)…
I’ll also be using it for my flute videos. Adding the text to my videos is by far the most time-consuming part of the process and I often add text like …"This is the version for flute and piano … later you will hear just the backing track… to go straight to the section you want, click the chapters below the video… " etc, so I will use this to speed this up enormously.

Then of course you have effects not available in Shotcut like drop-shadow and letter-space animations.


(Traduction sans les guillemets)

Merci pour vos aimables paroles, Namna! Oui, mon codage HTML arrive ! Dommage pour mes compétences en JavaScript - j’ai toujours du mal à comprendre … J’essaie d’analyser le code de @ elusien mais je suis loin d’être assez qualifié pour en écrire.

@namna, quel mode vidéo avez-vous utilisé pour votre vidéo ? Parce qu’il est sorti comme ça en 1080p (mots non alignés) :
(PHOTO)
… et à 720p il n’y avait aucun sous-titre du tout ! Étrange!

En tout cas tes paroles sont hilarantes !!

Intéressant de faire des erreurs lors de l’enregistrement de la capture d’écran. Pour moi, même si cela accélère énormément les choses. Quand j’ai fait ma démo “Yesterday”, j’ai eu une “répétition” dans laquelle je n’ai fait aucune erreur (!) Et dans la prise réelle, j’ai fait l’erreur de synchronisation simplement parce que j’ai regardé en bas pour vérifier que l’enregistrement était en cours. Donc si j’avais enregistré la première prise, j’aurais pu le faire en 2 minutes.

Je suis d’accord, même s’il peut y avoir une compétence et cela aide si vous connaissez la musique. L’astuce consistait à appuyer sur [TAB] sur le dernier mot de la ligne de paroles et à essayer d’anticiper la ligne suivante. Dans la plupart des cas, [TAB] [TAB] vous donne un résultat satisfaisant.

Je me demande si ma formation musicale m’aide puisque j’ai l’habitude de coordonner le cerveau et les doigts dans le temps ? (sans avoir l’intention de vous manquer de respect, bien sûr !) … Alors oui, il se peut que cette méthode ne soit pas pour tout le monde et @musicalbox, ce sont d’excellents conseils pour ajouter des sous-titres … (ajoutez le texte d’abord puis copiez / collez le mouvement dans tous les clips de texte plus tard) …
Je vais aussi l’utiliser pour mes vidéos de flûte. L’ajout du texte à mes vidéos est de loin la partie la plus longue du processus et j’ajoute souvent du texte comme … "Ceci est la version pour flûte et piano … tard, vous n’entendrez que la piste d’accompagnement … à allez directement à la section que vous voulez, cliquez sur les chapitres en dessous de la vidéo…"etc, donc je vais l’utiliser pour accélérer énormément ça.

Ensuite, bien sûr, vous avez des effets non disponibles dans Shotcut, comme les animations d’ombre portée et d’espacement des lettres.

2 Likes

Messing about with jon’s HTML has been fun, but if all you are doing is adding subtitles to a video that is being uploaded to Youtube, I still think the best way is to create a .srt file (using my web app, or Aegisub) and upload that to Youtube. You don’t need to burn the subtitles into the video. You can feed the text to a translator to create versions in different languages, Youtube allows this. Or if you don’t want to create a .srt SubRip file, you can use Youtube directly by uploading the text and then sorting out the timing. Youtube (and my app and Aegisub) shows the audio waveform to make it easier.
See:

Jouer avec le HTML de Jon a été amusant, mais si tout ce que vous faites est d’ajouter des sous-titres à une vidéo qui est téléchargée sur Youtube, je pense toujours que la meilleure façon est de créer un fichier .srt (en utilisant mon application Web ou Aegisub) et téléchargez-le sur Youtube. Vous n’avez pas besoin de graver des sous-titres dans la vidéo. Vous pouvez transmettre le texte à un traducteur pour créer des versions dans différentes langues, Youtube le permet. Ou si vous ne souhaitez pas créer de fichier .srt SubRip, vous pouvez utiliser Youtube directement en téléchargeant le texte, puis en triant le timing. Youtube (et mon application et Aegisub) montre la forme d’onde audio pour le rendre plus facile.

2 Likes

A really good online tutorial on Javascript can be found below. It starts off simple then works up gradually to more complex subjects. I’d certainly recommend it to anyone wanting to learn this pretty easy programming language that is available on very system that has a browser installed.

Un très bon tutoriel en ligne sur Javascript peut être trouvé ci-dessous. Cela commence simple puis progresse progressivement vers des sujets plus complexes. Je le recommanderais certainement à tous ceux qui souhaitent apprendre ce langage de programmation assez simple qui est disponible sur tous les systèmes sur lesquels un navigateur est installé.

J’ai mis le format original de votre vidéo (1920 x 1080 50 ips)
Voici ma copie d’écran au même temps (09:08) que vous.
Je pense qu’il s’agit d’un problème avec la taille de la police, en effet vos caractères semblent plus gros. Le “S” de Scrambled est aligné sur le coté gauche du tronc d’arbre chez vous, et sur le coté droit chez moi. La taille définie pour la police dans Richtext est de 73 chez moi.
Peut-être que Windows et Mac n’utilisent pas les mêmes unités (pt ou px) ?
Essayez de réduire la taille de la police chez vous pour voir si cela règle le problème.
Je n’avais pas cette police, je l’ai installé à partir du .zip que vous avez partagé.
[image]

I set the original format of your video (1920 x 1080 50 fps)
Here is my screenshot at the same time (09:08) as you.
I think it’s a problem with the font size, indeed your characters seem bigger. The “S” of Scrambled is aligned on the left side of the tree trunk in your case, and on the right side in mine. The font size set in Richtext is 73 in my case.
Maybe Windows and Mac don’t use the same units (pt or px)?
Try reducing the font size at home to see if that fixes the problem.
I didn’t have this font, I installed it from the .zip you shared.


(Screenshot taken with the ‘Crop: Rectangle’ filter disabled)

Je pense que oui, c’est évident

I think so, it’s obvious

Ce ne sont pas les miennes mais bien celles que Paul avait prévues pour cette chanson si l’on en croit ce site.

They are not mine but those that Paul had planned for this song if we believe this site.

https://yellow-sub.net/beatles/les-chansons-des-beatles/the-beatles-toutes-les-chansons/75867-yesterday-the-beatles-paroles-traduction-histoire

You are right!! To my absolute shame I have never found the time to explore this. I must do better!! I will add it to my long TODO list.

J’ai jusqu’à maintenant utilisé cette méthode mais sans penser à mettre des images-clé simples qui permettent de redimensionner la longueur du clip.
Merci pour cette astuce.

I have so far used this method but without thinking to put simple keyframes that allow resizing the length of the clip.
Thanks for this tip. :wink:

1 Like

Hi guys, I just did a test…

This is an on-the-fly screen capture of me screen-recording the subtitles, after just one short rehearsal (I swear!) :rofl:, (just to identify when the first subtitle starts). I managed to get the timing right throughout the song with only two mistakes.

For the first mistake I didn’t anticipate the delay - but I clicked in the grey area to remove the subtitles, then I resumed correctly. It’s a simple matter to cut out the bad part in Shotcut.

For the second mistake I just lost concentration…

So for me it’s a vastly speedier operation than the normal way of adding subtitles.


Salut les gars, je viens de faire un test…

Ceci est une capture d’écran à la volée de moi enregistrant les sous-titres, après une courte répétition (je le jure !) :rofl:, (Juste pour identifier le début du premier sous-titre). J’ai réussi à obtenir le bon timing tout au long de la chanson avec seulement deux erreurs.

Pour la première erreur je n’avais pas anticipé le retard - mais j’ai cliqué dans la zone grise pour supprimer les sous-titres, puis j’ai repris correctement. C’est une question simple de couper la mauvaise partie dans Shotcut.

Pour la deuxième erreur, j’ai juste perdu ma concentration…

Donc, pour moi, c’est une opération beaucoup plus rapide que la manière normale d’ajouter des sous-titres.

1 Like

@Namna De rien.

En passant, comme pour @jonray, chez moi le texte ne s’aligne pas avec la barre grise. Si je change la taille de la police pour que la première ligne s’aligne correctement, il faut ensuite changer la position verticale de tous les keyframes suivant. J’ai aussi dû changer la position (dans le temps) de certains keyframes, pour le filtre texte ET pour le filtre Opacité.
Bizarre. Est-ce une incompatibilité Windows/Mac concernant la police ou est-ce le filtre Text: Riche qui se comporte de façon différente selon le système d’exploitation ? :thinking:

@Namna You’re welcome.

By the way, like @jonray, in my case the text doesn’t line up with the grey bar. If I change the font size so that the first line aligns correctly, then I have to change the vertical position of all the following keyframes. I also had to change the position (in time) of some keyframes, for the text filter AND for the Opacity filter.
Weird. Is it a Windows/Mac incompatibility regarding the font or is it the Text: Rich filter that behaves differently depending on the operating system? :thinking:

@Namna

Au cas ou vous voudriez tester de votre côté, voici votre fichier, corrigé pour que les paroles s’affichent correctement sous Windows.
J’ai dû réduire la taille de la police à 46.
J’ai désactivé la piste V3. Trop paresseux pour appliquer les modification à l’ombre portée :smiley:
En passant, à mon avis l’ombre porté n’est pas vraiment nécessaire puisque le texte s’affiche dans la barre grise et est donc très lisible sans l’ombre.
Autre détail, je n’ai pas modifié tous les keyframes du filtre Opacité. Par paresse encore une fois :wink:

In case you want to test it on your side, here is your file, edited to display the lyrics correctly on Windows.
I had to reduce the font size to 46.
I disabled track V3. Too lazy to apply the changes to the drop shadow :smiley:
By the way, in my opinion the drop shadow is not really necessary since the text is displayed in the gray bar and is therefore quite legible without the shadow.
Note also that I didn’t change all the keyframes of the Opacity filter. Again out of laziness :wink:

Yesterday Original Lyrics Richtext__Windows Edit.mlt (42.5 KB)

1 Like

Lack of concentration… This is probably the main reason why I make so many mistakes when trying to sync my finger with the flow of lyrics :smiley:

En Français on appelle les gens comme vous des virtuoses

In French we call people like you virtuosos :wink:

1 Like

Honnêtement je ne sais pas.
RichText n’affiche déjà pas comme SimpleText, sur cette capture j’ai ajouté la même phrase avec SimpleText et les mêmes réglages de police, et on constate un décalage
En Jaune RichText
En Blanc SimpleText

I honestly don’t know.
RichText already doesn’t display like SimpleText, on this capture I added the same sentence with SimpleText and the same font settings, and you can see a shift
In Yellow RichText
In White SimpleText

Oui c’est normal, je suppose que l’interligne est calculé en fonction de la taille de la police.
Par contre pour le décalage sur la ligne de temps, c’est plus étonnant à moins qu’au cumul des décalages de chaque ligne cela vous conduise à sauter une ligne.
Je vais regarder ce que donne votre fichier chez-moi.
En attendant voici le rendu de l’export final du mien sur Mac.

Yes it’s normal, I guess the line spacing is calculated according to the font size.
However, for the offset on the timeline, it’s more surprising unless the cumulative offset of each line leads you to skip a line.
I will look at your file at home.
In the meantime, here is the final export of mine on Mac.

https://streamable.com/51odrs

A ce stade, c’est effectivement bien de la paresse.
*V3 est la copie de V4, *
Sélectionner le filtre RichText puis le texte complet et changer la couleur de jaune à noir.
Appliquer un filtre SPR en en-tête de piste et décaler X et Y de 5 pixels.
Cela doit bien prendre 30 secondes

At this point, it is indeed laziness.
V3 is the copy of V4,
Select the RichText filter then the full text and change the color from yellow to black.
Apply an SPR filter to the track header and shift X and Y by 5 pixels.
This must take 30 seconds :partying_face: :partying_face:

30 secondes c’est une éternité lorsque votre estomac crie famine et que le micro-onde vient de biper pour signaler que le plat de lasagnes est prêt à être dévoré. :wink:

30 seconds is an eternity when your stomach is screaming out for food and the microwave has just beeped to signal that the lasagna is ready to be gobbled up :wink:

1 Like

Voici le comparatif Mac/Windows
En haut mon fichier original Mac
En bas votre fichier Windows.
Je pense que l’on doit être très prudents lorsque l’on fournit des fichiers mlt comportant du texte pour aider d’autres utilisateurs

Here is the Mac/Windows comparison
On top my original Mac file
Below your Windows file.
I think we have to be very careful when providing mlt files with text to help other users

1 Like

En effet. Parallèlement, on pourrait aussi démarrer une campagne anti Mac :wink:

Voici ma version sous Windows.
https://streamable.com/irznug
https://streamable.com/irznug

2 Likes

C’est pas idiot car je viens d’essayer avec Text: Webvfx avec les mêmes réglages de police, et on voit bien les différences.

It’s not stupid because I just tried it with Text: Webvfx with the same font settings, and you can see the differences.

Votre version est très bien (A part les 2 sous-titres ‘Quick, go get a pan’ répétés 2 fois) :partying_face:

Your version is very good (except for the 2 subtitles ‘Quick, go get a pan’ repeated twice) :partying_face:

2 Likes

A bird here says he’s very impressed… and wishes he had.

2 Likes

Thanks David! :slightly_smiling_face: