LinuxForum.Fans
Тема

Скриншоты в консоли.

Автор: Packum 20 сообщений 6762 просмотров
#377933

Здравствуйте! У кого-нибудь работает fbgrab? Или чем ещё можно сделать снимок консоли без X?

#377952

Здорово, что работает! А у меня такая бяка:

Не подскажете куда копать?

#377953
"Packum" написал:
Не подскажете куда копать?

А какой фреймбуфер консоли вы используете?

#377954

Вот с этим у меня проблемы! Как это узнать? В ядре включен fbcondecor. Добавлен на уровень boot.
Если вручную включить тему консоли, - то она отображается. К сожалению в автозапуск никак не удалось пока поставить.
Но это уже другая проблема. Тут я наверное что-то с grub2 нахимичил. MPlayer воспроизводит фильмы с драйвером fbdev2.
У меня ноутбук без дискретки. Процессор Intel i5 2520m.

#377958

Наверное inteldrmfb. В /etc/default/grub записано:
[console]"root=/dev/sda3 video=inteldrmfb:1366x768-32@60,mtrr:3,ywrap splash=verbose,theme:natural_gentoo console=tty1 quiet"[/console]
Но тема автоматом тоже не ставится.

#377959

Попробуйте использовать vesafb.

#377960

Когда-то оно работало с grub-0,97. И bootsplash и fbcondecor. Fbgrab правда тогда не пробовал.
Работало именно с inteldrmfb. Видимо где-то я ошибся в конфиге граба2. Или что-то изменилось с тех пор,
а я не заметил. Печально. На всякий случай вот конфиг граба: http://bpaste.net/show/240865/

#378002
"Packum" написал:
Тут я наверное что-то с grub2 нахимичил.

Больше похоже что с параметрами ядра нахимичил, раз уж запускается тема в ручную.

Скорее всего драйвер установлен модулем а не в ядре.

Если устройство /dev/fb0 существует то должно все работать.

Если делать скриншот под пользователем, то пользователь должен быть в группе tty

Попробуйте собрать через genkernel с темой, так как у вас параметр root=/dev/sda3 вместо real_root=/dev/sda3 то смею предположить что собирали ядро в ручную(без genkernel).

Может быть еще какое устройство есть(/dev/fb1) то попробуйте через него сделать снимок

[console]$ fbgrab -d /dev/fb1 -c1 file.png[/console]

-c1 номер консоли с которой делается снимок.

#378116

Может и с ядром нахимичил. Такое ощущение, что параметры ядром вообще не принимаются, хотя обновляю
grub2 каждый раз после изменения.
Скриншоты fbgrab делает, но кривые. (3 пост).

#378167
"Packum" написал:
Может и с ядром нахимичил. Такое ощущение, что параметры ядром вообще не принимаются, хотя обновляю
grub2 каждый раз после изменения.
  Скриншоты fbgrab делает, но кривые. (3 пост).

На счет того что тема не запускается при загрузке, скорее всего с ядром нахимичил, а то что fbgrab делает кривые скриншоты, то тут посмотрел, fbgrab не работает с kms фреймбуфером, на досуге попробую как нибудь заняться, если получится отпишу решение.

#378208

Вот нашел в мане ffmpeg, можно делать скриншоты консоли.

пользователь должен быть в группах video и tty

[console]$ ffmpeg -f fbdev -frames:v 1 -r 1 -i /dev/fb0 screenshot.jpeg[/console]

С KMS фреймбуфером работает норм.

#378269

Свершилось! Получился снимок! Спасибо большущее!

#378294

...попробовал, однако, ругнулось:

Показать
text

~/ ffmpeg -f fbdev -frames:v 1 -r 1 -i /dev/fb0 screenshot.jpeg
ffmpeg version 2.2.1 Copyright (c) 2000-2014 the FFmpeg developers
  built on Apr 10 2014 16:26:13 with gcc 4.8.2 (GCC) 20140206 (prerelease)
  configuration: --prefix=/usr --disable-debug --disable-static --enable-avresample --enable-dxva2 --enable-fontconfig --enable-gnutls --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-pic --enable-postproc --enable-runtime-cpudetect --enable-shared --enable-swresample --enable-vdpau --enable-version3 --enable-x11grab
  libavutil      52. 66.100 / 52. 66.100
  libavcodec     55. 52.102 / 55. 52.102
  libavformat    55. 33.100 / 55. 33.100
  libavdevice    55. 10.100 / 55. 10.100
  libavfilter     4.  2.100 /  4.  2.100
  libavresample   1.  2.  0 /  1.  2.  0
  libswscale      2.  5.102 /  2.  5.102
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Option frames:v (set the number of frames to record) cannot be applied to input file /dev/fb0 -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to.
Error parsing options for input file /dev/fb0.
Error opening input files: Invalid argument

