Comment faire des enregistrements de bureau WebM?

13

Je recherche soit une application enregistreur / screencast de bureau pouvant produire au format WebM, soit un programme capable de convertir le format .ogv généré par gtk-recordmydesktopen WebM.

J'ai sélectionné WebM comme format dont j'ai besoin car il semble que ce soit le seul codec gratuit pris en charge par YouTube, où mes enregistrements finiront. J'ai essayé de télécharger un .ogv dans le passé et j'ai obtenu une vidéo verte continue, donc cela ne fonctionnera pas pour moi.

J'habite aux États-Unis et je suis conscient d'essayer de rester à l'écart de tout ce qui pourrait avoir des problèmes de brevets logiciels, comme gstreamer0.10-plugins-uglyou gstreamer0.10-plugins-bad. C'est pour cette raison que je m'intéressais à l'origine à Tibesti (par exemple), mais cela nécessitait l'installation de packages comme ceux mentionnés ci-dessus.

J'ai fait des recherches en ligne pour trouver une solution gratuite (comme pour l'argent et la liberté), mais jusqu'à présent, je n'ai rien trouvé. Aucune suggestion?

Christopher Kyle Horton
la source
pouvez-vous indiquer votre emplacement?
Lincity
@Alaukik, j'ai déclaré ci-dessus que je vis aux États-Unis. Si vous avez besoin de savoir quel état, je vis dans le Michigan. Je ne voudrais pas être plus précis que cela.
Christopher Kyle Horton
@ Warriorlng64 oups!
Lincity

Réponses:

6

12.04 LTS

