Joku ehdotti, että ohjaan kopio muokkaamattomasta X-näytöstä tiedostoon ja muunnetaan sitten tiedosto yleiskäyttöiseksi videotiedostoksi. Mitä komentoja käytän tehdäksesi tämän Kubuntu-järjestelmässä? (Muokkaa: Hän sanoi jotain näyttöportin liittämisestä tiedostoon.) Jos se ei ole mahdollista, mikä on paras vaihtoehto erinomaisen laadukkaalle näytön tallennukselle, joka ei riipu nopeasta laitteistosta?
Tausta: Yritin käyttää avconv-ohjelmaa -f x11grab ja joitain GUI-ohjelmia. Riippumatta siitä, mitä yritän, tuloksena olevassa videossa on joko esineitä / epätarkkuutta tai se on epätasaista (puuttuvat kehykset). Tämä johtuu todennäköisesti suorittimen / muistin rajoituksista.
Tavoitteet:
- Videon laatu ei saa poiketa huomattavasti istunnon näkymisestä suoraan näytöllä, koska tarkoituksena on näyttää animoitu sovellus.
- Lopullisen videon on oltava tavallisessa muodossa, joka voidaan lähettää Windows-käyttäjille ja käyttää verkossa. Mielestäni H.264 MP4: n pitäisi toimia.
- Ratkaisun ei pitäisi edellyttää paljon ennakkotietoa. Tunnen komentorivin ja Linuxin peruskomennot, mutta opettelen edelleen Linuxia, enkä tiedä paljoakaan videokoodekkeista.
Mitä olen jo kokeillut:
- Tähän mennessä paras komento:
ffmpeg -f x11grab -s xga -r 30 -i :0.0 -qscale 0.1 -vcodec huffyuv grab.avi
ja muunna sitten mp4: ksiffmpeg -i grab.avi -sameq -vcodec mpeg4 grab.mp4
-toiminnolla.- Kuvanlaatu on hyvä, mutta testijärjestelmässäni se viivästyttää tietokonetta. Nopeammassa kohdejärjestelmässä se ei viivästy, mutta kehykset ohitetaan ilmeisesti, joten video ei ole kovin sujuva .
- Yritän edelleen selvittää, kuinka tartunta tallennetaan. avi-tiedosto SHM: ään, jotta näet, onko siitä apua.
- Istanbulin ja RecordMyDesktopin GUI-tallentimien käyttäminen
- Yksinkertainen komento:
avconv -f x11grab -s xga -r 25 -i :0.0 simple.mpg
käyttäen avconv-versiota 0.8.3-4: 0.8.3-0ubuntu0.12.04.1 - Lisää
-codec:copy
(epäonnistuu:Requested output format "x11grab" is not a suitable output format
) - Lisätään
-same_quant
(tuloksena on erinomainen laatu, mutta se on erittäin epätasaista / puuttuu useita kehyksiä) - Lisätään
-vpre lossless_ultrafast
(epäonnistuu:Unrecognized option "vpre"
,Failed to set value "lossless_ultrafast" for option "vpre"
) - Erilaisten
-qscale
-
-b
- Huomaa: h264 on luettelossa ryhmässä tuotoksena
DE h264 raw H.264 video format
-arvojen lisääminen
-elementin -vcodec h264
(tuottaa toistuvasti: Error while decoding stream #0:0
, [h264 @ 0x8300980] no frame!
)
vastaus
Jos kiintolevy sallii, voit yrittää tehdä sen tällä tavalla:
Kirjoita ensin pakkaamaton tiedosto:
ffmpeg -f x11grab -s SZ -r 30 -i :0.0 -qscale 0 -vcodec huffyuv grab.avi
tässä SZ
on näyttökoko (esim. 1920×1080).
Sen jälkeen voit pakata sen milloin tahansa:
ffmpeg -i grab.avi grab.mkv
Voit tietysti muuttaa pakkausta, valita koodekin ja niin edelleen. päällä.
kommentit
vastaus
Olen onnistunut:
ffmpeg -f x11grab -video_size 1920x1080 -framerate 30 -i :1 \ -vcodec libx264 -preset ultrafast -qp 0 -pix_fmt yuv444p \ video.mkv
Tärkeimmät kohdat:
- -qp 0: x264 häviötön tila
- -esiasetettu ultranopea: pienin suorittimen käyttö, suuri koko
- -pix_fmt yuv444p: oletusarvo, mutta ffmpeg ehdottaa yuv420p: tä, mikä on häviötä 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
[muokkaa 20180418] Gnome Shellin ja Waylandin päivitys:
#!/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()
kommentit
- miten määritän näytön koon?
Vastaa
Tämä on kiertotapa eikä todennäköisesti ”lähes täydellinen” kuin se voi riippua verkon nopeudesta tai muista tekijöistä, jotka voivat estää videovirtaa.
Käytä VNC: tä tai Teamvieweria ja muodosta yhteys kannettavasta tietokoneesta tai työpöydältä toiseen koneeseen. Jos sinulla on käytettävissä Windows- tai OSX-kannettava tietokone, sinulla on todennäköisesti työkaluja, jotka voivat tallentaa tämän, ja uskon, että teamviewer voi tallentaa istunnon itse. Sitä on helppo kokeilla, ja voit sitten päättää, onko laatu riittävän hyvä.
Teamviewerilla on taipumus skaalata, mutta en tiedä, tapahtuuko näin myös tallennetuissa istunnoissa.
VNC ei pakkaa eikä skaalaa, ja kannettavan tietokoneen / pöytätietokoneesi näyttö tarvitsee suurempaa tarkkuutta kuin toinen kone. Laatu on hyvä. Ehkä käyttämäsi VNC-katseluohjelma voi tallentaa. Olen nyt Ubuntussa, eikä tavallinen katseluohjelma voi tehdä tätä.
Näytön tallennus yleisölle tai verkossa näyttämistä varten – tähän on olemassa erityisiä työkaluja, jotka voivat saada napsautuksia, seurata ja lähentää hiirellä, ja sinulla on muita vaihtoehtoja selventääksesi mitä olet tekemässä.Ehdotan, että katsot myös niitä. Google ”näytön tallennusohjelmistolle”.
Vastaa
Oletko kokeillut rfbroxy ?
Käytän sitä X11-näytön istuntojen tallentamiseen.
Voit käyttää sitä tilassa, jossa se tallentaa vain kuvan, jos MUUTOS tapahtuu .
−-type=WHAT
WHAT = näyttö on jopa oletusarvo man-sivun mukaan.
Kommentit
- Että ’ s mielenkiintoista. Kuinka teet sen?
- @GunarGessnerin pitäisi olla oletuskäyttäytyminen. Vaihtoehtoinen menetelmä on reagoida hiiren / näppäimistön tapahtumiin. Tämä voi olla vieläkin parempi, jos sinulla on kello näytöllä etkä halua tehdä kuvaa, kun vain kello vaihtuu …
Vastaa
Käytän Camtasiaa tallentaaksesi pelivideoni ja verkkovideoni. Käytin myös fraps-videonauhuria aiemmin, mutta fps pudotettiin toiston aikana. Camtasia antaa korkeamman fps: n, mutta ainoa ongelmallinen asia on, että joka kerta, kun minun on muunnettava ulostulo .CAMREC aviiksi, kuten näet kirjoita linkin kuvaus tähän kirjoita linkin kuvaus tähän . .Camrec on camtasian oma muoto, eikä sitä voi toistaa millekään kolmannen osapuolen soittimelle, kuten Windows Media Player ja vlc.
ffmpeg -f x11grab -s 2560x1080 -r 30 -i :0.0 -qscale 0 -vcodec huffyuv grab.avi