2011-07-20 19 views
24

ffmpeg to wieloplatformowe i bardzo wydajne oprogramowanie do obsługi wideo/audio lub przesyłania strumieniowego. Na Linux ffmpeg można przechwytywać ekran X11 z poleceniem poniżej:Przechwytywanie ekranu Windows za pomocą ffmpeg

ffmpeg -f x11grab -r 25 -s cif -i :0.0 out.mpeg 

Ale czy to możliwe, aby pobrać pulpitu Windows z ffmpeg?

+1

off topic w tym miejscu –

Odpowiedz

2

łatkę wdrożyć ten został wysłany do ffmpeg mailing list jakiś czas temu. To by zaimplementowało gdigrab do pracy tak jak x11grab.

Co więcej, ffmpeg codec page obsługuje przechwytywanie "VfW" (wideo dla Windows? Aka DirectShow?).

+0

ten ma (ja myślę) zostały już popełnione. – rogerdpack

5

* ten kod jest używany z powodzeniem w systemie Windows XP Sp3 i ffmpeg (ostatnia wersja 28/12/2012 dla systemu Windows) -ffmpeg.exe musi być skopiowany w katalogu c: \ windows \ system32, aby uzyskać do niego dostęp z dowolnego miejsca PC) ScreenCapture można pobrać za darmo (google). Zainstaluj go (plik msi). Jest automatycznie rejestrowany z pliku (ScreenCapture.ax). Jest również wysyłany z plikiem IscrenCapture.h.

ekran -capture wideo i audio (dostosowanie urządzenia audio masz kopalni jest RealTek AC97 Audio) Nie mogę zainstalować params z UscreenCapture w rejestrze (próbowałem nawet na IscrenCapture.h plik) .To zawsze zapewnić pełne scren tylko przechwytywanie. Występuje błąd w lokalizacji rejestru, w typach parametrów (dwords są określone przez autora, ale reg_binary jest zainstalowany) ... następnie użyłem funkcji crop() ffmpeg do przechwytywania dowolnego regionu na ekranie. Linia poleceń to:

xwidth, xheight to szerokość regionu, który chcesz uchwycić. xleft, xtop Współrzędne lewego górnego punktu przechwytywania prostokątnego.

ffmpeg -f dshow -i video="UScreenCapture":audio="Realtek AC97 Audio" -vf crop=xwidth:xheight:xleft:xtop c:\output.flv 

do przechwytywania wideo można korzystać tylko

ffmpeg -f dshow -i video="UScreenCapture" -vf crop=xwidth:xheight:xleft:xtop c:\output.flv 

NB: x11grab nie pracuję na Windows (to specjalnie dla Linux/X11) mogą korzystać Wscript.Shell kodować polecenia wiersza cicho. Użyłem formatu wideo wyjściowego jako flv, ponieważ mam najlepszy rendering i małą pojemność.Nie powodzenia z mp4.

można wiedzieć urządzeń multimedialnych z ffmpeg:

ffmpeg -list_devices true -f dshow -i dummy 

-można nagrać dowolny dźwięk z komputera PC z tej linii poleceń (dostosowanie urządzenia masz):

ffmpeg -f dshow -i audio="Realtek AC97 Audio" -acodec libmp3lame "c:\out.mp3" 
33

Użyj built-in GDI screengrabber (nie zainstalować potrzebne) tak:

ffmpeg -f gdigrab -framerate 10 -i desktop [output] 

to uchwycić wszystkie Twoje wyświetlacze jako jeden duży ciągły wyświetlacz.

Jeśli chcesz ograniczyć się do regionu, i pokazać okolicę czym chwycił:

ffmpeg -f gdigrab -framerate ntsc -offset_x 10 -offset_y 20 -video_size 640x480 \ 
-show_region 1 -i desktop [output] 

Aby pobrać zawartość okna o nazwie „Kalkulator”:

ffmpeg -f gdigrab -framerate 25 -i title=Calculator [output] 

I okazało się, że framerate 10 dobrze pasuje do przechwytywania ekranu (możesz to zmienić).

Zakodowałem zarówno do plików, jak i strumieniowych wyjść i działa całkiem nieźle.

+0

Kiedy zobaczyłem to pytanie po raz pierwszy, nie było opcji gdigrab. Miło zobaczyć to w FFMpeg – Jet

+0

. Doświadczenie z ffmpeg przy użyciu gdigrab w Windows 10 jest raczej okropne. – scape

+0

@scape rzeczywiście. Czy jest coś, co to naprawi? –

0

Pomoże to do przechwytywania ekranu roboczego na oknach:

ffmpeg -y -rtbufsize 100M -f gdigrab -t 00:00:30 -framerate 30 -probesize 10M -draw_mouse 1 -i pulpit - c: v libx264 -r 30 -preset ultraszybki -TUNE zerolatency -crf 25 -pix_fmt yuv420p c: /video_comapre2.mp4

Powiązane problemy