2011-07-20 46 views
24

ffmpeg là phần mềm đa nền tảng và rất mạnh mẽ để xử lý video/âm thanh hoặc phát trực tuyến. Trên Linux ffmpeg có thể chụp màn hình X11 với một lệnh dưới đây:Chụp màn hình Windows với ffmpeg

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

Nhưng là nó có thể để lấy Windows Desktop với ffmpeg?

+1

tắt chủ đề cho trang web này –

Trả lời

2

Một miếng vá để thực hiện điều này đã được gửi đến ffmpeg mailing list một thời gian trở lại. Điều này sẽ thực hiện gdigrab để hoạt động giống như x11grab.

Ngoài ra, ffmpeg codec page nói rằng "VfW" (Video cho Windows? Aka DirectShow?) Chụp được hỗ trợ.

+0

này có (I suy nghĩ) đã được cam kết ngay bây giờ. – rogerdpack

5

* mã này được thử thành công trên windows XP Sp3 và ffmpeg (phiên bản cuối cùng 28/12/2012 cho cửa sổ) -ffmpeg.exe phải được sao chép trong thư mục c: \ windows \ system32 để được truy cập từ mọi nơi từ PC) ScreenCapture có thể tải xuống miễn phí (google). Cài đặt nó (tập tin msi). Nó được đăng ký tự động từ (tệp ScreenCapture.ax). Nó cũng được gửi với một tập tin IscrenCapture.h.

màn hình -capture video và âm thanh (điều chỉnh âm thanh thiết bị mà bạn có-tôi là Realtek AC97 Audio) Tôi không thể cài đặt params của UscreenCapture trong registry (cố gắng ngay cả trên tập tin IscrenCapture.h) Nó luôn cung cấp đầy đủ các scren chỉ chụp. Có lỗi trong vị trí đăng ký, trong các loại tham số (dwords được chỉ định bởi tác giả nhưng reg_binary được cài đặt) ... sau đó tôi đã sử dụng hàm crop() ffmpeg để chụp bất kỳ vùng nào trên màn hình. Dòng lệnh là:

xwidth, xheight là chiều cao & chiều cao của khu vực muốn nắm bắt. xleft, xtop điều phối điểm trên cùng bên trái của chụp hình chữ nhật.

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

để nắm bắt video chỉ có thể sử dụng

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

NB: x11grab không làm việc trên cửa sổ (đó là đặc biệt cho Linux/X11) có thể sử dụng wscript.shell mã lệnh dòng âm thầm. tôi đã sử dụng đầu ra video định dạng là flv vì tôi có kết xuất tốt nhất và dung lượng nhỏ. Tôi không thành công với mp4.

bạn có thể biết các thiết bị phương tiện truyền thông của bạn với ffmpeg:

ffmpeg -list_devices true -f dshow -i dummy 

-bạn có thể ghi lại bất kỳ âm thanh từ máy tính của bạn với dòng lệnh này (thích nghi với thiết bị mà bạn có):

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

Sử dụng built-in GDI screengrabber (không cần cài đặt) như thế này:

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

Điều này sẽ nắm bắt tất cả màn hình của bạn như một màn hình tiếp giáp lớn.

Nếu bạn muốn giới hạn cho một khu vực, và hiển thị khu vực được nắm lấy:

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

Để lấy các nội dung của cửa sổ có tên là "Máy tính":

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

tôi thấy tốc độ khung hình mà 10 bộ sưu tập chụp màn hình tốt (bạn có thể thay đổi nó).

Tôi đã mã hóa thành cả tệp và đầu ra luồng và hoạt động khá tốt.

+0

Khi tôi nhìn thấy câu hỏi này lần đầu tiên, không có lựa chọn gdigrab. Rất vui được thấy nó trong FFMpeg – Jet

+0

trải nghiệm với ffmpeg bằng gdigrab trong windows 10 là khá khủng khiếp. – scape

+0

@scape thực sự. Có điều gì khắc phục điều đó không? –

0

Điều này sẽ giúp cho việc chụp màn hình làm việc trên cửa sổ:

ffmpeg -y -rtbufsize 100M -f gdigrab -t 00:00:30 -framerate 30 -probesize 10M -draw_mouse 1 -i máy tính để bàn - c: v libx264 -r 30 -preset cực nhanh -tune zerolatency -crf 25 -pix_fmt yuv420p c: /video_comapre2.mp4

Các vấn đề liên quan