LINUX.ORG.RU

Ошибка драйвера x11 при проигрывании видео через mplayer с опцией -vo caca

 , ,


0

1

Привет всем! Собрал немного изменённую библиотеку libcaca из главной ветки на github (поменял только набор ascii в файле dither.c), включаю видео с помощью:

CACA_GEOMETRY=180x64 mplayer -vo video.mp4 -cache 8192

И получаю ошибку:

x11 driver error: unable to open input method
vo_caca: failed to create display
Error opening/initializing the selected video_out (-vo) device.

И всё это сопровождается постоянными попытками открыть окно с видео заново, поверх других, и данное сообщение повторяется. Это на Убунте 20.04, на 18.04 всё работало как надо. Как исправить? Спасибо!

На всякий случай, вот как воспроизвести ошибку:

sudo apt install build-essential libtool automake mplayer libx11-dev
git clone https://github.com/louiscyphre/libcaca.git
cd libcaca
./bootstrap
./configure --enable-x11
make & sudo make install
sudo mv /usr/lib/x86_64-linux-gnu/libcaca.so.0 /usr/lib/x86_64-linux-gnu/libcaca.so.0-backup
sudo mv /usr/lib/x86_64-linux-gnu/libcaca++.so.0 /usr/lib/x86_64-linux-gnu/libcaca++.so.0-backup
sudo ln -s /usr/local/lib/libcaca.so.0.99.2021 /usr/lib/x86_64-linux-gnu/libcaca.so.0
sudo ln -s /usr/local/lib/libcaca++.so.0.99.2021 /usr/lib/x86_64-linux-gnu/libcaca++.so.0


Последнее исправление: pragmadevel (всего исправлений: 1)

aa лучше, но в один момент в mplayer'е всё поломали. Нужно патчить.

saahriktu ★★★★★
()

CACA_GEOMETRY=180x64 mplayer -vo video.mp4 -cache 8192

Следующее слово после -vo это указание подсистемы вывода. Наверное, тебе туда нужно caca добавить, а не сразу video.mp4 писать.

i-rinat ★★★★★
()
Ответ на: комментарий от Sunderland93

Я делаю видеоэффект, в котором должны быть ASCII символы с 0.5 прозрачностью (альфа канал), это видео миксуется с обычным потоком (не ASCII), и получается эффект, вроде как в Матрице, но не совсем. Мне это нужно для создания рекламного видео без цели заработать что-то, делаю это ради хобби ну и человеку заодно помочь.

pragmadevel
() автор топика
Ответ на: комментарий от pragmadevel

Окей. У тебя просто нет никакого Input Method, а авторы libcaca в какой-то момент решили, что он есть у всех. И что его отсутствие это фатальная ошибка, хотя они всё равно IM не используют.

В файле caca/driver/x11.c найди и удали вот эти два блока строк:

    if (dp->drv.p->im == NULL) {
      fprintf(stderr, "x11 driver error: unable to open input method\n");
      return -1;
    }
    if (dp->drv.p->ic == NULL) {
      fprintf(stderr, "x11 driver error: unable to create input context\n");
      return -1;
    }
i-rinat ★★★★★
()
Ответ на: комментарий от EXL

НMPlayer мёртв. В MPV так можно

Ну поздравляю твои ссл сертификаты делают тебя уязвимым медиа устройством на уровне оси хлопаю в ладоши стоя

anonymous
()
Ответ на: комментарий от anonymous

Ой да ладно, багов не счесть. Как будто есть какой-то безопасный на 100% код, который поддерживается и работает.

pragmadevel
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.