Enregistrer une vidéo sans la télécharger
Parfois, je dois récupérer une vidéo sur un gros site qui décourage le téléchargement pour préserver son business… Pour contourner cette restriction, j'aime bien utiliser les moyens du bord, les outils simples que j'aime.
ATTENTION, la méthode décrite ci-dessous est obsolète !
Elle était justifiée à l'époque des disques durs mécaniques mais n'est plus nécessaire avec un SSD beaucoup plus rapide.
Avec un disque mécanique, l'enregistrement simultané de l'image et du son produisait, même sur un PC rapide, une image saccadée. Je procédais donc en deux parties : enregistrement de l'image, puis du son, puis je synchronisais les deux dans Kdenlive.
Désormais, il suffit de faire en une seule fois :
ffmpeg -f pulse -i default -video_size 1920x1080 -framerate 30 -f x11grab -i :0.0 -preset ultrafast -crf 17 output.mkv
Ce que je décris ci-dessous n'est plus ni moins qu'une bidouille, une recette qui m'amuse mais qui n'est ni industrielle, ni académique, ni universelle. Je la consigne dans cette page pour la retrouver où que je sois, et si elle peut vous inspirer, vous dépanner, tant mieux. Dans ce cas, n'hésitez pas à m'envoyer un petit mail. Ça me fera plaisir de voir que je ne suis pas seul à bidouiller.
1) Enregistrement de l'image vidéo
- Je mets d'abord les notifications de XFCE sur "Ne pas déranger" 🙂 ← ceci reste valable
- Et je règle l'économiseur d'écran sur "Inhiber pour les applications en plein écran" ← ceci également
- Dans un terminal, je lance la commande
ffmpeg -video_size 1920x1080 -framerate 60 -f x11grab -draw_mouse 0 -i :0.0 -preset ultrafast -crf 17 output.mkv
- Mon écran est en 1920x1080
- Les options
-preset ultrafast -crf 17
sont conseillées dans la doc pour avoir la meilleure qualité
- Dans Firefox, je lance la vidéo à enregistrer en mode plein écran
- J'ouvre les outils de développements de Firefox (F12 ou Maj Ctrl C)
- Je sélectionne la barre de contrôles de la vidéo en bas de l'écran, et je lui applique un style
opacity: 0
- Je ferme les outils de développements
- Je trouve "à tâtons" la barre de contrôle de la vidéo en bas de l'écran et je ramène la position de lecture au début de la vidéo
- Quand la vidéo a fini de se jouer, je retourne dans mon terminal et j'interromps FFmpeg (Ctrl C)
2) Enregistrement du son
- Dans le terminal, je lance la commande
ffmpeg -f pulse -i default -f x11grab -i :0.0 output.mp3
- Dans Firefox, je relance la vidéo (pas besoin d'être en plein écran, évidemment)
- Quand la vidéo a fini de se jouer, je retourne dans mon terminal et j'interromps FFmpeg (Ctrl C)
3) Synchronisation des deux dans Kdenlive
- J'importe les fichiers output.mkv et output.mp3 que j'ai enregistrés aux étapes précédentes
- Normalement, avec le framerate de 60 que j'ai choisi pour enregistrer la vidéo, j'ai assez de finesse pour bien synchroniser les deux
- Je rogne et j'exporte au format que je veux