Độ phân giải video khi chụp bản ghi toàn màn hình qua ffmpeg trên Mac OS X


1

Tôi có MacBook Pro 15 inch 2017 chạy Mac OS X 10.13 (High Sierra): nhập mô tả hình ảnh ở đây Màn hình mặc định hỗ trợ độ phân giải màn hình lên tới 2880x1800, mặc dù độ phân giải tối đa có thể chọn thông qua UI tiêu chuẩn bị giới hạn 1920x1200(xem câu hỏi này ): nhập mô tả hình ảnh ở đây

Bây giờ, tôi đang cố gắng ghi lại một bản ghi toàn màn hình thông qua ffmpeg, sử dụng avfoundationthiết bị, ở độ phân giải đầy đủ (nghĩa là không lấy mẫu phụ):

ffmpeg -y -v error -hide_banner -f avfoundation -i 1:none -threads 0 -f mp4 -vcodec mpeg4 -r 25/1 -qscale:v 1 output.mp4

Thật kỳ lạ, khi độ phân giải màn hình thay đổi giữa 1024x6401920x1200(nghĩa là có thể chọn thông qua "danh sách tỷ lệ" trong tùy chọn Mac OS X ), kích thước của trình raster video kết quả luôn gấp bốn lần độ phân giải màn hình:

  • 1024x6402048x1280
  • ...
  • 1920x12003840x2400

nhập mô tả hình ảnh ở đây

Mặt khác, nếu tôi đặt độ phân giải màn hình ở mức tối đa khi 2880x1800sử dụng screenresolutiontiện ích, kích thước ffmpegđầu ra sẽ giống hệt với độ phân giải màn hình.

Trong cả hai trường hợp, -video_sizetùy chọn sẽ bị bỏ qua ffmpeg.

Những điều trên chỉ đúng với màn hình tích hợp: đối với mọi màn hình ngoài, độ phân giải màn hình và độ phân giải video đã chụp luôn giống nhau, bất kể mức độ tỷ lệ.

Câu hỏi:

  1. Tại sao ffmpeg(hoặc, đúng hơn, avfoundationthiết bị đầu vào) thể hiện sự không nhất quán như vậy?
  2. Làm cách nào để buộc tôi ffmpegluôn sử dụng độ phân giải màn hình hiện tại khi chụp màn hình? Tôi thà không cho phép lấy mẫu phụ ( -vf scale=...) ảnh hưởng đến kích thước raster kết quả.

Câu trả lời:


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.