Quelqu'un a suggéré de diriger une copie de l'affichage X non modifié à un fichier et de convertir ensuite ce fichier à un fichier vidéo à usage général. Quelles commandes utiliserais-je pour le faire sur un système Kubuntu? (Edit: Il a dit quelque chose à propos de l'attachement d'un port d'affichage à un fichier.) Si ce n'est pas possible, quelle est ma meilleure option pour un excellent enregistrement d'écran de qualité qui ne dépend pas d'un matériel rapide?
Contexte : J'ai essayé d'utiliser AVCONV avec -f x11grab et certains programmes d'interface graphique. Cependant, peu importe ce que j'essaye, la vidéo résultante a des artefacts/floues ou est agitée (cadres manquants). Cela est probablement dû aux contraintes de la CPU/de la mémoire.
Objectifs :
ce que j'ai déjà essayé :
ffmpeg -f x11grab -s xga -r 30 -i :0.0 -qscale 0.1 -vcodec huffyuv grab.avi
, puis convertir en MP4 avec ffmpeg -i grab.avi -sameq -vcodec mpeg4 grab.mp4
. avconv -f x11grab -s xga -r 25 -i :0.0 simple.mpg
Utilisation de la version AVCONV 0.8.3-4: 0.8.3-0ubuntu0.12.04.1-codec:copy
(échoue avec: Requested output format 'x11grab' is not a suitable output format
)-same_quant
(entraîne une grande qualité, mais est très agité/manquant de nombreux cadres)-vpre lossless_ultrafast
(échoue avec: Unrecognized option 'vpre'
, Failed to set value 'lossless_ultrafast' for option 'vpre'
)-qscale
-b
-vcodec h264
(sorties à plusieurs reprises: Error while decoding stream #0:0
, [h264 @ 0x8300980] no frame!
) avconv -formats
Sortie comme DE h264 raw H.264 video format
J'ai eu le succès avec:
ffmpeg -f x11grab -video_size 1920x1080 -framerate 30 -i :1 \
-vcodec libx264 -preset ultrafast -qp 0 -pix_fmt yuv444p \
video.mkv
Points clés:
Astuce: Écran de capture et superposition de webcam avec:
ffmpeg -f x11grab -thread_queue_size 64 -video_size 1920x1080 -framerate 30 -i :1 \
-f v4l2 -thread_queue_size 64 -video_size 320x180 -framerate 30 -i /dev/video0 \
-filter_complex 'overlay=main_w-overlay_w:main_h-overlay_h:format=yuv444' \
-vcodec libx264 -preset ultrafast -qp 0 -pix_fmt yuv444p \
video.mkv
https://trac.fmpeg.org/wiki/capture/desktop
[edit 20180418] Mise à jour de Gnome Shell et Wayland:
#!/usr/bin/env python3
from dbus import SessionBus, Interface
from os import getcwd, path
from sys import argv
BUS_NAME = 'org.gnome.Shell.Screencast'
PATH_NAME = '/org/gnome/Shell/Screencast'
INTERFACE_NAME = BUS_NAME
PIPELINE='x264enc pass=qual quantizer=0 speed-preset=ultrafast ! queue ! matroskamux'
if path.isabs(argv[1]):
name = argv[1]
else:
name = path.join(getcwd(), argv[1])
bus = SessionBus()
screen_cast = bus.get_object(BUS_NAME, PATH_NAME)
screen_cast = Interface(screen_cast, INTERFACE_NAME)
ret, name = screen_cast.Screencast(name, {'pipeline': PIPELINE})
if not ret:
print('Error starting screencast.')
raise SystemExit(1)
try:
i = input()
except (EOFError, KeyboardInterrupt):
pass
finally:
screen_cast.StopScreencast()
Ceci est une solution de contournement et probablement pas "presque parfait" car il peut dépendre de la vitesse du réseau ou d'autres facteurs pouvant entraver le flux vidéo.
Utilisez VNC ou TeamViewer et connectez-vous de votre ordinateur portable ou de votre ordinateur de bureau à l'autre machine. Si vous avez un ordinateur portable Windows ou OSX disponible, vous avez probablement des outils pouvant enregistrer cela, et je pense que TeamViewer peut enregistrer une session elle-même. C'est facile à essayer et vous pouvez alors décider si la qualité est assez bonne.
TeamViewer a tendance à mettre à l'échelle, mais je ne sais pas si cela se produit aussi avec des sessions enregistrées.
VNC ne compresse ni échelle, et votre moniteur d'ordinateur portable/ordinateur de bureau nécessite une résolution supérieure à celle de l'autre machine. La qualité est bonne. Peut-être que la visionneuse VNC que vous utilisez peut enregistrer. Je suis sur Ubuntu maintenant et le spectateur standard ne peut pas faire cela.
Enregistrement de l'écran pour l'affichage à un public ou sur le Web - il existe des outils spéciaux qui peuvent saisir des clics, suivre et zoomer sur la souris et avoir d'autres options pour rendre plus claire ce que vous faites. Je vous suggère de regarder les gens aussi. Google pour "logiciel d'enregistrement d'écran".
Avez-vous essayé rfbroxy ?
Je l'utilise pour enregistrer x11 sessions-sessions.
Vous pouvez l'utiliser en mode où il enregistre uniquement une image, s'il y a un changement.
J'utilise Camtasia pour enregistrer ma vidéo de jeu et ma vidéo en ligne. J'ai également utilisé Fraps Video Recorder avant que le FPS tombe pendant la lecture. Camtasia donne un FPS plus élevé, mais le seul problème gênant est que chaque fois que je dois convertir la sortie .camrec en AVI comme vous pouvez le voir dans Entrez la description du lien iciEntrez la description du lien ici . Le .camrec est le format propriétaire de Camtasia et ne peut être joué sur des acteurs tiers tels que Windows Media Player et VLC.