8 votes

Comment faire une capture d'écran vidéo en ligne de commande sur OS X avec libav ?

Sur linux, je peux faire quelque chose comme :

avconv -f alsa -i pulse -f x11grab -r 25 -s 1400x1050 \
  -i :0.0+0,0 -vcodec libx264 -threads 4 \
  -acodec libmp3lame video.mkv

mais bien sûr, les pilotes alsa et x11 devraient être différents sur OS X. Comment cela fonctionnerait-il pour capturer l'écran vidéo en ligne de commande ?

9voto

FoxyLad Points 301

Note : Cette réponse n'utilise pas libav mais cette question apparaît en premier lors de la recherche de "enregistrer l'écran mac en ligne de commande" sur Google.


À partir de macOS Catalina, vous pouvez maintenant enregistrer l'écran depuis votre ligne de commande en utilisant l'outil screencapture avec le drapeau -v.

Consultez la page d'aide (screencapture --help) pour une description de toutes les options. Les options répertoriées dans la page man peuvent être incorrectes.

En attendant, voici quelques exemples :

  • Enregistrez votre écran principal jusqu'à ce que vous appuyiez sur Ctrl+C dans Terminal. Il n'y a pas de bouton d'arrêt dans la barre de menu.

    screencapture -v out.mov
  • Utilisez -D 2 pour utiliser un écran secondaire.

    screencapture -D 2 -v out.mov
  • Utilisez -g pour également enregistrer l'audio en utilisant l'entrée par défaut. (La page man indique -A mais cela ne fonctionne pas.)

    screencapture -v -g out.mov

Quelques notes générales :

  • Si le fichier existe déjà, l'enregistrement échouera après la fin de l'enregistrement de l'écran. Veuillez faire attention.

  • Il y a un léger délai après le début de l'enregistrement avant qu'il n'enregistre effectivement votre écran.

  • -i (mode interactif) ne fonctionne pas avec -v.

  • -iU (mode de barre d'outils interactive) fonctionne avec -v, mais il n'utilisera pas le nom de fichier spécifié en ligne de commande.

7voto

J'ai trouvé une solution qui fonctionne vraiment bien. Vous pouvez enregistrer avec ffmpeg en utilisant un périphérique d'entrée appelé avfoundation.

Voici un exemple de commande en ligne :

ffmpeg -f avfoundation -pix_fmt yuyv422 -i "1:1" -t 10 -vf crop=1280:720:1:65 -r 30 output.mkv
  • Il se peut ou non que l'on vous demande de spécifier -pix_fmt lorsque cette option n'est pas incluse; cela vaut peut-être la peine d'essayer d'autres formats pour voir si vous obtenez de meilleures performances.

  • Comme expliqué dans le lien des détails, -i sélectionne à la fois l'entrée vidéo et audio. Si vous voulez capturer l'audio joué sur votre ordinateur, vous aurez besoin de quelque chose comme iShowU Audio Capture.

    Pour que cela fonctionne, vous devrez appuyer sur Option + F11, sélectionner iShowU Audio Capture comme périphérique d'entrée et de sortie. Vous remarquerez qu'une fois que vous l'avez sélectionné comme périphérique de sortie, vous ne pourrez plus entendre l'audio vous-même via vos haut-parleurs ou écouteurs.

    Un correctif rapide est d'ouvrir Audio MIDI Setup, créer un Multi-Output Device et ajouter iShowU Audio Capture et votre périphérique de sortie normal. Sélectionnez ce nouveau périphérique Multi-Output dans vos sorties audio et voilà, vous pouvez maintenant entendre l'audio et le capturer.

    Malheureusement, vous ne pouvez pas contrôler les niveaux audio maintenant...si quelqu'un connaît une solution à cela, s'il vous plaît faites le moi savoir.

  • -t est le temps en secondes à enregistrer.

  • -vf est très utile pour le recadrage et le décalage. Le paramètre actuel est recadré à une largeur de 1280 et une hauteur de 720, décalant de 1 pixel vers la gauche et de 65 pixels en haut. Vous devrez utiliser un outil tiers pour obtenir des mesures exactes en pixels de votre écran.

  • -r est le taux de rafraîchissement.

3voto

nohillside Points 82672

Pour prendre des captures d'écran (pas des vidéos) il y a screencapture:

pse@Mithos:~$ screencapture -h
screencapture : option illégale -- h
usage: screencapture [-icMPmwsWxSCUtoa] [files]
  -c         force la capture d'écran à aller dans le presse-papiers
  -C         capturer le curseur ainsi que l'écran. uniquement dans des modes non interactifs
  -d         afficher les erreurs à l'utilisateur graphiquement
  -i         capturer l'écran de manière interactive, par sélection ou fenêtre
               touche de contrôle - provoque l'envoi de la capture d'écran dans le presse-papiers
               touche espace   - basculer entre les modes de sélection de souris et
                                   de sélection de fenêtre
               touche échappement - annule la capture d'écran interactive
  -m         capturer uniquement le moniteur principal, indéfini si -i est défini
  -M         la sortie de la capture d'écran ira dans un nouveau message Mail
  -o         en mode capture de fenêtre, ne pas capturer l'ombre de la fenêtre
  -P         la sortie de la capture d'écran s'ouvrira dans Aperçu
  -s         autoriser uniquement le mode de sélection de souris
  -S         en mode capture de fenêtre, capturer l'écran et non la fenêtre
  -t format d'image à créer, par défaut png (d'autres options incluent pdf, jpg, tiff et d'autres formats)
  -T Prenez la photo après un délai de , par défaut 5
  -w         autoriser uniquement le mode de sélection de fenêtre
  -W         commencer l'interaction en mode de sélection de fenêtre
  -x         ne pas jouer de sons
  -a         ne pas inclure les fenêtres attachées aux fenêtres sélectionnées
  -r         ne pas ajouter de métadonnées dpi à l'image
  -l capturer cet identifiant de fenêtre
  -R capturer un rectangle d'écran
  -B la sortie de la capture d'écran s'ouvrira dans l'application avec bundleidBS
  fichiers   où enregistrer la capture d'écran, 1 fichier par écran

Pour capturer des vidéos, la manière la plus simple est d'utiliser l'option de Capture d'écran dans Quicktime Player. Il devrait même être possible d'initier cela depuis Terminal avec un peu d'Applescript (ce qui dépasse mes compétences).

-1voto

dimitrieh Points 99

Je n'arrive pas à installer ffcast sur mac (car il ne trouve pas libx11, même si j'ai installé xquartz), sinon cela serait parfait

https://github.com/lolilolicon/FFcast

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X