Valaki azt javasolta, hogy a módosítatlan X kijelző másolatát fájlba irányítsam, majd ezt követően konvertáljam azt általános célú videofájlokká. Milyen parancsokat használnék erre Kubuntu rendszeren? (Szerkesztés: Mondott valamit a megjelenítő port fájlhoz csatolásáról.) Ha nem lehetséges, mi a legjobb megoldás a kiváló minőségű képernyőfelvételhez, amely nem függ a gyors hardvertől?

Háttér: Megpróbáltam használni az avconv-t az -f x11grab paranccsal és néhány GUI programmal. Mindazonáltal, bármit is próbálok, a kapott videó vagy tartalmaz műtárgyakat / elmosódást, vagy szaggatott (hiányzó képkockák). Ennek oka valószínűleg a CPU / memória korlátai.

Célok:

  • A videó minősége nem térhet el észrevehetően attól, mint a munkamenetet közvetlenül a képernyőn látni, mert az animált filmek bemutatása a cél Alkalmazás.
  • A végső videónak közös formátumban kell lennie, amelyet el lehet küldeni a Windows felhasználóknak és felhasználni az interneten. Szerintem a H.264 MP4-nek működnie kell.
  • A megoldás nem feltételezhet sok előzetes ismeretet. Ismerem a parancssort és az alapvető Linux parancsokat, de még mindig tanulom a Linuxot, és nem sokat tudok a videokodekekről.

Amit már kipróbáltam:

  • Az eddigi legjobb parancs: ffmpeg -f x11grab -s xga -r 30 -i :0.0 -qscale 0.1 -vcodec huffyuv grab.avi, majd konvertáljon mp4-be a ffmpeg -i grab.avi -sameq -vcodec mpeg4 grab.mp4 paranccsal.
    • A képminőség kiváló, de a tesztrendszeremben ez elmarad a számítógéptől. Gyorsabb célrendszeren ez nem késik, de a képkockák nyilvánvalóan átugorásra kerülnek, így a videó nem túl sima .
    • Még mindig próbálom kitalálni, hogyan lehet elmenteni a fogást. avi fájlt az SHM-be, hogy lássa, segít-e.
  • Isztambul és RecordMyDesktop grafikus felhasználói felület-rögzítők használata
  • Egyszerű parancs: avconv -f x11grab -s xga -r 25 -i :0.0 simple.mpg az avconv 0.8.3-4 verziójának használata: 0.8.3-0ubuntu0.12.04.1
  • -codec:copy hozzáadása (nem sikerül: Requested output format "x11grab" is not a suitable output format)
  • -same_quant hozzáadása (kiváló minőséget eredményez, de nagyon hullámzó / sok képkocka hiányzik)
  • -vpre lossless_ultrafast hozzáadása (nem sikerül: Unrecognized option "vpre", Failed to set value "lossless_ultrafast" for option "vpre")
  • Különböző értékek hozzáadása a -qscale
  • Különböző -b
  • értékek hozzáadása = “409420b12b”>

(többször is kimeneti:Error while decoding stream #0:0,[h264 @ 0x8300980] no frame!)

  • Megjegyzés: a h264 fel van sorolva itt: kimenet DE h264 raw H.264 video format

válasz

Ha a merevlemez lehetővé teszi, megpróbálhatja ezt megtenni:

Először írjon tömörítetlen fájlt:

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

itt SZ a megjelenítési méret (pl. 1920×1080).

Ezt követően bármikor tömörítheti:

ffmpeg -i grab.avi grab.mkv 

Természetesen megváltoztathatja a tömörítést, kiválaszthatja a kodeket és így tovább tovább.

megjegyzések

  • Lásd még: unix.stackexchange.com/a/120001/26227
  • Az ubuntu 18.04 nem működik ‘ t nem sikerül:: 0.0: Érvénytelen argumentum
  • @ user1325696, nagyon jól működik. Például. ffmpeg -f x11grab -s 2560x1080 -r 30 -i :0.0 -qscale 0 -vcodec huffyuv grab.avi

Válasz

Sikert arattam:

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

Kulcsfontosságú pontok:

  • -qp 0: x264 veszteségmentes mód
  • – előre beállított ultragyors: legkisebb CPU-használat, nagy méret
  • -pix_fmt yuv444p: az alapértelmezett, de az ffmpeg a yuv420p-t javasolja, ami veszteséges

Tipp: képernyő és webkamera átfedése a következővel:

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] Frissítés a Gnome Shellhez és a Waylandhez:

#!/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() 

Megjegyzések

  • hogyan lehet meghatározom a képernyőméretet?

Válasz

Ez egy megoldás, és valószínűleg nem “majdnem tökéletes”, mint ez a hálózati sebességtől vagy más tényezőktől függhet, amelyek akadályozhatják a videofolyamot.

Használja a VNC vagy a Teamviewer alkalmazást, és csatlakozzon laptopjáról vagy asztali gépéről a másik gépre. Ha Windows vagy OSX laptop áll rendelkezésére, akkor Önnek valószínűleg vannak eszközei, amelyek ezt rögzíthetik, és úgy gondolom, hogy a teamviewer képes rögzíteni egy munkamenetet. Könnyű kipróbálni, és akkor eldöntheti, hogy a minőség elég jó-e.

A Teamviewer hajlamos a méretarányra, de nem tudom, hogy ez történik-e a rögzített munkamenetekkel is.

A VNC nem tömörít vagy méretez, és laptop / asztali monitorjának nagyobb felbontásra van szüksége, mint a másik gépénél. A minőség jó. Lehet, hogy az általad használt VNC néző képes rögzíteni. Most az Ubuntun vagyok, és a normál néző nem tudja ezt megtenni.

Képernyőfelvétel a közönség számára vagy az interneten való megjelenítéshez – ehhez vannak speciális eszközök, amelyek kattintásokat foghatnak, követhetnek és nagyíthatnak. az egeret, és más lehetőségekkel is világosabbá teheti, mit csinál.Javaslom, vessen egy pillantást ezekre is. Google a “képernyőfelvevő szoftverhez”.

Válasz

Kipróbálta már a rfbroxy ?

X11-képernyős munkamenetek rögzítésére használom.

Olyan módban használhatja, ahol csak képet rögzít, ha van VÁLTOZÁS .

−-type=WHAT WHAT = képernyő A még a man-page szerint is alapértelmezett.

Megjegyzések

  • Ez ‘ s érdekes. Hogyan csinálja ezt?
  • A @GunarGessner legyen alapértelmezett viselkedés. Alternatív módszer az egér / billentyű billentyű eseményekre történő reagálás. Ez még jobb lehet, ha van egy óra a képernyőn, és nem akar képet készíteni, ha csak az óra változik …

Válasz

A Camtasia-t használom videojátékok és online videók rögzítésére. Korábban már használtam fraps videofelvevőt is, de az fps csökken a lejátszás során. A Camtasia magasabb fps-t ad, de az egyetlen problémás kérdés, hogy minden alkalommal át kell alakítanom a .CAMREC kimenetet avi-vé, amint az látható itt írja be a link leírását ide írja be a link leírását . A .camrec a camtasia saját formátuma, és nem játszható le olyan harmadik féltől származó lejátszókon, mint a Windows Media Player és a vlc.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük