gstreamer fbdevsink가 Xvfb 가상 프레임버퍼로 출력할 수 있나요? 어떤 장치를 사용할 것인가?

gstreamer fbdevsink가 Xvfb 가상 프레임버퍼로 출력할 수 있나요? 어떤 장치를 사용할 것인가?

나는 최근에 Xvfb 가상 Linux 프레임버퍼를 사용하는 방법을 배웠습니다.
https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=261264

gstreamer fbdevsink를 가상 프레임 버퍼로 출력하고 싶지만 이를 위해서는 장치를 지정해야 합니다. 그러나 가상 프레임버퍼에는 /dev/fbX 링크가 없습니다.

그러면 fbdevsink가 가상 프레임 버퍼로 출력할 수 있습니까? 그렇다면 어떻게 해야 할까요?

Xvfb 옵션 "-fbdir /var/tmp" 옵션은 xwd-header 접두사가 붙은 가상 프레임 버퍼에 대한 읽기 액세스를 허용합니다.

tail --bytes $((1360*768*4)) /var/tmp/Xvfb_screen0 > /dev/fb0

xwd-prefix의 길이는 3232바이트이므로 /var/tmp/Xvfb_screen0에 단일 바이트를 쓰면 버스 오류가 발생합니다.

$ Xvfb :1 -screen 0 1360x768x24 -fbdir /var/tmp &
[1] 2117
$ DISPLAY=:1 xclock -update 1 &
[2] 2124
$ Warning: Missing charsets in String to FontSet conversion

$ echo -n "x" > /var/tmp/Xvfb_screen0 
$ (EE) 
(EE) Backtrace:
(EE) 
(EE) Bus error at address 0x75f22c04
(EE) 
Fatal server error:
(EE) Caught signal 7 (Bus error). Server aborting
(EE) 
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":1"
      after 692 requests (94 known processed) with 0 events remaining.

[1]-  Aborted                 Xvfb :1 -screen 0 1360x768x24 -fbdir /var/tmp
[2]+  Exit 1                  DISPLAY=:1 xclock -update 1
$

Xvfb의 소스 코드를 찾을 수 없습니다. 어디서 찾을 수 있나요?

답변1

Xvfb는 xorg-server의 일부입니다.

git clone https://salsa.debian.org/xorg-team/xserver/xorg-server.git

관련 정보