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 affmpeg -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
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.
ffmpeg -f x11grab -s 2560x1080 -r 30 -i :0.0 -qscale 0 -vcodec huffyuv grab.avi