화면 캡쳐 서버 구성은 아래와 같은데 캡쳐 비율이 16:9가 되지 않습니다. 그래픽 카드 때문인가요?
했다:
cvt 1920 1080 60
xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
xrandr --addmode screen 1920x1080_60.00
xrandr --output screen --mode 1920x1080_60.00
이것이 출력이다hwinfo --framebuffer
02: None 00.0: 11001 VESA Framebuffer
[Created at bios.459]
Unique ID: rdCR.mCUP8WwEfLD
Hardware Class: framebuffer
Model: "Matrox MGA-G200"
Vendor: "Matrox"
Device: "MGA-G200"
SubVendor: "Matrox Graphics Inc."
SubDevice:
Revision: "00"
Memory Size: 16 MB
Memory Range: 0x00000000-0x00ffffff (rw)
Mode 0x0301: 640x480 (+640), 8 bits
Mode 0x0310: 640x480 (+1280), 15 bits
Mode 0x0311: 640x480 (+1280), 16 bits
Mode 0x0312: 640x480 (+2560), 24 bits
Mode 0x0300: 640x400 (+640), 8 bits
Mode 0x0303: 800x600 (+800), 8 bits
Mode 0x0313: 800x600 (+1600), 15 bits
Mode 0x0314: 800x600 (+1600), 16 bits
Mode 0x0315: 800x600 (+3200), 24 bits
Mode 0x0305: 1024x768 (+1024), 8 bits
Mode 0x0316: 1024x768 (+2048), 15 bits
Mode 0x0317: 1024x768 (+2048), 16 bits
Mode 0x0318: 1024x768 (+4096), 24 bits
Mode 0x0307: 1280x1024 (+1280), 8 bits
Mode 0x0319: 1280x1024 (+2560), 15 bits
Mode 0x031a: 1280x1024 (+2560), 16 bits
Mode 0x031b: 1280x1024 (+5120), 24 bits
Mode 0x031c: 1600x1200 (+3200), 15 bits
Mode 0x031d: 1600x1200 (+3200), 16 bits
Mode 0x031e: 1600x1200 (+6400), 24 bits
Config Status: cfg=new, avail=yes, need=no, active=unknown
xrandr
산출:
Screen 0: minimum 1 x 1, current 1920 x 1080, maximum 1920 x 1080
screen connected 1920x1080+0+0 0mm x 0mm
1920x1080 0.00*
달리다Xvfb :0 -screen 0 1920x1080x24 &
빨간색 섹션의 길이는 1280픽셀이어야 하며(오른쪽은 검은색으로 표시되어서는 안 됨), 내부 콘텐츠는 표시되지만 비율이 올바르지 않습니다.
답변1
Xvfb
하나도 아니야전자 장비 보안 협회프레임버퍼이지만가상프레임버퍼 X 서버.
man Xvfb
설명하다:
설명하다
Xvfb는 디스플레이 하드웨어 및 물리적 입력 장치 없이 컴퓨터에서 실행될 수 있는 X 서버입니다. 가상 메모리를 사용하여 멍청한 프레임 버퍼를 에뮬레이션합니다.
이 서버의 주요 용도는 서버 테스트입니다. 필요한 깊이를 지원하는 실제 하드웨어 없이도 이 서버를 사용하면 모든 깊이의 FB 코드를 실행할 수 있습니다. X 커뮤니티는 비정상적인 깊이 및 화면 구성에 대해 클라이언트 테스트, 일괄 처리를 위한 배경 렌더링 엔진으로 Xvfb 사용, 로드 테스트, X 서버를 새 플랫폼으로 포팅하는 데 도움이 되는 등 Xvfb의 다른 많은 새로운 용도를 발견했습니다. 실제로는 X 서버가 필요하지 않지만 X 서버가 있어야 한다고 주장하는 응용 프로그램을 실행하는 눈에 띄지 않는 방법입니다.
즉, Xvfb
그래픽 카드를 전혀 사용하지 않으므로 캡처 속도 문제가 발생할 수 없습니다.
출력 에서 xrandr
화면의 물리적 크기는 로 나열됩니다 0mm x 0mm
. 응용 프로그램이 이 정보를 사용하여 선택한 해상도의 픽셀이 정사각형인지 아니면 길쭉한 직사각형인지 확인하는 경우 이러한 값은 이상한 결과를 초래할 수 있습니다. 응용 프로그램은 이전 하드웨어에서 사용되는 기본 비율(아마도 4:3?)로 돌아가거나 0으로 나눈 다음 완전히 이상한 작업을 수행할 수 있습니다.
댓글에서 이 모든 것의 목적은 CSS 애니메이션을 캡처하는 것이라고 언급하셨습니다. 워크스테이션에서 애니메이션을 호스팅하는 웹 서버에 직접 액세스할 수 없지만 서버에서는 액세스할 수 있기 때문에 다른 방법이 있습니다.저것질문. (또 다른 좋은 예XY 문제.)
예를 들어 SSH에 동적 포트 전달을 사용할 수 있습니다.
1.) 동적 포트 전달을 통해 워크스테이션에서 서버로 SSH 연결을 설정합니다. 포트 번호는 자유롭게 선택할 수 있습니다. 이 예에서는 1234를 사용하겠습니다.
workstation$ ssh -D 1234 direxit@server
server$
이렇게 하면 SSH 클라이언트가 워크스테이션의 지정된 포트에 인바운드 끝이 있고 SSH 연결의 반대편에 있는 서버에 아웃바운드 끝이 있는 SOCKS 프록시가 생성됩니다.
localhost
2.) 워크스테이션으로 돌아가서 ( 이전 단계에서 선택한 포트 번호) 에 있는 SOCKS 프록시를 사용하도록 브라우저를 구성하십시오 . 이렇게 하면 나가는 모든 연결이 먼저 SSH 연결을 통해 서버에 도달하게 됩니다.거기에서실제 목적지로.
3.) Firefox를 사용하는 경우 DNS 확인도 SOCKS 프록시를 통과하도록 으로 이동하여 about:config
설정합니다 network.proxy.socks_remote_dns
. true
다른 브라우저의 경우 hosts
워크스테이션에서 직접 확인할 수 없는 경우 사이트의 IP 주소와 호스트 이름을 워크스테이션의 파일에 추가해야 할 수도 있습니다.
4.) 이제 브라우저가 완전히 로컬로 실행되어(표시 대기 시간이 최소화됨) 워크스테이션에서 직접 캡처할 수 있지만 브라우저의 네트워크 연결은 원격 서버를 통해 라우팅됩니다(따라서 CSS 애니메이션을 호스팅하는 시스템은 다음과 같이 처리되어 브라우저에 연결됩니다). 서버에서 옵니다).
5.) 완료되면 브라우저에서 SOCKS 프록시 구성 설정을 제거해야 합니다. 그렇지 않으면 동적 전달을 사용하는 SSH 연결이 종료되면 브라우저는 어떤 것에도 연결할 수 없습니다.