X Ошибка неудачного запроса: BadCursor (неверный параметр Cursor) при записи Xvfb с помощью ffmpeg / avconv

2250
Tomasz Nurkiewicz

Я пытаюсь записать видео с Xvfbпомощью ffmpegили avconv. Я начинаю Xvfbс:

$ Xvfb :29 -screen 0 1024x768x24 

Когда я позже попробую записать отображение :29с avconv(тот же вывод для ffmpeg):

$ avconv -f x11grab -s xga -r 25 -b 2000k -i :29.0 -y selenium.avi 

Я получаю следующую ошибку:

avconv version 0.8.4-4:0.8.4-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers built on Nov 6 2012 16:51:33 with gcc 4.6.3 [x11grab @ 0x1915b80] device: :29.0 -> display: :29.0 x: 0 y: 0 width: 1024 height: 768 [x11grab @ 0x1915b80] shared memory extension found X Error of failed request: BadCursor (invalid Cursor parameter) Major opcode of failed request: 142 (XFIXES) Minor opcode of failed request: 25 (XFixesGetCursorImageAndName) Resource id in failed request: 0x200001 Serial number of failed request: 14 Current serial number in output stream: 14 

avconvработает для отображения :0и создает правильное видео. Также я могу подключиться к дисплею :29с помощью x11vnc/ vncviewer. Я заметил, что с 1024x768x8(8 бит, а не 24) avconvне выходит из строя, но выходное видео полностью черный.

Я пропускаю какую-то важную опцию или настройку? Я использую Linux 3.2.0-36-generic (Ubuntu 12.04x64).

1

2 ответа на вопрос

2
LordNeckbeard

Скорее всего, это было исправлено Исааком Дули в FFmpeg с коммитом 469a65b, исправляющим ошибку # 1738 x11grab BadCursor . Вам придется скомпилировать ffmpeg, так как статические сборки не включают поддержку x11grab. Для всех поддерживаемых версий Ubuntu имеется простое руководство по компиляции по адресу: Компиляция FFmpeg в Ubuntu .

avconv не содержит этого исправления (и многих других), так как libav игнорирует большую часть активности FFmpeg.

Также см. HOWTO: Правильная демонстрация экрана в Linux .

@TomaszNurkiewicz Я забыл обратиться к проблеме "черного видео". Если недавний ffmpeg работает, а черное видео все еще присутствует, обновите ваш вопрос с помощью команды ffmpeg и полного вывода на консоль ffmpeg. LordNeckbeard 11 лет назад 0
0
francis

I have exactly the same problem. Please do the following sequence, that should work for you.

  1. $ Xvfb :2 -screen 0 1024x768x24 &

  2. $ export DISPLAY=:2

  3. $ xeyes &
    Note: If there is no X application (ex: xeyes) running, you will get BadCusor error.

  4. $ avconv -f x11grab -s xga -r 25 -b 2000k -i :29.0 -y selenium.avi

Похожие вопросы