Tôi đang sử dụng những thứ như thế:
avconv -f x11grab -s 1024x768 -r 24 -i 0:0 -deadline realtime -b 5000000 -minrate 200000 -maxrate 40000000 recording-filename-000.webm
Ở đâu:
-f x11grab
- thực thi "định dạng" chụp màn hình của đầu vào.
-s 1024x768
là độ phân giải của tệp đầu vào (còn gọi là vùng chụp). Ví dụ bằng với độ phân giải máy tính để bàn. Nếu nhỏ hơn, khu vực ghi âm sẽ ở bên trái và trên cùng. Tôi đã sử dụng vùng ghi 1024x768 trong ví dụ này.
-r 24
- tỷ lệ khung hình. Về cơ bản, 23 đến 30 FPS được sử dụng bởi các bộ phim thực tế để mang lại hình ảnh ghi hình mượt mà. Tuy nhiên, đối với screencast, có thể giảm bớt điều này để có được hình ảnh tốt hơn ở tốc độ bit thấp hơn. Tôi đã sử dụng 24 để chụp màn hình trò chơi.
-i 0:0
là một gợi ý để sử dụng hiển thị 0: 0 làm nguồn (thiết bị có ký hiệu xorg). Nếu bạn chỉ có 1 màn hình và thiết lập Xorg mặc định, 0: 0 sẽ ổn hầu hết thời gian.
-deadline realtime
- là một gợi ý cho libvpx. Chúng tôi muốn chụp trực tiếp. Chúng tôi muốn hiệu suất thời gian thực. Vì vậy libvpx sẽ làm điều tốt nhất để mã hóa VP8 trong REALTIME. Để làm như vậy nó phần nào giao dịch chất lượng cho tốc độ. Với chất lượng bitrate đã cho sẽ kém hơn một chút so với cách không theo thời gian thực. Nhưng tốc độ mã hóa sẽ tăng vọt. Vì vậy, trên phần cứng của tôi, nó có thể tạo ra 1024x768 @ 24FPS, các cảnh cường độ cao mà không làm rơi bất kỳ khung hình nào (mặc dù CPU được khuyến nghị). Trong ví dụ này tôi muốn có một bản chụp trực tiếp chất lượng khá ở FPS tốt và diện tích chụp khá lớn. Vì vậy, việc sử dụng CPU bằng codec có thể là một vấn đề. Đó là lý do tại sao gợi ý này thực sự cần thiết cho kết quả tốt.
-b 5000000
- bitrate mục tiêu tính bằng bit / giây. Tôi đã sử dụng 5Mbit để có được hình ảnh tốt hơn hoặc ít hơn về những cảnh khá căng thẳng. Codec sẽ cố gắng giữ tốc độ bitrate trung bình của video gần với giá trị này. Giá trị này càng thấp, chất lượng càng tệ và tệp càng nhỏ. Bạn có thể thử nghiệm một chút để có ý tưởng bitrate nào tốt cho việc sử dụng cụ thể. Dịch vụ chia sẻ video sẽ chuyển hướng video xuống nếu bạn quá tải. Nếu bạn sắp sử dụng máy chủ của riêng mình, bạn cần phải xử lý lưu lượng. Nếu bạn cởi quần áo, chất lượng hình ảnh sẽ rất tệ. Hãy thoải mái thay đổi giá trị để có ý tưởng những gì tốt nhất cho bạn. 5Mbit được dành cho việc chụp trực tiếp các cảnh cường độ cao tại các trò chơi mà bạn không thể dễ dàng nhìn thấy hình ảnh bị nén quá mức. Để chụp các ứng dụng tĩnh, về cơ bản bạn sẽ cần ít hơn thế.
-minrate
200000 - là bitrate tối thiểu được phép cho codec. Tùy thuộc vào bản chất của thứ bạn muốn chụp, đôi khi bạn có thể muốn buộc bitrate tối thiểu để giữ một hình ảnh trông hợp lý bất kể điều gì. Đôi khi heuristic codec có thể giảm bitrate xuống dưới giá trị bạn có thể muốn, đưa ra hình ảnh xấu ở một số cảnh. Tùy chọn này cho phép buộc codec giữ bitrate tối thiểu ngay cả khi codec nghĩ rằng cảnh đó đơn giản và bitrate có thể bị loại bỏ. Giá trị cao của tham số này có thể tăng kích thước tệp bằng cách ngăn codec sử dụng bitrate thấp hơn.
-maxrate 40000000
- Giá trị này kiểm soát bitrate nổ tối đa ở các cảnh cường độ cao. Tôi đã sử dụng giá trị thực sự cao để cho phép codec đi xa hơn mức trung bình mong muốn nếu coi tốc độ cao hơn là bắt buộc để giữ chất lượng tốt ở một số cảnh. Để có được một bức ảnh đẹp trong mọi điều kiện, bạn nên đặt mức độ đủ cao này (40Mbit là tốc độ giống như BlueRay và sẽ thực hiện thủ thuật). Mặt khác, nếu bạn định phát trực tuyến bằng máy chủ của riêng mình, bạn phải giảm giá trị này với chi phí chất lượng hình ảnh ở những cảnh cường độ cao. Máy chủ khác có thể không đối phó với bitrate nổ mong muốn, không thể cung cấp nó theo cách thời gian thực cho người dùng. Sau đó, người chơi sẽ phải đối mặt với bộ đệm (điều này gây khó chịu). Các dịch vụ chia sẻ video sẽ tự chăm sóc và thường chuyển video xuống các thông số thấp hơn với chi phí chất lượng hình ảnh.
recording-filename-000.webm
- là tên tệp của đầu ra. Nếu bạn sử dụng phần mở rộng .webm, ffmpeg / avconv đủ thông minh để hiểu bạn muốn WEBM. Thật đơn giản - avconv đoán định dạng mong muốn từ tên tệp. Vì vậy, các tập tin .CHBM là WEBM bên trong.
Thế là xong - lệnh này thực hiện ghi màn hình trực tiếp vào tệp webm. Không cần chuyển đổi thêm và libvpx
được gợi ý là nhanh nhất có thể. Không có âm thanh vì không có đặc điểm kỹ thuật cho đầu vào âm thanh. Nó có thể hoặc không thể là những gì bạn muốn. Đối với âm thanh, bạn cũng phải xác định nguồn đầu vào cho luồng âm thanh.
PS này có thể trông hơi phức tạp một chút nhưng vào cuối ngày, bạn có thể nhận ra rằng một kích thước không thể phù hợp với tất cả. Vì vậy, để có được một bức ảnh đẹp trong mọi tình huống, bạn có thể thực sự muốn có một số tay cầm cho codec được sử dụng và muốn điều chỉnh chúng. Ffmpeg cung cấp cho bạn tất cả các tay cầm mà bạn có thể cần và hơn thế nữa. Đó là một vũ khí hạng nặng của chuyển đổi và mã hóa video. Vì vậy, ví dụ này là một điểm tốt để bắt đầu cho những người muốn thực hiện mã hóa nâng cao hoặc ít hơn và sẵn sàng thử nghiệm một chút để có được kết quả thực sự tốt.