Lê dados de bitmap indo para o servidor X

0

Gostaria de poder ler os dados que estão sendo enviados para o servidor X e enviá-los ao meu aplicativo para processamento em tempo real. Eu tentei usar o ffmpeg [2] para capturar todos os dados, mas ele consome muitos recursos da CPU, e eu não preciso criar um arquivo mpeg, eu só preciso fazer processamento em tempo real. Além disso, o ffmpeg não captura o mouse. Então eu estava esperando que o uso do X fosse muito menos intensivo em recursos, e que ele capturasse o mouse. Outra opção é poder acessar a saída HDMI.

Estou executando o Ubuntu 14.04 LTS.

EDITOS:

  1. não precisa [criar] um mpeg [file].
  2. ffmpeg -video_size 1920x1080 -framerate 30 -f x11grab -i: 0.0 -c: v libx264 capture.mkv
  3. saída do ffmpeg
por Matt 06.04.2016 / 17:22

1 resposta

1

Capturando o mouse

Eu estou supondo que você estava perdendo algumas dependências do XCB, então ffmpeg não conseguiu capturar o mouse. Você precisará de um novo ffmpeg .

Se você deseja compilar, certifique-se de instalar as dependências do XCB: libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev . Veja Wiki do FFmpeg: Guia de Compilação do Ubuntu para mais detalhes. Alternativamente, você provavelmente poderia usar o PPA do mc3man em vez de compilar.

Exemplo de comando

Seus requisitos:

  • Saída não compactada
  • Não crie arquivo de saída (suponho que você queira enviar a saída)

Este exemplo produzirá rawvideo no formato mpegts, mas você pode querer alterá-lo para atender às suas necessidades. Veja ffmpeg -formats para uma lista, mas note que nem todos são adequados para tubulação, como MOV e MP4.

ffmpeg -video_size 1920x1080 -framerate 30 -f x11grab -i :0.0 \
-c:v rawvideo -f mpegts -
    
por LordNeckbeard 07.04.2016 / 20:41