Поставил опцию frames:v перед файлом скриншота, всё «сфотографировалось» ;)

Показать
text

~/ ffmpeg -f fbdev -r 1 -i /dev/fb0 -frames:v 1 screenshot.jpeg 
ffmpeg version 2.2.1 Copyright (c) 2000-2014 the FFmpeg developers
  built on Apr 10 2014 16:26:13 with gcc 4.8.2 (GCC) 20140206 (prerelease)
  configuration: --prefix=/usr --disable-debug --disable-static --enable-avresample --enable-dxva2 --enable-fontconfig --enable-gnutls --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-pic --enable-postproc --enable-runtime-cpudetect --enable-shared --enable-swresample --enable-vdpau --enable-version3 --enable-x11grab
  libavutil      52. 66.100 / 52. 66.100
  libavcodec     55. 52.102 / 55. 52.102
  libavformat    55. 33.100 / 55. 33.100
  libavdevice    55. 10.100 / 55. 10.100
  libavfilter     4.  2.100 /  4.  2.100
  libavresample   1.  2.  0 /  1.  2.  0
  libswscale      2.  5.102 /  2.  5.102
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
[fbdev @ 0x1824a60] w:1366 h:768 bpp:32 pixfmt:bgra fps:1/1 bit_rate:33570816
[fbdev @ 0x1824a60] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, fbdev, from '/dev/fb0':
  Duration: N/A, start: 1398848122.471403, bitrate: 33570 kb/s
    Stream #0:0: Video: rawvideo (BGRA / 0x41524742), bgra, 1366x768, 33570 kb/s, 1 tbr, 1000k tbn, 1 tbc
[swscaler @ 0x1811280] deprecated pixel format used, make sure you did set range correctly
Output #0, image2, to 'screenshot.jpeg':
  Metadata:
    encoder         : Lavf55.33.100
    Stream #0:0: Video: mjpeg, yuvj444p, 1366x768, q=2-31, 200 kb/s, 90k tbn, 1 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo -> mjpeg)
Press [q] to stop, [?] for help
[swscaler @ 0x1811280] Warning: data is not aligned! This can lead to a speedloss
frame=    1 fps=0.0 q=1.9 Lsize=N/A time=00:00:01.00 bitrate=N/A    
video:29kB audio:0kB subtitle:0 data:0 global headers:0kB muxing overhead -100.075104%

#378319
"Lupo Alberto" написал:
...попробовал, однако, ругнулось:

Ну данный пример был из мана, там еще был пример как записывать видео с консоли, тут похоже просто разные версии ffmpeg обрабатывают по разному, на версии 1.0.8 данный пример позволяет получить скриншот, хотя по идее правильнее frames выставлять после указания источника с которого будет производиться конвертация, в данном случае это /dev/fb0.

#378323

Простите ещё раз нуба, а как бы заблокировать вывод этой команды? Слишком большой!

#378325
Packum написал:
Простите ещё раз нуба, а как бы заблокировать вывод этой команды? Слишком большой!
text
█▓▒░lupo@asus-x201e█▓▒░ Ср апр 30 05:18:48 
~/ ffmpeg -f fbdev -r 1 -i /dev/fb0 -frames:v 1 screenshot.jpeg &>/dev/null
█▓▒░lupo@asus-x201e█▓▒░ Ср апр 30 05:18:52 
~/ 

Точнее, в «чистой» консоли так:

#378329

Большое спасибо! Сделаю, пожалуй из этого маленький скриптик. Здорово пригодится!

#378398

ormorph, удалось поставить fbsplash в автозагрузку, только при использовании initramfs, как Вы и советовали.
Пришлось воспользоваться Genkernel. Сколько ни бился, - иначе никак, хотя при grub-0,97 такое было возможно. :(
Спасибо всем!

#378410
"Packum" написал:
Сколько ни бился, - иначе никак, хотя при grub-0,97 такое было возможно.

Скорее всего просто забыли как делали раньше, во всех случаях нужен initramfs тыц, хотя если поставить fbcondecor в автозагрузку при условии что в загрузчике запускается видео драйвер с фреймбуфером, он должен запустить тему прописанную в /etc/conf.d/fbcondecor.

Войдите или зарегистрируйтесь, чтобы ответить.