Il semble que cette version ffmpeg ne fonctionne plus correctement pour convertir recordmydesktoples enregistrements .ogv de WebM. Comme il n'est plus maintenu, il est recommandé d'utiliser à la place son remplacement avconv, fourni dans le libav-toolspackage (qui semble être installé automatiquement s'il a ffmpegété installé).

La commande nécessaire à utiliser avconvpour les conversions n'est pas trop différente de celle de ffmpeg:

avconv -i input.ogv output.webm

Ainsi, si quelqu'un est confronté au même problème en essayant d'utiliser uniquement des packages gratuits pour convertir de .ogv en .webm en 12.04 (ou probablement plus tard), voici comment je l'ai résolu. Cela devrait être utile si vous faites des enregistrements pour montrer de nouvelles fonctionnalités ou documenter des problèmes en utilisant la vidéo.

Christopher Kyle Horton
la source
Récemment, j'ai commencé à travailler sur Kazam , maintenant il peut enregistrer aux formats VP8 / WebM et H264 / Matroska. J'ai fait des builds PPA pour Oneiric et Precise. Il utilise gstreamer pour l'enregistrement et ne nécessite pas ffmpeg. Il devrait fonctionner sur un Ubuntu proprement installé sans codecs supplémentaires.
BigWhale
@BigWhale En parcourant un peu le code, j'ai remarqué qu'il semble toujours dépendre de gstreamer0.10-plugins-badet gstreamer0.10-plugins-ugly. Ces packages contiennent les codecs que j'essaie d'éviter en raison de problèmes de brevets, comme indiqué ci-dessus. Si une version mise à jour / alternative devient disponible qui ne dépend pas de ces packages, faites-le moi savoir dans une nouvelle réponse. Merci quand même!
Christopher Kyle Horton
Je reçoisError while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
jrg
@jrg J'ai rencontré un problème similaire sur mon ordinateur portable lors de la conversion de vidéos que j'ai enregistrées à l'aide d'une solution de contournement publiée sur ce recordmydesktoprapport de bogue . Curieusement, lorsque j'ai pris la même vidéo sur ma machine de bureau et que je l'ai convertie là-bas, cela a fonctionné sans problème. Donc ... ce pourrait être un bug, mais je ne pense pas en savoir suffisamment pour déposer un rapport.
Christopher Kyle Horton
1
En parallèle: FFMpeg est toujours maintenu (en fait, la version 1.0 est récemment sortie), mais il y a eu une mini-guerre entre certains développeurs, qui a conduit à la fourche avconv. C'est juste que les responsables debian / ubuntu se sont rangés du côté d'avconv. Le message "CE PROGRAMME EST DÉCONSEILLÉ" est totalement trompeur. Lisez la situation actuelle ici: http://blog.pkh.me/p/13-the-ffmpeg-libav-situation.html .
phoibos
6

J'utilise des choses comme ça:

avconv -f x11grab -s 1024x768 -r 24 -i 0:0 -deadline realtime -b 5000000 -minrate 200000 -maxrate 40000000 recording-filename-000.webm

Où:

-f x11grab - applique la capture d'écran au "format" de l'entrée.

-s 1024x768est la résolution du fichier d'entrée (alias zone de capture). Par exemple, est égal à la résolution du bureau. Si elle est plus petite que cela, la zone d'enregistrement serait à gauche et en haut. J'ai utilisé une zone d'enregistrement 1024x768 dans cet exemple.

-r 24- framerate. Fondamentalement, 23 à 30 FPS utilisés par de vrais films pour donner une image d'enregistrement fluide. Cependant, pour la capture d'écran, il pourrait être correct de réduire cela pour obtenir une meilleure image à des débits inférieurs. J'ai utilisé 24 pour faire une capture d'écran de jeu.

-i 0:0est un indice pour utiliser l'affichage 0: 0 comme source (le périphérique est en notation xorg). Si vous n'avez qu'un seul moniteur et une configuration Xorg par défaut, 0: 0 sera correct la plupart du temps.

-deadline realtime- est un indice pour libvpx. Nous voulons une capture en direct. Nous voulons des performances en temps réel. Libvpx fera donc de son mieux pour encoder VP8 en temps réel. Pour ce faire, il échange un peu la qualité contre la vitesse. À un débit donné, la qualité sera un peu pire qu'elle ne le serait en temps non réel. Mais la vitesse d'encodage monterait en flèche. Donc, sur mon matériel, il peut crunch 1024x768 @ 24FPS, des scènes intenses, sans laisser tomber aucune image (CPU puissant recommandé cependant). Dans cet exemple, je voulais une capture en direct de qualité décente à un bon FPS et une zone de capture assez grande. L'utilisation du processeur par le codec pourrait donc être un problème. C'est pourquoi cette indication était vraiment nécessaire pour de bons résultats.

-b 5000000- débit binaire cible en bits / seconde. J'ai utilisé 5Mbits pour obtenir une image plus ou moins bonne de scènes assez intenses. Le codec essaiera de maintenir la vitesse de transmission moyenne de la vidéo proche de cette valeur. Plus cette valeur est faible, plus la qualité est mauvaise et le fichier plus petit. Vous pouvez expérimenter un peu pour savoir quel débit est bon pour des utilisations particulières. Les services de partage vidéo réduiraient la conversion vidéo en cas de dépassement. Si vous êtes sur le point d'utiliser votre propre serveur, c'est à vous de gérer le trafic. Si vous sous-estimez, la qualité de l'image sera mauvaise. N'hésitez pas à modifier la valeur pour vous faire une idée de ce qui vous convient le mieux. 5Mbits étaient destinés à une capture en direct plus ou moins agréable des scènes intenses lors de jeux où vous ne pouvez pas facilement voir que l'image est surcompressée. Pour capturer des applications fixes, vous aurez besoin de beaucoup moins que cela.

-minrate200000 - est un débit binaire minimum autorisé pour le codec. En fonction de la nature de la chose que vous souhaitez capturer, vous pouvez parfois vouloir forcer le débit binaire minimum pour garder une image raisonnablement belle à tout prix. Parfois, l'heuristique du codec peut réduire le débit binaire bien en dessous des valeurs souhaitées, donnant une mauvaise image dans certaines scènes. Cette option permet de forcer le codec à conserver un débit binaire minimum même si le codec pense que la scène est simple et que le débit binaire pourrait être abandonné. Une valeur élevée de ce paramètre peut augmenter la taille du fichier en empêchant le codec d'utiliser des débits binaires inférieurs.

-maxrate 40000000- Cette valeur contrôle le débit binaire maximal en rafale dans les scènes intenses. J'ai utilisé une valeur vraiment élevée pour permettre au codec d'aller bien au-dessus de la moyenne souhaitée s'il considère qu'une vitesse plus élevée est obligatoire pour conserver une qualité décente sur certaines scènes. Pour obtenir une belle image dans toutes les conditions, il est souhaitable de régler cette valeur suffisamment haut (40Mbits est une vitesse de type BlueRay et fera l'affaire). D'autre part, si vous êtes sur le point de le diffuser en utilisant votre propre serveur, vous devez réduire cette valeur au prix d'une certaine qualité d'image lors de scènes intenses. Sinon, le serveur pourrait ne pas gérer le débit de rafale souhaité, étant incapable de le fournir aux utilisateurs en temps réel. Ensuite, le joueur serait confronté à une sous-exécution du tampon (ce qui est agaçant). Les services de partage de vidéos prendront soin d'eux-mêmes et généralement convertiront la vidéo en baisse pour réduire les paramètres au détriment de la qualité de l'image.

recording-filename-000.webm- est un nom de fichier de sortie. Si vous utilisez l'extension .webm, ffmpeg / avconv sont suffisamment intelligents pour comprendre que vous voulez WEBM. C'est SI simple - avconv devine le format souhaité à partir du nom de fichier. Les fichiers .WEBM sont donc WEBM à l'intérieur.

C'est tout - cette commande dirige l'enregistrement d'écran vers le fichier webm. Aucune conversion supplémentaire n'est nécessaire et devrait libvpxêtre aussi rapide que possible. Il n'y a pas de son car il n'y a pas de spécification pour l'entrée du son. Cela peut ou non être ce que vous voulez. Pour le son, vous devez également spécifier la source d'entrée pour le flux sonore.

PS, cela peut sembler un peu trop compliqué, mais à la fin de la journée, vous pouvez comprendre qu'une seule taille ne convient pas à tous. Donc, pour obtenir une belle image dans toutes les situations, vous voudrez peut-être vraiment utiliser des poignées pour le codec et les ajuster. Ffmpeg vous offre toutes les poignées dont vous pourriez avoir besoin et bien plus que cela. C'est une arme lourde de conversion et d'encodage vidéo. Cet exemple est donc un bon point de départ pour ceux qui veulent faire des encodages plus ou moins avancés et est prêt à expérimenter un peu pour obtenir des résultats vraiment décents.

Encoder1
la source
6

Vous pouvez effectuer des enregistrements WebM dans Ubuntu 11.10 + GNOME Shell en appuyant sur la combinaison de touches Ctrl+ Shift+ Alt+ R.

La première fois que vous appuyez sur le combo, un cercle rouge apparaît dans la zone de notification, indiquant que l'enregistrement a commencé. La 2ème fois que vous appuyez dessus, le cercle rouge disparaît et vous aurez votre enregistrement dans le ${HOME}/Videosrépertoire.

Plus d'informations ici: Gnome Shell Cheat Sheet: Enregistrement Screencast

reygecko
la source
Au moment où j'ai posé cette question, je n'avais pas de shell GNOME. Mais je l'habitude de le compiler à partir jhbuilddu 10.10 et je l'ai installé sur mes systèmes 11.10, et je sais que cela fonctionne également. Merci d'avoir ajouté cette réponse!
Christopher Kyle Horton
Dans la version actuelle (en utilisant 16.04), les vidéos sont stockées ~/Videosavec un nom de fichier de Screencast from {date} {time}.webm.
Kariem
3

Utilisez l'application transmageddon pour ce faire. son application basée sur Gstreamer

sudo apt-get install transmageddon ou cliquez ici installer transmageddon

alz3abi
la source
J'ai jeté un œil aux dépendances de transmageddon via sudo apt-get install, et le paquet gstreamer-plugins-ugly que j'ai mentionné ci-dessus a été inclus dans la liste. Encore une fois, je ne suis pas sûr que ce soit entièrement légal pour moi, et cela m'importe.
Christopher Kyle Horton
2

Utilisez Kazam pour enregistrer.

La sortie est mkv et fonctionne bien avec Youtube. Seul problème, Kazam ne semble pas avoir été mis à jour depuis un moment.

BTW Vous devriez être sûr d'utiliser Tibesti si je comprends bien, à moins bien sûr que vous ne soyez absolument paranoïaque qu'un vaisseau spatial extraterrestre géant vous enlève et vous fasse torturer pour avoir utilisé un logiciel ...

RolandiXor
la source
Kazam demande l'installation de ffmpeg lors de l'installation de sudo apt-get, dont je ne sais pas si je pourrais l'utiliser légalement.
Christopher Kyle Horton
@ Warrioring64, je ne pense pas que ffmpeg soit illégal ...
RolandiXor
C'est quelque chose dont je dois m'inquiéter, car je suis aux États-Unis et les brevets logiciels sont appliqués ici. Veuillez consulter cette partie sur Wikipedia si cela peut vous aider à comprendre ce que je veux en venir ici.
Christopher Kyle Horton
2
@ Warrioring64 - la version incluse dans Ubuntu est débarrassée de ces codecs.
RolandiXor
D'accord ... mais en regardant plus loin à travers les dépendances données, j'ai également trouvé libavcodec-extra-52 et libavutil-extra-52, qui, d'après un peu plus de recherches que j'ai trouvées, pourraient me poser des problèmes. Désolé si je semble un peu difficile, mais même si je ne me fais pas attraper de manière réaliste pour l'utilisation d'un tel logiciel, je ne voudrais toujours pas que cela soit dans ma conscience.
Christopher Kyle Horton,
2

11.10 et précédents

ffmpegpeut être utilisé pour convertir .ogv en .webm directement sans avoir besoin de codecs supplémentaires. Comme mentionné dans un commentaire sur une autre réponse , la version de ffmpegfournie par Ubuntu ne vient pas par défaut avec des codecs qui pourraient poser des problèmes de brevets logiciels.

Il s'agit d'un programme en ligne de commande; pour l'utiliser, ouvrez simplement une fenêtre de terminal et entrez:

ffmpeg -i input.ogv output.webm
Christopher Kyle Horton
la source
Oui. Je viens d'installer ffmpeg sans le repo medibuntu et il a tiré toutes les versions gratuites des paquets et j'ai encodé un wmv en webm facilement avec ffmpeg -i file.wmv -f webm -sameq file.webm
duffydack
1

imo, le meilleur moyen de convertir des vidéos en WebM est Firefogg .

  • Ceci est un plugin Firefox (c'est donc un outil multi-plateforme comme Firefox)
  • Il se compressera au format WebM (open source - codec compatible Web)
  • Il offre plusieurs tailles d'encodage (vraiment pratique pour trouver le meilleur taux de compression)
  • Taux de compression VRAIMENT efficace (au moins autant que H264)
  • C'est super facile à utiliser

entrez la description de l'image ici

Sulliwane
la source