Cineva mi-a sugerat să direcționez o copie a afișajului X nemodificat într-un fișier și apoi să convertesc acel fișier într-un fișier video de uz general. Ce comenzi aș folosi pentru a face acest lucru pe un sistem Kubuntu? (Edit: El a spus ceva despre atașarea unui port de afișare la un fișier.) Dacă nu este posibil, care este cea mai bună opțiune pentru o înregistrare a ecranului de calitate excelentă, care nu depinde de hardware-ul rapid?

Fundal: Am încercat să folosesc avconv cu -f x11grab și câteva programe GUI. Cu toate acestea, indiferent de ceea ce încerc, videoclipul rezultat fie are artefacte / neclare, fie este agitat (cadrele lipsă). Acest lucru se datorează probabil constrângerilor CPU / memorie.

Obiective:

  • Calitatea videoclipului nu trebuie să fie semnificativ diferită de a vedea sesiunea direct pe un ecran, deoarece scopul este de a demonstra o animație cerere.
  • Videoclipul final trebuie să fie într-un format comun care să poată fi trimis utilizatorilor Windows și utilizat pe web. Cred că H.264 MP4 ar trebui să funcționeze.
  • Soluția nu ar trebui să presupună prea multe cunoștințe anterioare. Cunosc linia de comandă și comenzile de bază Linux, dar învăț în continuare Linux și nu știu prea multe despre codecurile video.

Ce am încercat deja:

  • Cea mai bună comandă de până acum: ffmpeg -f x11grab -s xga -r 30 -i :0.0 -qscale 0.1 -vcodec huffyuv grab.avi, apoi convertiți în mp4 cu ffmpeg -i grab.avi -sameq -vcodec mpeg4 grab.mp4.
    • Calitatea imaginii este excelentă, dar în sistemul meu de testare computerul rămâne în urmă. Pe un sistem țintă mai rapid, acesta nu întârzie, dar cadrele sunt evident omise, ceea ce face ca videoclipul să nu fie foarte neted .
    • Încerc încă să aflu cum să salvez captura. fișier avi către SHM pentru a vedea dacă vă ajută.
  • Utilizarea înregistratoarelor GUI Istanbul și RecordMyDesktop
  • Comandă simplă: avconv -f x11grab -s xga -r 25 -i :0.0 simple.mpg folosind versiunea avconv 0.8.3-4: 0.8.3-0ubuntu0.12.04.1
  • Adăugarea -codec:copy (eșuează cu: Requested output format "x11grab" is not a suitable output format)
  • Adăugarea -same_quant (are ca rezultat o calitate excelentă, dar este foarte agitat / lipsesc multe cadre)
  • Adăugarea -vpre lossless_ultrafast (eșuează cu: Unrecognized option "vpre", Failed to set value "lossless_ultrafast" for option "vpre")
  • Adăugarea diferitelor valori ale -qscale
  • Adăugarea diferitelor valori ale -b
  • Adăugarea -vcodec h264 (rezultă în mod repetat: Error while decoding stream #0:0, [h264 @ 0x8300980] no frame!)
    • Notă: h264 este listat în ieșire ca DE h264 raw H.264 video format

Răspuns

Dacă HDD-ul dvs. permite, puteți încerca să faceți acest lucru:

Mai întâi scrieți fișierul necomprimat:

ffmpeg -f x11grab -s SZ -r 30 -i :0.0 -qscale 0 -vcodec huffyuv grab.avi 

aici SZ este dimensiunea afișajului dvs. (de ex. 1920×1080).

După aceea îl puteți comprima în orice moment doriți:

ffmpeg -i grab.avi grab.mkv 

Desigur, puteți schimba compresia, selectați codec și așa pe.

Comentarii

  • Vezi și: unix.stackexchange.com/a/120001/26227
  • ubuntu 18.04 nu funcționează ‘ eșuează:: 0.0: Argument nevalid
  • @ user1325696, funcționează destul de bine. De exemplu. ffmpeg -f x11grab -s 2560x1080 -r 30 -i :0.0 -qscale 0 -vcodec huffyuv grab.avi

Răspuns

Am avut succes cu:

ffmpeg -f x11grab -video_size 1920x1080 -framerate 30 -i :1 \ -vcodec libx264 -preset ultrafast -qp 0 -pix_fmt yuv444p \ video.mkv 

Puncte cheie:

  • -qp 0: x264 mode lossless
  • -preset ultrafast: cea mai mică utilizare a procesorului, dimensiuni mari
  • -pix_fmt yuv444p: implicit, dar ffmpeg sugerează yuv420p, care are pierderi

Sugestie: capturați ecranul și acoperirea camerei web cu: p>

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.ffmpeg.org/wiki/Capture/Desktop

[edit 20180418] Actualizare pentru Gnome Shell și 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() 

Comentarii

  • cum se poate îmi stabilesc dimensiunea ecranului?

Răspuns

Aceasta este o soluție și probabil că nu este „aproape perfectă” ca poate depinde de viteza rețelei sau de alți factori care pot împiedica fluxul video.

Utilizați VNC sau Teamviewer și conectați-vă de la laptop sau desktop la cealaltă mașină. Dacă aveți un laptop Windows sau OSX disponibil, Probabil aveți instrumente care pot înregistra acest lucru și cred că teamviewer poate înregistra singură o sesiune. Este ușor de încercat și puteți decide dacă calitatea este suficient de bună.

Teamviewer tinde să se extindă, dar nu știu dacă acest lucru se întâmplă și cu sesiunile înregistrate.

VNC nu se comprimă și nu se redimensionează, iar monitorul laptop / desktop necesită o rezoluție mai mare decât cea a celuilalt aparat. Calitatea este bună. Poate că vizualizatorul VNC pe care îl utilizați poate înregistra. Acum sunt pe Ubuntu, iar vizualizatorul standard nu poate face acest lucru.

Înregistrarea ecranului pentru afișarea către un public sau pe web – există instrumente speciale pentru acest lucru care pot capta clicuri, urmări și mări mouse-ul și aveți alte opțiuni pentru a clarifica ce faceți.Vă sugerez să aruncați și o privire asupra lor. Google pentru „software de înregistrare a ecranului”.

Răspuns

Ați încercat rfbroxy ?

Îl folosesc pentru a înregistra sesiuni de ecran X11.

Îl puteți folosi într-un mod în care înregistrează doar o imagine, dacă există o SCHIMBARE .

−-type=WHAT WHAT = ecran este chiar implicit, conform paginii man.

Comentarii

  • Că ‘ e interesant. Cum faceți acest lucru?
  • @GunarGessner ar trebui să fie un comportament implicit. O metodă alternativă este de a reacționa la evenimente mouse / keyborad. Acest lucru poate fi chiar mai bun dacă aveți un ceas pe ecran și nu doriți să faceți o imagine când se schimbă numai acel ceas …

Răspundeți

Folosesc Camtasia pentru a-mi înregistra videoclipul de joc și video online. Am mai folosit un recorder video fraps, dar fps scade în timpul redării. Camtasia oferă un fps mai mare, dar singura problemă problematică este că de fiecare dată când trebuie să convertesc ieșirea .CAMREC în avi, după cum puteți vedea în introduceți descrierea linkului aici id = „4149fbb903”>

introduceți descrierea linkului aici . .Camrec este formatul proprietar al camtasia și nu poate fi redat pe niciun player terță parte, cum ar fi Windows Media Player și vlc.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *