Update content to add resolution video tutorial

This commit is contained in:
MCharpy 2021-10-22 12:05:01 +02:00 committed by Pierre-Olivier Mercier
parent ad76a30809
commit 142f709198
8 changed files with 104 additions and 0 deletions

View File

@ -20,6 +20,7 @@ N'utilisez pas de logiciel en version de « démonstration » : il faudrait paye
- `ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0 -f alsa -ac 2 -i hw:0 -strict experimental resolution.mp4`
- [recordMyDesktop](http://recordmydesktop.sourceforge.net/) sous Linux
- [Screencast Capture Lite](http://cesarsouza.github.io/screencast-capture/) pour Windows
- [https://obsproject.com/](https://obsproject.com/) sur tous les systèmes
- [Aegisub](http://www.aegisub.org/), [Gnome Subtitle](http://gnomesubtitles.org/), emacs/vim, ... pour les sous-titres
@ -28,3 +29,106 @@ N'utilisez pas de logiciel en version de « démonstration » : il faudrait paye
Les vidéos de résolution sont affichées uniquement sur la version du site statique, publiée après le challenge.
![Rendu resolution.mp4](exercice_resolution.png)
## Tuto de création de vidéo de résolution
### Filmer la résolution
Pour filmer la résolution, OBS est pas mal. Les autres solutions proposées au dessus fonctionneront également
N'hésitez pas a retirer du cadre les informations non essentielles (`i3-nagbar` par exemple)
N'hésitez pas à faire cette résolution dans votre `/tmp` afin que les chemins de fichiers ne présentent que les informations nécessaires
### Monter la vidéo
Sur Linux, OpenShot ([https://www.openshot.org/](https://www.openshot.org/)) est pas mal pour ça. Sur Arch vous pouvez l'obtenir avec la commande
```bash
yay -S openshot
```
Vous pouvez ensuite lancer openshot-qt pour ouvrir le logiciel de montage
![Interface OpenShot](interface_openshot.png)
Importer vos vidéos
![Importer des vidéos](openshot_import_video.png)
Placer vos vidéos sur la barre de montage
![Le montage des vidéos](openshot_montage.png)
Vous pouvez maintenant découper et réorganiser la vidéo comme vous le souhaitez.
Pensez à enregistrer régulièrement (ctrl + s) car openshot demande pas mal de RAM et il arrive que le noyau passe pas l'OOM killer (#virli) pour récupérer cette RAM
Une fois le montage fait, exporter la vidéo (ctrl + e)
#### 3 raccourcis sympathiques sur openshot
- ctrl + j : Coupe la bande vidéo au niveau du curseur de lecture et ne garde que ce qui se trouve après le curseur de lecture
- ctrl + k : Coupe la bande vidéo au niveau du curseur de lecture et garde les 2 cotés
- ctrl + l : Coupe la bande vidéo au niveau du curseur de lecture et ne garde que ce qui se trouve avant le curseur de lecture
### Les sous titres
Pour faire les sous-titres, nous allons passer par un fichier `.srt`
```bash
vim sous_titres.srt
```
Dans vim, faire la suite de touches suivante
```bash
99o<Echap>:%s//\=printf("%d\\n --> 00:00:00,0000\\n\\n", line('.'))<Entree>
:%s/\\n/\r/g<Entree>
:%s/^1\n --> 00:00:00,0000/1\r00:00:00,0000 -> 00:00:00,0000<Entree>
```
Explication des commandes :
- `99o<Echap>` ajoute 99 lignes vides au fichier. On obtient un fichier de 100 lignes vides
- `:%s//\=printf("%d\\n --> 00:00:00,0000\\n\\n", line('.'))` met la string `%d\n --> 00:00:00,0000\n\n` sur chaque ligne en remplaçant le %d par le numero de ligne
- `:%s/\\n/\r/g` remplace les `\n` par des vrais retours a la ligne
- `:%s/^1\n --> 00:00:00,0000/1\r00:00:00,0000 -> 00:00:00,0000` Ajoute un timestamp de debut a la première entrée
Vous devriez maintenant avoir un fichier (presque) au format d'un fichier de sous titres avec 100 entrées
![Le fichier obtenu par les commandes précédentes](sous_titres_debut.png)
Ce fichier n'a pas le format d'un fichier de sous titre car les lignes de timestamp n'ont pas de timestamp de début. Nous l'ajouterons à la fin, une fois que tous les timestamps de fin auront été définis.
Remplir le fichier de sous-titres en définissant bien les timestamps de fin d'apparition du sous titre
![Les possibilités de sous-titres et timestamps](sous_titres_exemple.png)
Une fois les sous titres finis, supprimer les entrées non complétées restantes et utiliser la commande vim suivante
```bash
:%s/-> \([0-9:,]*\)0\n\(\_.\{-}\)\n -/-> \10\r\2\r\11 -/g
```
Cette commande a pour effet d'ajouter les timestamps de début de sous titre. Pour cela, on récupère le timestamp de fin du sous-titre précédent et on y ajoute 1 milliseconde afin que les sous-titres ne se chevauchent pas
Attention, il faut que les timestamps soient tous à un nombre de millisecondes multiple de 10
On obtient un fichier avec cette forme
![Résultat de la commande](sous-titres_final.png)
Vous pouvez vérifier que les sous titres vous conviennent en ouvrant la vidéo dans VLC et en y ajoutant les sous-titres
![Afficher des sous-titres sur vlc](vlc_sous_titres.png)
Une fois que vous êtes content de vos sous titres, ajouter les sous-titres directement dans la video avec la commande suivante :
```bash
ffmpeg -i votre_video.mp4 -vf subtitles=sous_titres.srt resolution_subtitled.mp4
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB