Broadcom VideoCore IV에서 eglfs를 사용하는 동안 화면을 녹화하는 방법

Broadcom VideoCore IV에서 eglfs를 사용하는 동안 화면을 녹화하는 방법

"eglfs" 플랫폼을 사용하여 Raspberry Pi 3에서 실행되는 전체 화면 Qt 애플리케이션이 있습니다. /dev/dri/core0그리기에는 KMS/DRM 및 GPU 장치를 사용합니다 . GPU는 Broadcom VideoCore IV입니다.

화면을 녹화하고 싶지만 성공하지 못했습니다. 내가 얻은 가장 가까운 것은 다음과 같습니다.

  1. 사용 ffmpegkmsgrab입력 장치. 불행히도 이로 인해 ffmpeg -f kmsgrab -i - -vf 'hwdownload,format=bgr0' output.mp4아래와 같이 왜곡된 비디오가 생성됩니다.

    ffmpeg가 잘못된 문자를 출력합니다.

  2. Qt를 프레임버퍼로 리디렉션합니다. 예를 들어: ./my_app -platform linuxfb:fb=/dev/fb0. 그런 다음 더 즉각적인 ffmpeg -f fbdev -i /dev/fb0 output.mp4작업이 수행됩니다. 불행히도 내 버튼이 표시되지 않도록 기능을 linuxfb렌더링하지 않습니다 .Qt5Compat.GraphicalEffectslayer.effect

왜곡된 출력이 너무 가까워 보이는 것을 고려하여 다양한 ffmpeg전달을 시도했습니다.format_modifierdrm_fourcc.h그러나 아무런 차이가 보이지 않았습니다. 출력이 화면에 표시된 것과 유사하도록 보장하는 세트 hwmap나 플래그 가 있습니까 ?format_modifier

참고로 저는 커널 버전 5.4.83-v8을 사용하고 있습니다 dtoverlay=vc4-fkms-v3d. 어떤 차이가 있다고 생각되면 이러한 사항을 조정할 수 있습니다.

관련 정보